コード例 #1
0
        public async Task BadValidatorBlocksCreateTest()
        {
            var manager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>());

            manager.RoleValidator = new AlwaysBadValidator <IdentityRole>();
            UnitTestHelper.IsFailure(await manager.CreateAsync(new IdentityRole("blocked")),
                                     AlwaysBadValidator <IdentityRole> .ErrorMessage);
        }
コード例 #2
0
        public async Task AddDupeUserFailsTest()
        {
            var manager = CreateManager();
            var user    = new InMemoryUser("dupe");
            var user2   = new InMemoryUser("dupe");

            UnitTestHelper.IsSuccess(await manager.CreateAsync(user));
            UnitTestHelper.IsFailure(await manager.CreateAsync(user2), "Name dupe is already taken.");
        }
コード例 #3
0
ファイル: RolesTest.cs プロジェクト: rodcarls/AspNetIdentity
        public async Task RemoveUserFromBogusRolesFails()
        {
            var db          = UnitTestHelper.CreateDefaultDb();
            var userManager = new UserManager <IdentityUser>(new UserStore <IdentityUser>(db));
            var user        = new IdentityUser("1");

            UnitTestHelper.IsSuccess(await userManager.CreateAsync(user));
            UnitTestHelper.IsFailure(await userManager.RemoveFromRolesAsync(user.Id, "bogus"), "User is not in role.");
        }
コード例 #4
0
        public void ChangePasswordFallsIfPasswordWrongSyncTest()
        {
            var manager = CreateManager();
            var user    = new InMemoryUser("user");

            UnitTestHelper.IsSuccess(manager.Create(user, "password"));
            var result = manager.ChangePassword(user.Id, "bogus", "newpassword");

            UnitTestHelper.IsFailure(result, "Incorrect password.");
        }
コード例 #5
0
        public async Task ChangePasswordFallsIfPasswordWrongTest()
        {
            var manager = CreateManager();
            var user    = new InMemoryUser("user");

            UnitTestHelper.IsSuccess(await manager.CreateAsync(user, "password"));
            var result = await manager.ChangePasswordAsync(user.Id, "bogus", "newpassword");

            UnitTestHelper.IsFailure(result, "Incorrect password.");
        }
コード例 #6
0
        public async Task ChangePasswordFallsIfPasswordTooShortTest()
        {
            var          manager  = CreateManager();
            var          user     = new InMemoryUser("user");
            const string password = "******";

            UnitTestHelper.IsSuccess(await manager.CreateAsync(user, password));
            var result = await manager.ChangePasswordAsync(user.Id, password, "n");

            UnitTestHelper.IsFailure(result, "Passwords must be at least 6 characters.");
        }
コード例 #7
0
        public async Task LockoutFailsIfNotEnabled()
        {
            var mgr  = CreateManager();
            var user = new InMemoryUser("LockoutNotEnabledTest");

            UnitTestHelper.IsSuccess(mgr.Create(user));
            Assert.False(mgr.GetLockoutEnabled(user.Id));
            Assert.False(user.LockoutEnabled);
            UnitTestHelper.IsFailure(await mgr.SetLockoutEndDateAsync(user.Id, new DateTimeOffset()), "Lockout is not enabled for this user.");
            Assert.False(await mgr.IsLockedOutAsync(user.Id));
        }
コード例 #8
0
        public async Task BadValidatorBlocksAllUpdatesTest()
        {
            var manager = CreateRoleManager();
            var role    = new InMemoryRole("poorguy");

            UnitTestHelper.IsSuccess(await manager.CreateAsync(role));
            var error = AlwaysBadValidator <InMemoryRole> .ErrorMessage;

            manager.RoleValidator = new AlwaysBadValidator <InMemoryRole>();
            UnitTestHelper.IsFailure(await manager.UpdateAsync(role), error);
        }
コード例 #9
0
        public async Task RequiredNonAlphanumericTest()
        {
            var error = "Passwords must have at least one non letter or digit character.";
            var valid = new PasswordValidator {
                RequireNonLetterOrDigit = true
            };

            UnitTestHelper.IsFailure(await valid.ValidateAsync("abcde"), error);
            UnitTestHelper.IsSuccess(await valid.ValidateAsync("abcd@e!ld!kajfd"));
            UnitTestHelper.IsSuccess(await valid.ValidateAsync("!!!!!!"));
        }
コード例 #10
0
ファイル: RolesTest.cs プロジェクト: rodcarls/AspNetIdentity
        public async Task CreateRoleFailsIfExistsTest()
        {
            var manager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(UnitTestHelper.CreateDefaultDb()));
            var role    = new IdentityRole("dupeRole");

            Assert.False(await manager.RoleExistsAsync(role.Name));
            UnitTestHelper.IsSuccess(await manager.CreateAsync(role));
            Assert.True(await manager.RoleExistsAsync(role.Name));
            var role2 = new IdentityRole("dupeRole");

            UnitTestHelper.IsFailure(await manager.CreateAsync(role2));
        }
コード例 #11
0
        public async Task AddDupeLoginFailsTest()
        {
            var manager = CreateManager();
            var user    = new InMemoryUser("DupeLogin");
            var login   = new UserLoginInfo("provder", "key");

            UnitTestHelper.IsSuccess(await manager.CreateAsync(user));
            UnitTestHelper.IsSuccess(await manager.AddLoginAsync(user.Id, login));
            var result = await manager.AddLoginAsync(user.Id, login);

            UnitTestHelper.IsFailure(result, "A user with that external login already exists.");
        }
コード例 #12
0
ファイル: RolesTest.cs プロジェクト: rodcarls/AspNetIdentity
        public async Task BadValidatorBlocksAllUpdatesTest()
        {
            var db      = UnitTestHelper.CreateDefaultDb();
            var manager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(db));
            var role    = new IdentityRole("poorguy");

            UnitTestHelper.IsSuccess(await manager.CreateAsync(role));
            var error = AlwaysBadValidator <IdentityRole> .ErrorMessage;

            manager.RoleValidator = new AlwaysBadValidator <IdentityRole>();
            UnitTestHelper.IsFailure(await manager.UpdateAsync(role), error);
        }
コード例 #13
0
        public async Task AddDuplicateLoginFailsTest()
        {
            var db   = UnitTestHelper.CreateDefaultDb();
            var mgr  = new UserManager <IdentityUser>(new UserStore <IdentityUser>(db));
            var user = new IdentityUser("dupeLogintest");

            UnitTestHelper.IsSuccess(await mgr.CreateAsync(user));
            var userLogin1 = new UserLoginInfo("provider1", "p1-1");

            UnitTestHelper.IsSuccess(await mgr.AddLoginAsync(user.Id, userLogin1));
            UnitTestHelper.IsFailure(await mgr.AddLoginAsync(user.Id, userLogin1));
        }
コード例 #14
0
        public async Task RequiredLengthTest()
        {
            var error = "Passwords must be at least 6 characters.";
            var valid = new PasswordValidator {
                RequiredLength = 6
            };

            UnitTestHelper.IsFailure(await valid.ValidateAsync(""), error);
            UnitTestHelper.IsFailure(await valid.ValidateAsync("abcde"), error);
            UnitTestHelper.IsSuccess(await valid.ValidateAsync("abcdef"));
            UnitTestHelper.IsSuccess(await valid.ValidateAsync("abcdeldkajfd"));
        }
コード例 #15
0
        public async Task CreateRoleFailsIfExistsTest()
        {
            var manager = CreateRoleManager();
            var role    = new InMemoryRole("dupeRole");

            Assert.False(await manager.RoleExistsAsync(role.Name));
            UnitTestHelper.IsSuccess(await manager.CreateAsync(role));
            Assert.True(await manager.RoleExistsAsync(role.Name));
            var role2 = new InMemoryRole("dupeRole");

            UnitTestHelper.IsFailure(await manager.CreateAsync(role2));
        }
コード例 #16
0
        public async Task AddUserToRoleFailsIfAlreadyInRoleTest()
        {
            var userMgr = CreateManager();
            var roleMgr = CreateRoleManager();
            var role    = new InMemoryRole("addUserDupeTest");
            var user    = new InMemoryUser("user1");

            UnitTestHelper.IsSuccess(await userMgr.CreateAsync(user));
            UnitTestHelper.IsSuccess(await roleMgr.CreateAsync(role));
            UnitTestHelper.IsSuccess(await userMgr.AddToRoleAsync(user.Id, role.Name));
            Assert.True(await userMgr.IsInRoleAsync(user.Id, role.Name));
            UnitTestHelper.IsFailure(await userMgr.AddToRoleAsync(user.Id, role.Name), "User already in role.");
        }
コード例 #17
0
        public async Task RemoveUserNotInRoleFailsTest()
        {
            var userMgr = CreateManager();
            var roleMgr = CreateRoleManager();
            var role    = new InMemoryRole("addUserDupeTest");
            var user    = new InMemoryUser("user1");

            UnitTestHelper.IsSuccess(await userMgr.CreateAsync(user));
            UnitTestHelper.IsSuccess(await roleMgr.CreateAsync(role));
            var result = await userMgr.RemoveFromRoleAsync(user.Id, role.Name);

            UnitTestHelper.IsFailure(result, "User is not in role.");
        }
コード例 #18
0
ファイル: RolesTest.cs プロジェクト: rodcarls/AspNetIdentity
        public async Task RemoveUserNotInRoleFailsTest()
        {
            var db      = UnitTestHelper.CreateDefaultDb();
            var userMgr = new UserManager <IdentityUser>(new UserStore <IdentityUser>(db));
            var roleMgr = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(db));
            var role    = new IdentityRole("addUserDupeTest");
            var user    = new IdentityUser("user1");

            UnitTestHelper.IsSuccess(await userMgr.CreateAsync(user));
            UnitTestHelper.IsSuccess(await roleMgr.CreateAsync(role));
            var result = await userMgr.RemoveFromRoleAsync(user.Id, role.Name);

            UnitTestHelper.IsFailure(result, "User is not in role.");
        }
コード例 #19
0
ファイル: RolesTest.cs プロジェクト: rodcarls/AspNetIdentity
        public async Task AddUserToRoleFailsIfAlreadyInRoleTest()
        {
            var db      = UnitTestHelper.CreateDefaultDb();
            var userMgr = new UserManager <IdentityUser>(new UserStore <IdentityUser>(db));
            var roleMgr = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(db));
            var role    = new IdentityRole("addUserDupeTest");
            var user    = new IdentityUser("user1");

            UnitTestHelper.IsSuccess(await userMgr.CreateAsync(user));
            UnitTestHelper.IsSuccess(await roleMgr.CreateAsync(role));
            UnitTestHelper.IsSuccess(await userMgr.AddToRoleAsync(user.Id, role.Name));
            Assert.True(await userMgr.IsInRoleAsync(user.Id, role.Name));
            UnitTestHelper.IsFailure(await userMgr.AddToRoleAsync(user.Id, role.Name), "User already in role.");
        }
コード例 #20
0
ファイル: RolesTest.cs プロジェクト: rodcarls/AspNetIdentity
        public async Task AddToDupeRolesFails()
        {
            var db          = UnitTestHelper.CreateDefaultDb();
            var userManager = new UserManager <IdentityUser>(new UserStore <IdentityUser>(db));
            var user        = new IdentityUser("1");
            var roleManager =
                new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(UnitTestHelper.CreateDefaultDb()));

            IdentityRole[] roles =
            {
                new IdentityRole("r1"), new IdentityRole("r2"), new IdentityRole("r3"),
                new IdentityRole("r4")
            };
            foreach (var r in roles)
            {
                UnitTestHelper.IsSuccess(await roleManager.CreateAsync(r));
            }
            UnitTestHelper.IsSuccess(await userManager.CreateAsync(user));
            UnitTestHelper.IsSuccess(await userManager.AddToRolesAsync(user.Id, "r1", "r2", "r3", "r4"));
            UnitTestHelper.IsFailure(await userManager.AddToRolesAsync(user.Id, "r1", "r2", "r3", "r4"), "User already in role.");
        }
コード例 #21
0
        public async Task MixedRequiredTest()
        {
            var alphaError  = "Passwords must have at least one non letter or digit character.";
            var upperError  = "Passwords must have at least one uppercase ('A'-'Z').";
            var lowerError  = "Passwords must have at least one lowercase ('a'-'z').";
            var digitError  = "Passwords must have at least one digit ('0'-'9').";
            var lengthError = "Passwords must be at least 6 characters.";
            var valid       = new PasswordValidator
            {
                RequireNonLetterOrDigit = true,
                RequireDigit            = true,
                RequireLowercase        = true,
                RequireUppercase        = true,
                RequiredLength          = 6
            };

            UnitTestHelper.IsFailure(await valid.ValidateAsync("abcde"),
                                     string.Join(" ", lengthError, alphaError, digitError, upperError));
            UnitTestHelper.IsFailure(await valid.ValidateAsync("a@B@cd"), digitError);
            UnitTestHelper.IsFailure(await valid.ValidateAsync("___"),
                                     string.Join(" ", lengthError, digitError, lowerError, upperError));
            UnitTestHelper.IsFailure(await valid.ValidateAsync("a_b9de"), upperError);
            UnitTestHelper.IsSuccess(await valid.ValidateAsync("abcd@e!ld!kaj9Fd"));
        }