コード例 #1
0
        public static async Task <AppDbContext> GetMemoryContext()
        {
            const string inMemoryConnectionString = "DataSource=:memory:";
            var          connection = new SqliteConnection(inMemoryConnectionString);

            connection.Open();
            var options = new DbContextOptionsBuilder <AppDbContext>()
                          .UseSqlite(connection)
                          .Options;



            var authUser = new Mock <ICurrentUserInfo>(MockBehavior.Strict);

            authUser.Setup(r => r.UserId).Returns(DefaultApplicationUsers.GetSuperUser().Id);
            authUser.Setup(r => r.UserName).Returns(DefaultApplicationUsers.GetSuperUser().UserName);
            authUser.Setup(r => r.Roles).Returns(DefaultApplicationRoles.GetDefaultRoles().Select(x => x.Name).ToList());

            var dbContext = new AppDbContext(options, authUser.Object);
            await dbContext.Database.EnsureDeletedAsync();

            await dbContext.Database.EnsureCreatedAsync();

            return(dbContext);
        }
コード例 #2
0
        private Mock <IApplicationUserManager> GetMockApplicationUserManager()
        {
            var applicationUserManager = new Mock <IApplicationUserManager>(MockBehavior.Strict);

            applicationUserManager.Setup(x => x.RegisterUserAsync(It.IsAny <ApplicationUser>()))
            .ReturnsAsync(IdentityResponse.Success("Succeeded"));
            applicationUserManager.Setup(x => x.GetUserByNameAsync(It.IsAny <string>()))
            .ReturnsAsync(DefaultApplicationUsers.GetSuperUser());
            return(applicationUserManager);
        }
コード例 #3
0
        public async Task CookieSignInAsyncTest()
        {
            var loginUserDto = new LoginUserDto
            {
                UserName   = DefaultApplicationUsers.GetSuperUser().UserName,
                Password   = "******",
                RememberMe = true
            };
            var rs = await _accountService.CookieSignInAsync(loginUserDto);

            Assert.AreEqual(true, rs.Succeeded);
        }
コード例 #4
0
        public async Task RegisterUserAsyncTest()
        {
            var registerUserDto = new RegisterUserDto
            {
                FirstName       = DefaultApplicationUsers.GetSuperUser().FirstName,
                LastName        = DefaultApplicationUsers.GetSuperUser().LastName,
                Email           = DefaultApplicationUsers.GetSuperUser().Email,
                Password        = "******",
                ConfirmPassword = "******"
            };
            var rs = await _accountService.RegisterUserAsync(registerUserDto);

            Assert.AreEqual(true, rs.Succeeded);
        }
コード例 #5
0
        private static async Task SeedDefaultUserRolesAsync(UserManager <ApplicationUser> userManager, RoleManager <ApplicationRole> roleManager)
        {
            var defaultRoles = DefaultApplicationRoles.GetDefaultRoles();

            if (!await roleManager.Roles.AnyAsync())
            {
                foreach (var defaultRole in defaultRoles)
                {
                    await roleManager.CreateAsync(defaultRole);
                }
            }
            if (!await roleManager.RoleExistsAsync(DefaultApplicationRoles.SuperAdmin))
            {
                await roleManager.CreateAsync(new ApplicationRole(DefaultApplicationRoles.SuperAdmin));
            }
            var defaultUser = DefaultApplicationUsers.GetSuperUser();
            var userByName  = await userManager.FindByNameAsync(defaultUser.UserName);

            var userByEmail = await userManager.FindByEmailAsync(defaultUser.Email);

            if (userByName == null && userByEmail == null)
            {
                await userManager.CreateAsync(defaultUser, "SuperAdmin");

                foreach (var defaultRole in defaultRoles)
                {
                    await userManager.AddToRoleAsync(defaultUser, defaultRole.Name);
                }
            }

            var role = await roleManager.FindByNameAsync(DefaultApplicationRoles.SuperAdmin);

            var rolePermissions = await roleManager.GetClaimsAsync(role);

            var allPermissions = PermissionHelper.GetPermissionClaims();

            foreach (var permission in allPermissions)
            {
                if (rolePermissions.Any(x => x.Value == permission.Value && x.Type == permission.Type) == false)
                {
                    await roleManager.AddClaimAsync(role, permission);
                }
            }
        }