Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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();
            }
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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();
            }
        }
Ejemplo n.º 7
0
        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();
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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();
            }
        }
Ejemplo n.º 10
0
        // 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();
        }
Ejemplo n.º 11
0
        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();
            }
        }
Ejemplo n.º 12
0
 public AdminRoleRepository(GlownyShopContext db, ILogger <AdminRoleRepository> logger)
     : base(db, logger)
 {
 }
Ejemplo n.º 13
0
        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();
            }
        }