From 72f83e50d8fb99fbeee30bb43562c97b23e20bfe Mon Sep 17 00:00:00 2001 From: Emma Garland Date: Wed, 17 Mar 2021 18:04:54 +0000 Subject: [PATCH] Changed param for UserManager --- .../Security/MemberSignInManagerTests.cs | 93 ++++--------------- .../Security/MemberSignInManager.cs | 2 +- 2 files changed, 19 insertions(+), 76 deletions(-) diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/MemberSignInManagerTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/MemberSignInManagerTests.cs index 595dfb6ccd..a756c60380 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/MemberSignInManagerTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Web.Common/Security/MemberSignInManagerTests.cs @@ -1,5 +1,3 @@ -using System; -using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Http; @@ -8,12 +6,8 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Moq; using NUnit.Framework; -using Umbraco.Cms.Core.Configuration.Models; -using Umbraco.Cms.Core.Mapping; using Umbraco.Cms.Core.Net; -using Umbraco.Cms.Core.Scoping; using Umbraco.Cms.Core.Security; -using Umbraco.Cms.Core.Services; using Umbraco.Cms.Web.Common.Security; namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.Common.Security @@ -21,74 +15,15 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.Common.Security [TestFixture] public class MemberSignInManagerTests { - private MemberUserStore _fakeMemberStore; - private Mock> _mockIdentityOptions; - private Mock> _mockPasswordHasher; - private Mock> _mockUserValidators; - private Mock>> _mockPasswordValidators; - private Mock _mockNormalizer; - private IdentityErrorDescriber _mockErrorDescriber; - private Mock _mockServiceProviders; private Mock> _mockLogger; - private Mock> _mockPasswordConfiguration; - private Mock _memberManager; + private readonly Mock> _memberManager = MockUserManager(); private readonly Mock _mockIpResolver = new Mock(); public MemberSignInManager CreateSut() { - var _mockMemberService = new Mock(); - _fakeMemberStore = new MemberUserStore( - _mockMemberService.Object, - new UmbracoMapper(new MapDefinitionCollection(new List())), - new Mock().Object, - new IdentityErrorDescriber()); - - _mockIdentityOptions = new Mock>(); - - var idOptions = new MemberIdentityOptions { Lockout = { AllowedForNewUsers = false } }; - _mockIdentityOptions.Setup(o => o.Value).Returns(idOptions); - _mockPasswordHasher = new Mock>(); - - var userValidators = new List>(); - _mockUserValidators = new Mock>(); - var validator = new Mock>(); - userValidators.Add(validator.Object); - - _mockPasswordValidators = new Mock>>(); - _mockNormalizer = new Mock(); - _mockErrorDescriber = new IdentityErrorDescriber(); - _mockServiceProviders = new Mock(); _mockLogger = new Mock>(); - _mockPasswordConfiguration = new Mock>(); - _mockPasswordConfiguration.Setup(x => x.Value).Returns(() => - new MemberPasswordConfigurationSettings() { }); - - var pwdValidators = new List> - { - new PasswordValidator() - }; - - //_memberManager = new MemberManager( - // _mockIpResolver.Object, - // _fakeMemberStore, - // _mockIdentityOptions.Object, - // _mockPasswordHasher.Object, - // userValidators, - // pwdValidators, - // new BackOfficeIdentityErrorDescriber(), - // _mockServiceProviders.Object, - // new Mock().Object, - // new Mock>>().Object, - // _mockPasswordConfiguration.Object); - - //validator.Setup(v => v.ValidateAsync( - // _memberManager, - // It.IsAny())) - // .Returns(Task.FromResult(IdentityResult.Success)).Verifiable(); - - _memberManager = new Mock(); return new MemberSignInManager( - _memberManager.As().Object, + _memberManager.Object, Mock.Of(), Mock.Of(), Mock.Of>(), @@ -97,23 +32,31 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.Common.Security Mock.Of(), Mock.Of>()); } + private static Mock> MockUserManager() where TUser : class + { + var store = new Mock>(); + var mgr = new Mock>(store.Object, null, null, null, null, null, null, null, null); + return mgr; + } [Test] public async Task WhenPasswordSignInAsyncIsCalled_AndEverythingIsSetup_ThenASignInResultSucceededShouldBeReturnedAsync() { //arrange + var userId = "bo8w3d32q9b98"; + _memberManager.Setup(x => x.GetUserIdAsync(It.IsAny())).ReturnsAsync(userId); MemberSignInManager sut = CreateSut(); var fakeUser = new MemberIdentityUser(777) { UserName = "TestUser", }; - string password = "testPassword"; - bool lockoutOnfailure = false; - bool isPersistent = true; + var password = "testPassword"; + var lockoutOnFailure = false; + var isPersistent = true; _memberManager.Setup(x => x.FindByNameAsync(It.IsAny())).ReturnsAsync(fakeUser); //act - SignInResult actual = await sut.PasswordSignInAsync(fakeUser, password, isPersistent, lockoutOnfailure); + SignInResult actual = await sut.PasswordSignInAsync(fakeUser, password, isPersistent, lockoutOnFailure); //assert Assert.IsTrue(actual.Succeeded); @@ -128,13 +71,13 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.Common.Security { UserName = "TestUser", }; - string password = "testPassword"; - bool lockoutOnfailure = false; - bool isPersistent = true; + var password = "testPassword"; + var lockoutOnFailure = false; + var isPersistent = true; _mockIpResolver.Setup(x => x.GetCurrentRequestIpAddress()).Returns("127.0.0.1"); //act - SignInResult actual = await sut.PasswordSignInAsync(fakeUser, password, isPersistent, lockoutOnfailure); + SignInResult actual = await sut.PasswordSignInAsync(fakeUser, password, isPersistent, lockoutOnFailure); //assert Assert.IsFalse(actual.Succeeded); diff --git a/src/Umbraco.Web.Common/Security/MemberSignInManager.cs b/src/Umbraco.Web.Common/Security/MemberSignInManager.cs index 38b23d8e28..d3adcc4833 100644 --- a/src/Umbraco.Web.Common/Security/MemberSignInManager.cs +++ b/src/Umbraco.Web.Common/Security/MemberSignInManager.cs @@ -23,7 +23,7 @@ namespace Umbraco.Cms.Web.Common.Security private readonly IIpResolver _ipResolver; public MemberSignInManager( - MemberManager memberManager, + UserManager memberManager, IIpResolver ipResolver, IHttpContextAccessor contextAccessor, IUserClaimsPrincipalFactory claimsFactory,