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); }
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."); }
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."); }
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."); }
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."); }
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."); }
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)); }
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); }
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("!!!!!!")); }
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)); }
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."); }
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); }
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)); }
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")); }
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)); }
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."); }
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."); }
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."); }
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."); }
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."); }
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")); }