public void UsernameMustNotAlreadyExist_UsernameExistsInService_Fails() { var mockSvc = new MockUserAccountService(); var acct1 = new MockUserAccount(mockSvc.SecuritySettings.DefaultTenant, "u1", "p1", "*****@*****.**"); mockSvc.MockUserAccounts(acct1); var acct2 = new MockUserAccount(mockSvc.SecuritySettings.DefaultTenant, "u1", "p1", "*****@*****.**"); var result = UserAccountValidation.UsernameMustNotAlreadyExist.Validate(mockSvc.Object, acct2.Object, acct2.Object.Username); Assert.IsNotNull(result); }
public void EmailMustNotAlreadyExist_EmailDoesNotExistsInService_Succeeds() { var mockSvc = new MockUserAccountService(); var acct1 = new MockUserAccount(mockSvc.SecuritySettings.DefaultTenant, "u1", "p1", "*****@*****.**"); mockSvc.MockUserAccounts(acct1); var acct2 = new MockUserAccount(mockSvc.SecuritySettings.DefaultTenant, "u1", "p1", "*****@*****.**"); var result = UserAccountValidation.EmailMustNotAlreadyExist.Validate(mockSvc.Object, acct2.Object, acct2.Object.Email); Assert.IsNull(result); }
public void ValidKey_MultipleMatches_Throws() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = a, VerificationKey = "a" }, new UserAccount { ID = b, VerificationKey = "b" }, new UserAccount { ID = c, VerificationKey = "b" }); var result = sub.Object.GetByVerificationKey("b"); }
public void ValidKey_ReturnsCorrectResult() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = a, VerificationKey = "a" }, new UserAccount { ID = b, VerificationKey = "b" }, new UserAccount { ID = c, VerificationKey = "c" }); var result = sub.Object.GetByVerificationKey("b"); Assert.AreEqual(b, result.ID); }
public void PassInvalidEmail_ReturnsNull() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = a, Tenant = sub.SecuritySettings.DefaultTenant, Email = "a" }, new UserAccount { ID = b, Tenant = sub.SecuritySettings.DefaultTenant, Email = "b" }, new UserAccount { ID = c, Tenant = sub.SecuritySettings.DefaultTenant, Email = "c" }); var result = sub.Object.GetByEmail("d"); Assert.IsNull(result); }
public void PassValidEmail_MultipleMatches_Throws() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = a, Tenant = sub.SecuritySettings.DefaultTenant, Email = "a" }, new UserAccount { ID = b, Tenant = sub.SecuritySettings.DefaultTenant, Email = "a" }, new UserAccount { ID = c, Tenant = sub.SecuritySettings.DefaultTenant, Email = "c" }); sub.Object.GetByEmail("a"); }
public void PassValidUsername_MultipleMatches_Throws() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = a, Tenant = SecuritySettings.Instance.DefaultTenant, Username = "******" }, new UserAccount { ID = b, Tenant = SecuritySettings.Instance.DefaultTenant, Username = "******" }, new UserAccount { ID = c, Tenant = SecuritySettings.Instance.DefaultTenant, Username = "******" }); sub.Object.GetByUsername("a"); }
public void MultiTenantNotEnabled_ReturnsCorrectValues() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = a, Tenant = sub.SecuritySettings.DefaultTenant, Email = "a" }, new UserAccount { ID = b, Tenant = sub.SecuritySettings.DefaultTenant, Email = "b" }, new UserAccount { ID = c, Tenant = "t2", Email = "a" }); Assert.IsTrue(sub.Object.EmailExists("a")); Assert.IsTrue(sub.Object.EmailExists("b")); Assert.IsTrue(sub.Object.EmailExists(sub.SecuritySettings.DefaultTenant, "a")); Assert.IsTrue(sub.Object.EmailExists("t1", "b")); Assert.IsTrue(sub.Object.EmailExists("t2", "a")); Assert.IsFalse(sub.Object.EmailExists("c")); Assert.IsFalse(sub.Object.EmailExists("t2", "c")); }
public void MultiTenantEnabled_NullTenant_ReturnsEmptyResults() { var sub = new MockUserAccountService(); sub.SecuritySettings.MultiTenant = true; sub.MockUserAccounts( new UserAccount { Tenant = "a" }, new UserAccount { Tenant = "a" }, new UserAccount { Tenant = "b" }); var result = sub.Object.GetAll(null); Assert.AreEqual(0, result.Count()); }
public void ValidAccount_CallsAccount() { var sub = new MockUserAccountService(); sub.SecuritySettings.DefaultTenant = "tenant"; var account = new MockUserAccount("tenant", "user", "pass", "*****@*****.**"); sub.MockUserAccounts(account.Object); var result = sub.Object.IsPasswordExpired("tenant", "user"); account.Verify(x => x.GetIsPasswordExpired(It.IsAny<int>())); }
public void ValidUser_RepositorySaved() { var sub = new MockUserAccountService(); var user = new MockUserAccount(sub.SecuritySettings.DefaultTenant, "user", "foo", "*****@*****.**"); sub.MockUserAccounts(user.Object); sub.Object.SetPassword("user", "pass"); sub.UserAccountRepository.Verify(x => x.Update(user.Object)); }
public void ValidUser_SetPasswordCalled() { var sub = new MockUserAccountService(); var user = new MockUserAccount(sub.SecuritySettings.DefaultTenant, "user", "foo", "*****@*****.**"); sub.MockUserAccounts(user.Object); sub.Object.SetPassword("user", "pass"); user.Verify(x => x.SetPassword("pass")); }
public void NoUser_Throws() { var sub = new MockUserAccountService(); sub.MockUserAccounts(new UserAccount { Tenant = "tenant", Username = "******" }); sub.Object.SetPassword("tenant", "user2", "pass"); }
public void UsernamesUniqueAcrossTenants_CorrectResultsReturned() { SecuritySettings.Instance.MultiTenant = true; SecuritySettings.Instance.UsernamesUniqueAcrossTenants = true; var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = a, Tenant = "t1", Username = "******" }, new UserAccount { ID = b, Tenant = "t1", Username = "******" }, new UserAccount { ID = c, Tenant = "t2", Username = "******" }); Assert.IsTrue(sub.Object.UsernameExists("a")); Assert.IsTrue(sub.Object.UsernameExists("t1", "a")); Assert.IsTrue(sub.Object.UsernameExists("t2", "a")); Assert.IsTrue(sub.Object.UsernameExists("t3", "a")); Assert.IsFalse(sub.Object.UsernameExists("d")); Assert.IsFalse(sub.Object.UsernameExists("t1", "d")); Assert.IsFalse(sub.Object.UsernameExists("t2", "d")); Assert.IsFalse(sub.Object.UsernameExists("t3", "d")); }
public void PassInvalidUsername_ReturnsNull() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = a, Tenant = SecuritySettings.Instance.DefaultTenant, Username = "******" }, new UserAccount { ID = b, Tenant = SecuritySettings.Instance.DefaultTenant, Username = "******" }, new UserAccount { ID = c, Tenant = SecuritySettings.Instance.DefaultTenant, Username = "******" }); var result = sub.Object.GetByUsername("d"); Assert.IsNull(result); }
public void InvalidKey_ReturnsNull() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = a, VerificationKey = "a" }, new UserAccount { ID = b, VerificationKey = "b" }, new UserAccount { ID = c, VerificationKey = "c" }); var result = sub.Object.GetByVerificationKey("d"); Assert.IsNull(result); }
public void UsernamesNotUniqueAcrossTenants_CorrectResultsReturned() { var sub = new MockUserAccountService(); sub.SecuritySettings.MultiTenant = true; sub.MockUserAccounts( new UserAccount { ID = a, Tenant = "t1", Username = "******" }, new UserAccount { ID = b, Tenant = "t1", Username = "******" }, new UserAccount { ID = c, Tenant = "t2", Username = "******" }, new UserAccount { ID = d, Tenant = sub.SecuritySettings.DefaultTenant, Username = "******" }); Assert.IsTrue(sub.Object.UsernameExists("t1", "a")); Assert.IsTrue(sub.Object.UsernameExists("t1", "b")); Assert.IsTrue(sub.Object.UsernameExists("t2", "a")); Assert.IsTrue(sub.Object.UsernameExists(sub.SecuritySettings.DefaultTenant, "d")); Assert.IsFalse(sub.Object.UsernameExists("t1", "c")); Assert.IsFalse(sub.Object.UsernameExists("t2", "b")); Assert.IsFalse(sub.Object.UsernameExists("t2", "c")); }
public void MultiTenantNotEnabled_NullTenant_ReturnsResultsForDefaultTenant() { var sub = new MockUserAccountService(); sub.SecuritySettings.MultiTenant = false; sub.SecuritySettings.DefaultTenant = "a"; sub.MockUserAccounts( new UserAccount { Tenant = "a" }, new UserAccount { Tenant = "a" }, new UserAccount { Tenant = "b" }); var result = sub.Object.GetAll(null); Assert.AreEqual(2, result.Count()); }
public void SomeAccountsClosed_ReturnsOnlyAccountsNotClosed() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = a, Tenant = sub.SecuritySettings.DefaultTenant, IsAccountClosed = true }, new UserAccount { ID = b, Tenant = sub.SecuritySettings.DefaultTenant, IsAccountClosed = true }, new UserAccount { ID = c, Tenant = sub.SecuritySettings.DefaultTenant, }, new UserAccount { ID = d, Tenant = sub.SecuritySettings.DefaultTenant, }); var result = sub.Object.GetAll(null); Assert.AreEqual(2, result.Count()); CollectionAssert.AreEquivalent(new Guid[] { c, d }, result.Select(x => x.ID).ToArray()); }
public void PassValidEmail_ReturnsCorrectResult() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = a, Tenant = sub.SecuritySettings.DefaultTenant, Email = "a" }, new UserAccount { ID = b, Tenant = sub.SecuritySettings.DefaultTenant, Email = "b" }, new UserAccount { ID = c, Tenant = sub.SecuritySettings.DefaultTenant, Email = "c" }); var result = sub.Object.GetByEmail("b"); Assert.AreEqual(b, result.ID); }
public void PasswordMustBeDifferentThanCurrent_SamePassword_Fails() { var mockSvc = new MockUserAccountService(); var acct = new MockUserAccount(mockSvc.SecuritySettings.DefaultTenant, "u1", "p1", "*****@*****.**"); acct.Object.LastLogin = DateTime.Now; mockSvc.MockUserAccounts(acct); var result = UserAccountValidation.PasswordMustBeDifferentThanCurrent.Validate(mockSvc.Object, acct.Object, "p1"); Assert.IsNotNull(result); }
public void NotificationServicedCalled() { var sub = new MockUserAccountService(); sub.NotificationService = new Mock<INotificationService>(); var user = new MockUserAccount(SecuritySettings.Instance.DefaultTenant, "user", "foo", "*****@*****.**"); sub.MockUserAccounts(user.Object); sub.Object.SetPassword("user", "pass"); sub.NotificationService.Verify(x => x.SendPasswordChangeNotice(user.Object)); }