Has anyone come up with a successful mocking solution for UserManager and RoleManager? I have been beating my head against a wall all day. All I wa
Here is an explicit version of Rubito's excellent answer for NET Core 3.1 without the null, null, nulls:
public static UserManager GetUserManager(IUserStore store = null)
where TUser : class
{
// https://github.com/aspnet/Identity/blob/master/test/Shared/MockHelpers.cs
store = store ?? new Mock>().Object;
var options = new Mock>();
var idOptions = new IdentityOptions();
idOptions.Lockout.AllowedForNewUsers = false;
options.Setup(o => o.Value).Returns(idOptions);
var userValidators = new List>();
var validator = new Mock>();
userValidators.Add(validator.Object);
var pwdValidators = new List>();
pwdValidators.Add(new PasswordValidator());
var userManager = new UserManager(
store: store,
optionsAccessor: options.Object,
passwordHasher: new PasswordHasher(),
userValidators: userValidators,
passwordValidators: pwdValidators,
keyNormalizer: new UpperInvariantLookupNormalizer(),
errors: new IdentityErrorDescriber(),
services: null,
logger: new Mock>>().Object);
validator.Setup(v => v.ValidateAsync(userManager, It.IsAny()))
.Returns(Task.FromResult(IdentityResult.Success)).Verifiable();
return userManager;
}