public async void SuccesAddNewUser() { // When string newId = Guid.NewGuid().ToString(); var newAdminUser = new AdminUser { Id = newId, Email = "*****@*****.**" }; var adminUserRoleService = new AdminUserRoleService(_adminUserRepository, _adminRoleRepository); var adminUser = await adminUserRoleService.AddAdminUser(newAdminUser); // Then Assert.NotNull(adminUser); using (var db = new GlownyShopContext(_options, _dbLogger.Object)) { var admnUser = await db.AdminUsers.FirstOrDefaultAsync(a => a.Email == "*****@*****.**"); Assert.NotNull(admnUser); Assert.Equal("*****@*****.**", admnUser.Email); Assert.Equal(adminUser.Id, admnUser.Id); // Cleanup db.AdminUsers.Remove(admnUser); await db.SaveChangesAsync(); } }
public async void FailedAddNewUserGivenDuplicateEmail() { // When string newGuid = Guid.NewGuid().ToString(); var newAdminUser = new AdminUser { Id = newGuid, Email = "*****@*****.**" }; var adminUserRoleService = new AdminUserRoleService(_adminUserRepository, _adminRoleRepository); //Then ArgumentException ex = await Assert.ThrowsAsync <ArgumentException>( () => adminUserRoleService.AddAdminUser(newAdminUser)); Assert.Contains("already used", ex.Message); Assert.Equal("email", ex.ParamName); using (var db = new GlownyShopContext(_options, _dbLogger.Object)) { var admnUser = await db.AdminUsers.FindAsync(newGuid); Assert.Null(admnUser); } }
public async void AddNewAdminRole() { // Given var adminRoleNormalUser = new AdminRole { Id = 9, Name = "Normal User" }; // When _adminRoleRepository.Add(adminRoleNormalUser); var saved = await _adminRoleRepository.SaveChangesAsync(); // Then Assert.True(saved); using (var db = new GlownyShopContext(_options, _dbLogger.Object)) { var droid = await db.AdminRoles.FindAsync(9); Assert.NotNull(droid); Assert.Equal(9, droid.Id); Assert.Equal("Normal User", droid.Name); // Cleanup db.AdminRoles.Remove(droid); await db.SaveChangesAsync(); } }
public async void FailedUpdateNewUserDuplicateEmailCase() { // When var newAdminUser = new AdminUser { Id = new Guid("1d9a394c-60b8-4523-ab41-52b2936836c3").ToString(), Email = "*****@*****.**" }; var adminUserRoleService = new AdminUserRoleService(_adminUserRepository, _adminRoleRepository); //Then ArgumentException ex = await Assert.ThrowsAsync <ArgumentException>( () => adminUserRoleService.UpdateAdminUser(newAdminUser)); Assert.Contains("already used", ex.Message); Assert.Equal("email", ex.ParamName); using (var db = new GlownyShopContext(_options, _dbLogger.Object)) { var admnUser = await db.AdminUsers.FindAsync(new Guid("1d9a394c-60b8-4523-ab41-52b2936836c3").ToString()); Assert.NotNull(admnUser); Assert.Equal("*****@*****.**", admnUser.Email); Assert.Equal(new Guid("1d9a394c-60b8-4523-ab41-52b2936836c3").ToString(), admnUser.Id); } }
public async void DeleteExistingAdminRole() { // Given using (var db = new GlownyShopContext(_options, _dbLogger.Object)) { var adminRole9 = new AdminRole { Id = 9, Name = "Normal User" }; await db.AdminRoles.AddAsync(adminRole9); await db.SaveChangesAsync(); } // When _adminRoleRepository.Delete(9); var saved = await _adminRoleRepository.SaveChangesAsync(); // Then Assert.True(saved); using (var db = new GlownyShopContext(_options, _dbLogger.Object)) { var deletedDroid = await db.AdminRoles.FindAsync(9); Assert.Null(deletedDroid); } }
public async void UpdateExistingAdminRole() { // Given var superAdmin = await _adminRoleRepository.Get(0); superAdmin.Name = "SuperAdmin"; // When _adminRoleRepository.Update(superAdmin); var saved = await _adminRoleRepository.SaveChangesAsync(); // Then Assert.True(saved); using (var db = new GlownyShopContext(_options, _dbLogger.Object)) { var adminRole = await db.AdminRoles.FindAsync(0); Assert.NotNull(adminRole); Assert.Equal(0, adminRole.Id); Assert.Equal("SuperAdmin", adminRole.Name); // Cleanup adminRole.Name = "Super Admin"; db.AdminRoles.Update(adminRole); await db.SaveChangesAsync(); } }
public async void Return4RowsGivenGetAll() { // When var glownyShopContext = new GlownyShopContext(_options, _dbLogger.Object); var repoLogger = new Mock <ILogger <AdminUserRepository> >(); var _adminUserRepositoryAll = new AdminUserRepository(glownyShopContext, repoLogger.Object); var adminUsers = await _adminUserRepositoryAll.GetAll(); // Then Assert.NotNull(adminUsers); Assert.Equal(4, adminUsers.Count); //CleanUp var saved = await _adminUserRepositoryAll.SaveChangesAsync(); }
public AdminUserRepositoryShould() { // Given _dbLogger = new Mock <ILogger <GlownyShopContext> >(); // https://docs.microsoft.com/en-us/ef/core/miscellaneous/testing/in-memory _options = new DbContextOptionsBuilder <GlownyShopContext>() .UseInMemoryDatabase(databaseName: "GlownyShop_AdminUser") .Options; using (var context = new GlownyShopContext(_options, _dbLogger.Object)) { context.EnsureSeedData(); } var glownyShopContext = new GlownyShopContext(_options, _dbLogger.Object); var repoLogger = new Mock <ILogger <AdminUserRepository> >(); _adminUserRepository = new AdminUserRepository(glownyShopContext, repoLogger.Object); }
public async void SuccesUpdateUserPasswordChanged() { // When var newAdminUser = new AdminUser { Id = new Guid("1d9a394c-60b8-4523-ab41-52b2936836c3").ToString(), Email = "*****@*****.**", FirstName = "First 1", LastName = "Last 1", IsActive = false, Password = "******" }; var adminUserRoleService = new AdminUserRoleService(_adminUserRepository, _adminRoleRepository); var adminUser = await adminUserRoleService.UpdateAdminUser(newAdminUser); // Then Assert.NotNull(adminUser); using (var db = new GlownyShopContext(_options, _dbLogger.Object)) { var admnUser = await db.AdminUsers.FindAsync(new Guid("1d9a394c-60b8-4523-ab41-52b2936836c3").ToString()); Assert.NotNull(admnUser); Assert.Equal("*****@*****.**", admnUser.Email); Assert.Equal(new Guid("1d9a394c-60b8-4523-ab41-52b2936836c3").ToString(), admnUser.Id); Assert.Equal("First 1", admnUser.FirstName); Assert.Equal("Last 1", admnUser.LastName); Assert.Equal(false, admnUser.IsActive); Assert.NotEqual("0000", admnUser.Password); //clean up admnUser.Email = "*****@*****.**"; admnUser.FirstName = "Super"; admnUser.LastName = "Admin"; admnUser.Password = SecurityService.GenerateHashedPassword("P@ssw0rd"); admnUser.IsActive = true; db.SaveChanges(); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, GlownyShopContext db) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); app.UseCors(builder => builder.WithOrigins("http://localhost:3000") .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials() ); app.UseOAuthValidation(); // Register the OpenIddict middleware. app.UseOpenIddict(); app.UseMvcWithDefaultRoute(); app.UseStaticFiles(); app.UseMvc(); db.EnsureSeedData(); }
public async void AddNewAdminUser() { // Given string newGuid = Guid.NewGuid().ToString(); var newAdminUser = new AdminUser { Id = newGuid, FirstName = "First", LastName = "Last", Email = "*****@*****.**", IsActive = false, Password = SecurityService.GenerateHashedPassword("P@ssw0rd"), }; // When _adminUserRepository.Add(newAdminUser); var saved = await _adminUserRepository.SaveChangesAsync(); // Then Assert.True(saved); //var id = newAdminUser.Id; using (var db = new GlownyShopContext(_options, _dbLogger.Object)) { var adminUser = await db.AdminUsers.FindAsync(newGuid); Assert.NotNull(adminUser); Assert.Equal(newGuid, adminUser.Id); Assert.Equal("First", adminUser.FirstName); Assert.Equal("Last", adminUser.LastName); Assert.Equal("*****@*****.**", adminUser.Email); // Cleanup db.AdminUsers.Remove(adminUser); await db.SaveChangesAsync(); } }
public AdminRoleRepository(GlownyShopContext db, ILogger <AdminRoleRepository> logger) : base(db, logger) { }
public static void EnsureSeedData(this GlownyShopContext db) { db._logger.LogInformation("Seeding database"); // admin users var AdminUserSuperAdmin = new AdminUser { Id = new Guid("1d9a394c-60b8-4523-ab41-52b2936836c3").ToString(), FirstName = "Super", LastName = "Admin", Email = "*****@*****.**", Password = SecurityService.GenerateHashedPassword("P@ssw0rd"), IsActive = true, }; var AdminUserUserAdmin = new AdminUser { Id = new Guid("5a736c82-2c9b-4030-abd5-52058549920c").ToString(), FirstName = "User", LastName = "Admin", Email = "*****@*****.**", Password = SecurityService.GenerateHashedPassword("P@ssw0rd"), IsActive = true, }; var AdminUserClientAdmin1 = new AdminUser { Id = new Guid("15220f30-c001-47ca-a539-58dab2371b79").ToString(), FirstName = "Client", LastName = "Admin 1", Email = "*****@*****.**", Password = SecurityService.GenerateHashedPassword("P@ssw0rd"), IsActive = true, }; var AdminUserClientAdmin2 = new AdminUser { Id = new Guid("67a4ac55-f101-411d-90fa-709fcac666b1").ToString(), FirstName = "Client", LastName = "Admin 2", Email = "*****@*****.**", Password = SecurityService.GenerateHashedPassword("P@ssw0rd"), IsActive = true, }; var adminUsers = new List <AdminUser> { AdminUserSuperAdmin, AdminUserUserAdmin, AdminUserClientAdmin1, AdminUserClientAdmin2, }; if (!db.AdminUsers.Any()) { db._logger.LogInformation("Seeding admin users"); db.AdminUsers.AddRange(adminUsers); db.SaveChanges(); } // admin Roles var AdminRoleSuperAdmin = new AdminRole { Id = 0, Name = "Super Admin", AdminUserRoles = new List <AdminUserRole> { new AdminUserRole { AdminUser = AdminUserSuperAdmin } } }; var AdminRoleUserAdmin = new AdminRole { Id = 1, Name = "User Admin", AdminUserRoles = new List <AdminUserRole> { new AdminUserRole { AdminUser = AdminUserUserAdmin }, new AdminUserRole { AdminUser = AdminUserClientAdmin2 } } }; var AdminRoleClientAdmin = new AdminRole { Id = 2, Name = "Client Admin", AdminUserRoles = new List <AdminUserRole> { new AdminUserRole { AdminUser = AdminUserClientAdmin1 }, new AdminUserRole { AdminUser = AdminUserClientAdmin2 } } }; var adminRoles = new List <AdminRole> { AdminRoleSuperAdmin, AdminRoleUserAdmin, AdminRoleClientAdmin, }; if (!db.AdminRoles.Any()) { db._logger.LogInformation("Seeding admin roles"); db.AdminRoles.AddRange(adminRoles); db.SaveChanges(); } }