using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; namespace Bit.Identity.Test.Wrappers; public class UserManagerTestWrapper<TUser> : UserManager<TUser> where TUser : class { /// <summary> /// Modify this value to mock the responses from UserManager.GetTwoFactorEnabledAsync() /// </summary> public bool TWO_FACTOR_ENABLED { get; set; } = false; /// <summary> /// Modify this value to mock the responses from UserManager.GetValidTwoFactorProvidersAsync() /// </summary> public IList<string> TWO_FACTOR_PROVIDERS { get; set; } = []; /// <summary> /// Modify this value to mock the responses from UserManager.GenerateTwoFactorTokenAsync() /// </summary> public string TWO_FACTOR_TOKEN { get; set; } = string.Empty; /// <summary> /// Modify this value to mock the responses from UserManager.VerifyTwoFactorTokenAsync() /// </summary> public bool TWO_FACTOR_TOKEN_VERIFIED { get; set; } = false; /// <summary> /// Modify this value to mock the responses from UserManager.SupportsUserTwoFactor /// </summary> public bool SUPPORTS_TWO_FACTOR { get; set; } = false; public override bool SupportsUserTwoFactor { get { return SUPPORTS_TWO_FACTOR; } } public UserManagerTestWrapper( IUserStore<TUser> store, IOptions<IdentityOptions> optionsAccessor, IPasswordHasher<TUser> passwordHasher, IEnumerable<IUserValidator<TUser>> userValidators, IEnumerable<IPasswordValidator<TUser>> passwordValidators, ILookupNormalizer keyNormalizer, IdentityErrorDescriber errors, IServiceProvider services, ILogger<UserManager<TUser>> logger) : base(store, optionsAccessor, passwordHasher, userValidators, passwordValidators, keyNormalizer, errors, services, logger) { } /// <summary> /// return class variable TWO_FACTOR_ENABLED /// </summary> /// <param name="user"></param> /// <returns></returns> public override async Task<bool> GetTwoFactorEnabledAsync(TUser user) { return TWO_FACTOR_ENABLED; } /// <summary> /// return class variable TWO_FACTOR_PROVIDERS /// </summary> /// <param name="user"></param> /// <returns></returns> public override async Task<IList<string>> GetValidTwoFactorProvidersAsync(TUser user) { return TWO_FACTOR_PROVIDERS; } /// <summary> /// return class variable TWO_FACTOR_TOKEN /// </summary> /// <param name="user"></param> /// <param name="tokenProvider"></param> /// <returns></returns> public override async Task<string> GenerateTwoFactorTokenAsync(TUser user, string tokenProvider) { return TWO_FACTOR_TOKEN; } /// <summary> /// return class variable TWO_FACTOR_TOKEN_VERIFIED /// </summary> /// <param name="user"></param> /// <param name="tokenProvider"></param> /// <param name="token"></param> /// <returns></returns> public override async Task<bool> VerifyTwoFactorTokenAsync(TUser user, string tokenProvider, string token) { return TWO_FACTOR_TOKEN_VERIFIED; } }