Changed param for UserManager

This commit is contained in:
Emma Garland
2021-03-17 18:04:54 +00:00
parent e7e5e18b19
commit 72f83e50d8
2 changed files with 19 additions and 76 deletions

View File

@@ -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<IOptions<MemberIdentityOptions>> _mockIdentityOptions;
private Mock<IPasswordHasher<MemberIdentityUser>> _mockPasswordHasher;
private Mock<IUserValidator<MemberIdentityUser>> _mockUserValidators;
private Mock<IEnumerable<IPasswordValidator<MemberIdentityUser>>> _mockPasswordValidators;
private Mock<ILookupNormalizer> _mockNormalizer;
private IdentityErrorDescriber _mockErrorDescriber;
private Mock<IServiceProvider> _mockServiceProviders;
private Mock<ILogger<IMemberManager>> _mockLogger;
private Mock<IOptions<MemberPasswordConfigurationSettings>> _mockPasswordConfiguration;
private Mock<IMemberManager> _memberManager;
private readonly Mock<UserManager<MemberIdentityUser>> _memberManager = MockUserManager<MemberIdentityUser>();
private readonly Mock<IIpResolver> _mockIpResolver = new Mock<IIpResolver>();
public MemberSignInManager CreateSut()
{
var _mockMemberService = new Mock<IMemberService>();
_fakeMemberStore = new MemberUserStore(
_mockMemberService.Object,
new UmbracoMapper(new MapDefinitionCollection(new List<IMapDefinition>())),
new Mock<IScopeProvider>().Object,
new IdentityErrorDescriber());
_mockIdentityOptions = new Mock<IOptions<MemberIdentityOptions>>();
var idOptions = new MemberIdentityOptions { Lockout = { AllowedForNewUsers = false } };
_mockIdentityOptions.Setup(o => o.Value).Returns(idOptions);
_mockPasswordHasher = new Mock<IPasswordHasher<MemberIdentityUser>>();
var userValidators = new List<IUserValidator<MemberIdentityUser>>();
_mockUserValidators = new Mock<IUserValidator<MemberIdentityUser>>();
var validator = new Mock<IUserValidator<MemberIdentityUser>>();
userValidators.Add(validator.Object);
_mockPasswordValidators = new Mock<IEnumerable<IPasswordValidator<MemberIdentityUser>>>();
_mockNormalizer = new Mock<ILookupNormalizer>();
_mockErrorDescriber = new IdentityErrorDescriber();
_mockServiceProviders = new Mock<IServiceProvider>();
_mockLogger = new Mock<ILogger<IMemberManager>>();
_mockPasswordConfiguration = new Mock<IOptions<MemberPasswordConfigurationSettings>>();
_mockPasswordConfiguration.Setup(x => x.Value).Returns(() =>
new MemberPasswordConfigurationSettings() { });
var pwdValidators = new List<PasswordValidator<MemberIdentityUser>>
{
new PasswordValidator<MemberIdentityUser>()
};
//_memberManager = new MemberManager(
// _mockIpResolver.Object,
// _fakeMemberStore,
// _mockIdentityOptions.Object,
// _mockPasswordHasher.Object,
// userValidators,
// pwdValidators,
// new BackOfficeIdentityErrorDescriber(),
// _mockServiceProviders.Object,
// new Mock<IHttpContextAccessor>().Object,
// new Mock<ILogger<UserManager<MemberIdentityUser>>>().Object,
// _mockPasswordConfiguration.Object);
//validator.Setup(v => v.ValidateAsync(
// _memberManager,
// It.IsAny<MemberIdentityUser>()))
// .Returns(Task.FromResult(IdentityResult.Success)).Verifiable();
_memberManager = new Mock<IMemberManager>();
return new MemberSignInManager(
_memberManager.As<MemberManager>().Object,
_memberManager.Object,
Mock.Of<IIpResolver>(),
Mock.Of<IHttpContextAccessor>(),
Mock.Of<IUserClaimsPrincipalFactory<MemberIdentityUser>>(),
@@ -97,23 +32,31 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.Common.Security
Mock.Of<IAuthenticationSchemeProvider>(),
Mock.Of<IUserConfirmation<MemberIdentityUser>>());
}
private static Mock<UserManager<TUser>> MockUserManager<TUser>() where TUser : class
{
var store = new Mock<IUserStore<TUser>>();
var mgr = new Mock<UserManager<TUser>>(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<MemberIdentityUser>())).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<string>())).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);

View File

@@ -23,7 +23,7 @@ namespace Umbraco.Cms.Web.Common.Security
private readonly IIpResolver _ipResolver;
public MemberSignInManager(
MemberManager memberManager,
UserManager<MemberIdentityUser> memberManager,
IIpResolver ipResolver,
IHttpContextAccessor contextAccessor,
IUserClaimsPrincipalFactory<MemberIdentityUser> claimsFactory,