public void EmailIsValidFormat_ValidEmail_Succeeds() { var mockSvc = new MockUserAccountService(); var acct = new MockUserAccount(); var result = UserAccountValidation.EmailIsValidFormat.Validate(mockSvc.Object, acct.Object, "*****@*****.**"); Assert.IsNull(result); }
public void EmailIsValidFormat_InValidEmail_Fails() { var mockSvc = new MockUserAccountService(); var acct = new MockUserAccount(); var result = UserAccountValidation.EmailIsValidFormat.Validate(mockSvc.Object, acct.Object, "test"); Assert.IsNotNull(result); }
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 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 CallsAllValidators() { bool wasCalled = false; var sub = new MockUserAccountService(); sub.Configuration.RegisterUsernameValidator( new DelegateValidator((svc, ua, val) => { wasCalled = true; return null; })); sub.Object.ValidateUsername(new MockUserAccount().Object, "foo"); Assert.IsTrue(wasCalled); }
public void AllowAccountDeletionDisabled_AccountIsNotVerified_CallsRemoveOnRepo() { var sub = new MockUserAccountService(); sub.SecuritySettings.AllowAccountDeletion = false; var account = new MockUserAccount(); account.Object.IsAccountVerified = false; sub.Object.DeleteAccount(account.Object); sub.UserAccountRepository.Verify(x => x.Remove(account.Object)); }
public void AllowAccountDeletion_CallsRemoveOnRepo() { var sub = new MockUserAccountService(); sub.SecuritySettings.AllowAccountDeletion = true; var account = new MockUserAccount(); sub.Object.DeleteAccount(account.Object); sub.UserAccountRepository.Verify(x => x.Remove(account.Object)); }
public void AccountFound_DeleteAccountCalled() { var sub = new MockUserAccountService(); var account = new MockUserAccount(); sub.Mock.Setup(x => x.GetByUsername(It.IsAny<string>(), It.IsAny<string>())).Returns(account.Object); var result = sub.Object.DeleteAccount("user"); sub.Mock.Verify(x => x.DeleteAccount(account.Object)); }
public void VerifyAccountReturnsFalse_ReturnsFalse() { var sub = new MockUserAccountService(); var account = new MockUserAccount(); sub.Mock.Setup(x => x.GetByVerificationKey(It.IsAny<string>())).Returns(account.Object); account.Setup(x => x.VerifyAccount(It.IsAny<string>())).Returns(false); Assert.IsFalse(sub.Object.VerifyAccount("key")); }
public void ValidAccount_ReturnsAccount() { var sub = new MockUserAccountService(); var result = sub.Object.CreateAccount("user", "pass", "*****@*****.**"); Assert.IsNotNull(result); Assert.AreEqual("user", result.Username); Assert.AreEqual("*****@*****.**", result.Email); }
public void NullPassword_ReturnsFail() { var sub = new MockUserAccountService(); Assert.IsFalse(sub.Object.Authenticate("user", null)); }
public void MultiTenantEnabled_NullTenantParam_ReturnsFail() { var sub = new MockUserAccountService(); sub.SecuritySettings.MultiTenant = true; Assert.IsFalse(sub.Object.Authenticate(null, "user", "pass")); }
public void NoTenantParam_PassesNullTenant() { var sub = new MockUserAccountService(); sub.Object.DeleteAccount("user"); sub.Mock.Verify(x => x.DeleteAccount(null, "user")); }
public void KeysMatch_DeleteAccountCalled() { var sub = new MockUserAccountService(); var account = new MockUserAccount(); account.Object.VerificationPurpose = VerificationKeyPurpose.VerifyAccount; sub.Mock.Setup(x => x.GetByVerificationKey(It.IsAny<string>())).Returns(account.Object); account.Object.VerificationPurpose = VerificationKeyPurpose.VerifyAccount; account.Object.VerificationKey = "key"; sub.Object.CancelNewAccount("key"); sub.Mock.Verify(x => x.DeleteAccount(account.Object)); }
public void ValidatorFailure_Throws() { var mockVal = new Mock<IValidator>(); mockVal.Setup(x => x.Validate(It.IsAny<UserAccountService>(), It.IsAny<UserAccount>(), It.IsAny<String>())).Returns(new ValidationResult("error")); var sub = new MockUserAccountService(); sub.Configuration.RegisterUsernameValidator(mockVal.Object); sub.Object.ValidateUsername(new MockUserAccount().Object, "foo"); }
public void KeysDontMatch_ReturnsFalse() { var sub = new MockUserAccountService(); var account = new MockUserAccount(); account.Object.VerificationPurpose = VerificationKeyPurpose.VerifyAccount; sub.Mock.Setup(x => x.GetByVerificationKey(It.IsAny<string>())).Returns(account.Object); account.Object.VerificationKey = "key1"; Assert.IsFalse(sub.Object.CancelNewAccount("key2")); }
public void AccountVerified_ReturnsFalse() { var sub = new MockUserAccountService(); var account = new MockUserAccount(); sub.Mock.Setup(x => x.GetByVerificationKey(It.IsAny<string>())).Returns(account.Object); account.Object.IsAccountVerified = true; Assert.IsFalse(sub.Object.CancelNewAccount("key")); }
public void InvalidKey_ReturnsFalse() { var sub = new MockUserAccountService(); sub.Mock.Setup(x => x.GetByVerificationKey(It.IsAny<string>())).Returns((UserAccount)null); Assert.IsFalse(sub.Object.CancelNewAccount("key")); }
public void AllowAccountDeletionDisabled_AccountIsVerified_CallsCloseOnAccount() { var sub = new MockUserAccountService(); sub.SecuritySettings.AllowAccountDeletion = false; var account = new MockUserAccount(); account.Object.IsLoginAllowed = true; account.Object.IsAccountVerified = true; sub.Object.DeleteAccount(account.Object); sub.UserAccountRepository.Verify(x => x.Remove(It.IsAny<UserAccount>()), Times.Never()); account.Verify(x => x.CloseAccount()); sub.UserAccountRepository.Verify(x => x.Update(account.Object)); }
public void NoTenantParam_PassesNullForTenant() { var sub = new MockUserAccountService(); sub.Object.Authenticate("user", "pass"); sub.Mock.Verify(x => x.Authenticate(null, "user", "pass")); }
public void MultiTenantEnabled_NullTenantParam_ReturnsFail() { var sub = new MockUserAccountService(); sub.SecuritySettings.MultiTenant = true; var result = sub.Object.DeleteAccount(null, "user"); Assert.IsFalse(result); }
public void NullUsername_ReturnsFail() { var sub = new MockUserAccountService(); Assert.IsFalse(sub.Object.Authenticate((string)null, "pass")); }
public void Verification_SetProperly() { { var sub = new MockUserAccountService(); sub.SecuritySettings.RequireAccountVerification = true; var result = sub.Object.CreateAccount("user", "pass", "*****@*****.**"); Assert.IsNotNull(result.VerificationKey); Assert.IsNotNull(result.VerificationKeySent); } { var sub = new MockUserAccountService(); sub.SecuritySettings.RequireAccountVerification = false; var result = sub.Object.CreateAccount("user", "pass", "*****@*****.**"); Assert.IsNull(result.VerificationKey); Assert.IsNull(result.VerificationKeySent); } }
public void IsLoginAllowed_SetProperly() { { var sub = new MockUserAccountService(); sub.SecuritySettings.AllowLoginAfterAccountCreation = true; var result = sub.Object.CreateAccount("user", "pass", "*****@*****.**"); Assert.IsTrue(result.IsLoginAllowed); } { var sub = new MockUserAccountService(); sub.SecuritySettings.AllowLoginAfterAccountCreation = false; var result = sub.Object.CreateAccount("user", "pass", "*****@*****.**"); Assert.IsFalse(result.IsLoginAllowed); } }
public void AccountFound_ReturnsSuccess() { var sub = new MockUserAccountService(); var account = new MockUserAccount(); sub.Mock.Setup(x => x.GetByUsername(It.IsAny<string>(), It.IsAny<string>())).Returns(account.Object); var result = sub.Object.DeleteAccount("user"); Assert.IsTrue(result); }
public void NullUsernameParam_ReturnsFail() { var sub = new MockUserAccountService(); var result = sub.Object.DeleteAccount((string)null); Assert.IsFalse(result); }
public void Success_CallsVerifyAccountOnUserAccountAndSaveOnRepository() { var sub = new MockUserAccountService(); var account = new MockUserAccount(); sub.Mock.Setup(x => x.GetByVerificationKey(It.IsAny<string>())).Returns(account.Object); sub.Object.VerifyAccount("key"); account.Verify(x => x.VerifyAccount("key")); sub.UserAccountRepository.Verify(x => x.Update(account.Object)); }
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 NoAccountFound_ReturnsFail() { var sub = new MockUserAccountService(); var result = sub.Object.DeleteAccount("user"); Assert.IsFalse(result); }