private RoleManager <Role> GetRoleManager() { DatabaseOptions databaseOptions = _context.MongoDatabaseOptions; IOptionsMonitor <DatabaseOptions> databaseOptionsMock = Mock.Of <IOptionsMonitor <DatabaseOptions> >(_ => _.CurrentValue == databaseOptions); #pragma warning disable CA2000 // Dispose objects before losing scope RoleMongoRepository roleRepositoryMongo = new RoleMongoRepository(new MongoConnection(databaseOptionsMock.CurrentValue)); RoleStore roleStore = new RoleStore(roleRepositoryMongo); #pragma warning restore CA2000 // Dispose objects before losing scope List <IRoleValidator <Role> > roleValidators = new List <IRoleValidator <Role> >(); Mock <IRoleValidator <Role> > roleValidatorMock = new Mock <IRoleValidator <Role> >(); roleValidatorMock.Setup(a => a.ValidateAsync(It.IsAny <RoleManager <Role> >(), It.IsAny <Role>())).Returns(Task.FromResult(IdentityResult.Success)); roleValidators.Add(roleValidatorMock.Object); Mock <ILookupNormalizer> lookupNormalizedMock = new Mock <ILookupNormalizer>(); lookupNormalizedMock.Setup(a => a.NormalizeName(It.IsAny <string>())).Returns((string name) => name.ToUpper()); lookupNormalizedMock.Setup(a => a.NormalizeEmail(It.IsAny <string>())).Returns((string name) => name.ToUpper()); RoleManager <Role> roleManager = new RoleManager <Role>( roleStore, roleValidators, lookupNormalizedMock.Object, new IdentityErrorDescriber(), new Mock <ILogger <RoleManager <Role> > >().Object); return(roleManager); }
private RoleMongoRepository GetRoleMongoRepository() { DatabaseOptions databaseOptions = MongoDatabaseOptions; IOptionsMonitor <DatabaseOptions> databaseOptionsMock = Mock.Of <IOptionsMonitor <DatabaseOptions> >(_ => _.CurrentValue == databaseOptions); RoleMongoRepository roleMongoRepository = new RoleMongoRepository(new MongoConnection(databaseOptionsMock.CurrentValue)); return(roleMongoRepository); }
private UserManager <User> GetUserManager() { DatabaseOptions databaseOptions = _context.MongoDatabaseOptions; IOptionsMonitor <DatabaseOptions> databaseOptionsMock = Mock.Of <IOptionsMonitor <DatabaseOptions> >(_ => _.CurrentValue == databaseOptions); #pragma warning disable CA2000 // Dispose objects before losing scope UserMongoRepository userRepository = new UserMongoRepository(new MongoConnection(databaseOptionsMock.CurrentValue)); RoleMongoRepository roleRepository = new RoleMongoRepository(new MongoConnection(databaseOptionsMock.CurrentValue)); UserStore userStore = new UserStore(userRepository, roleRepository); #pragma warning restore CA2000 // Dispose objects before losing scope Mock <IOptions <IdentityOptions> > identityOptionsMock = new Mock <IOptions <IdentityOptions> >(); IdentityOptions identityOptions = new IdentityOptions { SignIn = new SignInOptions { RequireConfirmedEmail = false, RequireConfirmedPhoneNumber = false }, User = new UserOptions { RequireUniqueEmail = true }, Lockout = new LockoutOptions { AllowedForNewUsers = true } }; identityOptionsMock.Setup(a => a.Value).Returns(identityOptions); List <IUserValidator <User> > userValidators = new List <IUserValidator <User> >(); List <PasswordValidator <User> > pwdValidators = new List <PasswordValidator <User> >(); Mock <IServiceProvider> serviceProviders = new Mock <IServiceProvider>(); Mock <IUserTwoFactorTokenProvider <User> > mockUserFactorTokenProvider = new Mock <IUserTwoFactorTokenProvider <User> >(); mockUserFactorTokenProvider .Setup(a => a.CanGenerateTwoFactorTokenAsync(It.IsAny <UserManager <User> >(), It.IsAny <User>())) .Returns(Task.FromResult(true)); mockUserFactorTokenProvider .Setup(a => a.GenerateAsync(It.IsAny <string>(), It.IsAny <UserManager <User> >(), It.IsAny <User>())) .Returns(Task.FromResult(Guid.NewGuid().ToString())); mockUserFactorTokenProvider .Setup(a => a.ValidateAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <UserManager <User> >(), It.IsAny <User>())) .Returns(Task.FromResult(true)); UserManager <User> userManager = new UserManager <User>( userStore, identityOptionsMock.Object, new PasswordHasher <User>(), userValidators, pwdValidators, new UpperInvariantLookupNormalizer(), new IdentityErrorDescriber(), serviceProviders.Object, new Mock <ILogger <UserManager <User> > >().Object); return(userManager); }
public async Task Get_Base_Claims_Mongo_Test() { // Arrange DatabaseOptions databaseOptions = _context.MongoDatabaseOptions; IOptionsMonitor <DatabaseOptions> databaseOptionsMock = Mock.Of <IOptionsMonitor <DatabaseOptions> >(_ => _.CurrentValue == databaseOptions); RoleMongoRepository roleRepository = new RoleMongoRepository(new MongoConnection(databaseOptionsMock.CurrentValue)); // Act System.Collections.Generic.Dictionary <string, System.Collections.Generic.List <LetPortal.Identity.Entities.BaseClaim> > result = await roleRepository.GetBaseClaims(new string[] { "SuperAdmin" }); roleRepository.Dispose(); // Assert Assert.NotNull(result); }
public async Task Get_By_Name_Mongo_Test() { // Arrange DatabaseOptions databaseOptions = _context.MongoDatabaseOptions; IOptionsMonitor <DatabaseOptions> databaseOptionsMock = Mock.Of <IOptionsMonitor <DatabaseOptions> >(_ => _.CurrentValue == databaseOptions); RoleMongoRepository roleRepository = new RoleMongoRepository(new MongoConnection(databaseOptionsMock.CurrentValue)); // Act LetPortal.Identity.Entities.Role result = await roleRepository.GetByNameAsync("SuperAdmin"); roleRepository.Dispose(); // Assert Assert.NotNull(result); }
private InternalIdentityServiceProvider GetIdentityServiceProvider() { JwtBearerOptions jwtOptions = new JwtBearerOptions { Audience = "LetPortal", Issuer = "letportal.app", RefreshTokenExpiration = 45, TokenExpiration = 30, Secret = "9f3acfa82146f5e4a7dabf17c2b63f538c0bcffb8872e889367df2e2c23cef94" }; IOptionsMonitor <JwtBearerOptions> mockJwtOptions = Mock.Of <IOptionsMonitor <JwtBearerOptions> >(_ => _.CurrentValue == jwtOptions); DatabaseOptions databaseOptions = _context.MongoDatabaseOptions; IOptionsMonitor <DatabaseOptions> databaseOptionsMock = Mock.Of <IOptionsMonitor <DatabaseOptions> >(_ => _.CurrentValue == databaseOptions); #pragma warning disable CA2000 // Dispose objects before losing scope IssuedTokenMongoRepository issuedTokenRepository = new IssuedTokenMongoRepository(new MongoConnection(databaseOptionsMock.CurrentValue)); UserSessionMongoRepository userSessionRepository = new UserSessionMongoRepository(new MongoConnection(databaseOptionsMock.CurrentValue)); RoleMongoRepository roleRepository = new RoleMongoRepository(new MongoConnection(databaseOptionsMock.CurrentValue)); #pragma warning restore CA2000 // Dispose objects before losing scope Mock <IEmailServiceProvider> mockEmailServiceProvider = new Mock <IEmailServiceProvider>(); mockEmailServiceProvider .Setup(a => a.SendEmailAsync(It.IsAny <EmailEnvelop>(), It.IsAny <EmailOptions>())) .Returns(Task.CompletedTask); Mock <IServiceLogger <InternalIdentityServiceProvider> > mockServiceLogger = new Mock <IServiceLogger <InternalIdentityServiceProvider> >(); #pragma warning disable CA2000 // Dispose objects before losing scope UserManager <User> userManager = GetUserManager(); #pragma warning restore CA2000 // Dispose objects before losing scope InternalIdentityServiceProvider internalISProvider = new InternalIdentityServiceProvider( userManager, GetSignInManager(userManager), #pragma warning disable CA2000 // Dispose objects before losing scope roleManager: GetRoleManager(), #pragma warning restore CA2000 // Dispose objects before losing scope mockJwtOptions, issuedTokenRepository, userSessionRepository, roleRepository, mockEmailServiceProvider.Object, mockServiceLogger.Object); return(internalISProvider); }