public void MultiTenantEnabled_NullTenant_ReturnsEmptyResults() { SecuritySettings.Instance.MultiTenant = true; var sub = new MockUserAccountService(); 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 UsernamesNotUniqueAcrossTenants_CorrectResultsReturned() { SecuritySettings.Instance.MultiTenant = true; var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = 1, Tenant = "t1", Username = "******" }, new UserAccount { ID = 2, Tenant = "t1", Username = "******" }, new UserAccount { ID = 3, Tenant = "t2", Username = "******" }, new UserAccount { ID = 4, Tenant = SecuritySettings.Instance.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(SecuritySettings.Instance.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 InvalidKey_ReturnsNull() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = 1, VerificationKey = "a" }, new UserAccount { ID = 2, VerificationKey = "b" }, new UserAccount { ID = 3, VerificationKey = "c" }); var result = sub.Object.GetByVerificationKey("d"); Assert.IsNull(result); }
public void ValidKey_MultipleMatches_Throws() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = 1, VerificationKey = "a" }, new UserAccount { ID = 2, VerificationKey = "b" }, new UserAccount { ID = 3, VerificationKey = "b" }); var result = sub.Object.GetByVerificationKey("b"); }
public void ValidKey_ReturnsCorrectResult() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = 1, VerificationKey = "a" }, new UserAccount { ID = 2, VerificationKey = "b" }, new UserAccount { ID = 3, VerificationKey = "c" }); var result = sub.Object.GetByVerificationKey("b"); Assert.AreEqual(2, result.ID); }
public void PassInvalidEmail_ReturnsNull() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = 1, Tenant = SecuritySettings.Instance.DefaultTenant, Email = "a" }, new UserAccount { ID = 2, Tenant = SecuritySettings.Instance.DefaultTenant, Email = "b" }, new UserAccount { ID = 3, Tenant = SecuritySettings.Instance.DefaultTenant, Email = "c" }); var result = sub.Object.GetByEmail("d"); Assert.IsNull(result); }
public void ValidUser_SetPasswordCalled() { var sub = new MockUserAccountService(); var user = new MockUserAccount(SecuritySettings.Instance.DefaultTenant, "user", "foo", "*****@*****.**"); sub.MockUserAccounts(user.Object); sub.Object.SetPassword("user", "pass"); user.Verify(x => x.SetPassword("pass")); }
public void MultiTenantNotEnabled_NullTenant_ReturnsResultsForDefaultTenant() { SecuritySettings.Instance.MultiTenant = false; SecuritySettings.Instance.DefaultTenant = "a"; var sub = new MockUserAccountService(); 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 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 ValidAccount_CallsAccount() { SecuritySettings.Instance.DefaultTenant = "tenant"; var sub = new MockUserAccountService(); var account = new MockUserAccount("tenant", "user", "pass", "*****@*****.**"); sub.MockUserAccounts(account.Object); var result = sub.Object.IsPasswordExpired("tenant", "user"); account.Verify(x => x.IsPasswordExpired); }
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 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 PassValidUsername_ReturnsCorrectResult() { 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("b"); Assert.AreEqual(b, result.ID); }
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)); }
public void ValidUser_RepositorySaved() { var sub = new MockUserAccountService(); var user = new MockUserAccount(SecuritySettings.Instance.DefaultTenant, "user", "foo", "*****@*****.**"); sub.MockUserAccounts(user.Object); sub.Object.SetPassword("user", "pass"); sub.UserAccountRepository.Verify(x => x.SaveChanges()); }
public void MultiTenantNotEnabled_ReturnsCorrectValues() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = 1, Tenant = SecuritySettings.Instance.DefaultTenant, Email = "a" }, new UserAccount { ID = 1, Tenant = SecuritySettings.Instance.DefaultTenant, Email = "b" }, new UserAccount { ID = 1, Tenant = "t2", Email = "a" }); Assert.IsTrue(sub.Object.EmailExists("a")); Assert.IsTrue(sub.Object.EmailExists("b")); Assert.IsTrue(sub.Object.EmailExists(SecuritySettings.Instance.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 PassValidEmail_ReturnsCorrectResult() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = 1, Tenant = SecuritySettings.Instance.DefaultTenant, Email = "a" }, new UserAccount { ID = 2, Tenant = SecuritySettings.Instance.DefaultTenant, Email = "b" }, new UserAccount { ID = 3, Tenant = SecuritySettings.Instance.DefaultTenant, Email = "c" }); var result = sub.Object.GetByEmail("b"); Assert.AreEqual(2, result.ID); }
public void PassValidEmail_MultipleMatches_Throws() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = 1, Tenant = SecuritySettings.Instance.DefaultTenant, Email = "a" }, new UserAccount { ID = 2, Tenant = SecuritySettings.Instance.DefaultTenant, Email = "a" }, new UserAccount { ID = 3, Tenant = SecuritySettings.Instance.DefaultTenant, Email = "c" }); sub.Object.GetByEmail("a"); }
public void SomeAccountsClosed_ReturnsOnlyAccountsNotClosed() { var sub = new MockUserAccountService(); sub.MockUserAccounts( new UserAccount { ID = 1, Tenant = SecuritySettings.Instance.DefaultTenant, IsAccountClosed = true }, new UserAccount { ID = 2, Tenant = SecuritySettings.Instance.DefaultTenant, IsAccountClosed = true }, new UserAccount { ID = 3, Tenant = SecuritySettings.Instance.DefaultTenant, }, new UserAccount { ID = 4, Tenant = SecuritySettings.Instance.DefaultTenant, }); var result = sub.Object.GetAll(null); Assert.AreEqual(2, result.Count()); CollectionAssert.AreEquivalent(new int[] { 3, 4 }, result.Select(x => x.ID).ToArray()); }
public void NoUser_Throws() { var sub = new MockUserAccountService(); sub.MockUserAccounts(new UserAccount { Tenant = "tenant", Username = "******" }); sub.Object.SetPassword("tenant", "user2", "pass"); }