public void Cant_ComparePasswordAnswerTo_If_QuestionAndAnswer_Arent_Defined() { // Arrange User user = new User("username", password, passwordCoder); // Act var isEqual = user.ComparePasswordAnswerTo("otherPasswordAnser", passwordCoder); // Assert }
public void Attempt_To_Change_PasswordQuestionAndAnswer_With_Wrong_Password_Must_Increment_Failiure_Count() { // Arrange User user = new User("username", password, passwordCoder); var failedPasswordAttemptCount = user.FailedPasswordAttemptCount; var newPasswordQuestion = "New password question"; var newPasswordAnswer = "New password answer"; // Act var result = user.ChangePasswordQuestionAndAnswer(fakePassword, newPasswordQuestion, newPasswordAnswer, passwordCoder); // Assert Assert.IsFalse(result, "Change of PasswordQuestionAndAnswer was successful."); Assert.AreNotEqual(newPasswordQuestion, user.PasswordQuestion, "User has successfuly changed password question."); Assert.IsTrue(failedPasswordAttemptCount < user.FailedPasswordAttemptCount, "Change with wrong password didn't rise failed password attempt count."); }
public void Cant_Change_PasswordQuestionAndAnswer_When_User_Is_Locked() { // Arrange User user = new User("username", password, passwordCoder); var newPasswordQuestion = "New password question"; var newPasswordAnswer = "New password answer"; user.ChangePasswordQuestionAndAnswer(fakePassword, newPasswordQuestion, newPasswordAnswer, passwordCoder); user.ChangePasswordQuestionAndAnswer(fakePassword, newPasswordQuestion, newPasswordAnswer, passwordCoder); // ovdje bi korisnik trebao biti zakljucan user.TryToLockoutUser(2); // Act var result = user.ChangePasswordQuestionAndAnswer(password, newPasswordQuestion, newPasswordAnswer, passwordCoder); // Assert Assert.IsFalse(result, "Change of PasswordQuestionAndAnswer was successful."); Assert.AreNotEqual(newPasswordQuestion, user.PasswordQuestion, "User has successfuly changed password question."); Assert.IsTrue(user.IsLockedOut, "User isn't lockedout."); }
public void If_Time_Of_Tracking_Bad_Attempts_Is_Passed_Counters_Must_Be_Reset() { // Arrange User user = new User("username", password, passwordCoder); user.IncrementFailedPasswordAttemptCount(); user.IncrementFailedPasswordAttemptCount(); user.IncrementFailedPasswordAnswerAttemptCount(); PropertyInfo passwordAnswerProperty = user.GetType().GetProperty("FailedPasswordAnswerAttemptWindowStart", BindingFlags.Public | BindingFlags.Instance); passwordAnswerProperty.SetValue(user, DateTime.Now.AddMinutes(-30), null); PropertyInfo passwordProperty = user.GetType().GetProperty("FailedPasswordAttemptWindowStart", BindingFlags.Public | BindingFlags.Instance); passwordProperty.SetValue(user, DateTime.Now.AddMinutes(-30), null); // Act user.CheckTrackingFailedAttempts(1); // Assert Assert.AreEqual(0, user.FailedPasswordAnswerAttemptCount, "FailedPasswordAnswerAttempt counter isn't reset."); Assert.AreEqual(DateTime.MinValue.ToLocalTime(), user.FailedPasswordAnswerAttemptWindowStart, "FailedPasswordAnswerAttemptWindowStart isn't reset to min datetime."); Assert.AreEqual(0, user.FailedPasswordAttemptCount, "FailedPasswordAttempt counter isn't reset."); Assert.AreEqual(DateTime.MinValue.ToLocalTime(), user.FailedPasswordAttemptWindowStart, "FailedPasswordAttemptWindowStart isn't reset to min datetime."); }
public void When_User_Is_Unlocked_FailedPasswordAttemptCount_Must_Be_Reset_To_Zero() { // Arrange User user = new User("username", password, passwordCoder); user.IncrementFailedPasswordAttemptCount(); user.IncrementFailedPasswordAttemptCount(); // Act user.UnlockUser(); // Assert Assert.AreEqual(0, user.FailedPasswordAnswerAttemptCount, "FailedPasswordAttemptCount isn't set to zero."); }
public void When_User_Is_Unlocked_FailedPasswordAttemptWindowStart_Must_Be_Reset_To_Default() { // Arrange User user = new User("username", password, passwordCoder); // Act user.IncrementFailedPasswordAttemptCount(); user.IncrementFailedPasswordAttemptCount(); user.TryToLockoutUser(2); var wasLockedOut = user.IsLockedOut; user.UnlockUser(); // Assert Assert.IsTrue(wasLockedOut, "User wasn't ever locked out."); Assert.AreEqual(DateTime.MinValue.ToLocalTime(), user.FailedPasswordAttemptWindowStart, "FailedPasswordAttemptWindowstart isn't set to default."); Assert.IsTrue(DateTime.MinValue.ToLocalTime() == user.FailedPasswordAttemptWindowStart, "FailedPasswordAttemptWindowstart isn't set to default."); }
public void When_Incrementing_FailedPasswordAttemptCount_Must_Set_Its_StartWindow() { // Arrange User user = new User("username", password, passwordCoder); // Act user.IncrementFailedPasswordAttemptCount(); user.IncrementFailedPasswordAttemptCount(); // Assert Assert.IsTrue(user.FailedPasswordAttemptWindowStart > DateTime.MinValue.ToLocalTime(), "FailedPasswordAttemptWindowStart is not changed."); Assert.AreNotEqual(DateTime.MinValue.ToLocalTime(), user.FailedPasswordAttemptWindowStart, "FailedPasswordAttemptWindowStart and DateTime.MinValue are equal."); }
public void When_User_Is_Declared_As_LockedOut_LastLockoutDate_Must_Be_Set() { // Arrange User user = new User("username", password, passwordCoder); user.IncrementFailedPasswordAttemptCount(); user.IncrementFailedPasswordAttemptCount(); // Act user.TryToLockoutUser(2); // Assert Assert.IsTrue(user.IsLockedOut, "User isn't locked out."); Assert.AreNotEqual(DateTime.MinValue.ToLocalTime(), user.LastLockoutDate, "LastLockoutDate isn't set when user is declared as locked out."); }
public void On_User_Creation_LastPasswordChangedDate_Must_Have_The_Same_Value_As_CreatedDate() { // Arrange User user = new User("username", password, passwordCoder); // Act // Assert Assert.AreEqual(user.CreationDate, user.LastPasswordChangedDate, "LastPasswordChangedDate and CreationDate aren't equal."); }
public void Password_Change_Must_Set_New_LastPasswordChangedDate() { // Arrange User user = new User("username", password, passwordCoder); // Act var isPasswordChanged = user.ChangePassword(password, fakePassword, passwordCoder); // Assert Assert.IsTrue(isPasswordChanged, "Password isn't changed."); Assert.AreNotEqual(user.CreationDate, user.LastPasswordChangedDate, "LastPasswordChangedDate and CreationDate are equal."); }
public void Can_Increment_FailedPasswordAttemptCount() { // Arrange User user = new User("username", password, passwordCoder); // Act user.IncrementFailedPasswordAttemptCount(); user.IncrementFailedPasswordAttemptCount(); user.IncrementFailedPasswordAttemptCount(); // Assert Assert.AreEqual(3, user.FailedPasswordAttemptCount, "Can't increment FailedPasswordAttemptCount."); }
public void LastLoginDate_Must_Be_Set_In_UTC_And_Retured_In_LocalTime() { // Arrange User user = new User("username", password, passwordCoder); var localTime = DateTime.Now; // Act user.LastLoginDate = localTime; // Assert Assert.AreEqual(localTime, user.LastLoginDate, "LastLoginDate isn't returned in local time."); }
public void If_Time_Of_Tracking_Bad_Attempts_Is_Not_Passed_Counters_Must_Be_Reset() { // Arrange User user = new User("username", password, passwordCoder); user.IncrementFailedPasswordAttemptCount(); user.IncrementFailedPasswordAttemptCount(); // Act user.CheckTrackingFailedAttempts(30); // Assert Assert.AreEqual(0, user.FailedPasswordAnswerAttemptCount, "FailedPasswordAnswerAttempt counter is reset."); Assert.AreEqual(2, user.FailedPasswordAttemptCount, "FailedPasswordAttempt counter is reset."); }
public void Can_Reset_FailedPasswordAttemptCount() { // Arrange User user = new User("username", password, passwordCoder); user.IncrementFailedPasswordAttemptCount(); user.IncrementFailedPasswordAttemptCount(); // Act user.ResetFailedPasswordAttemptCount(); // Assert Assert.AreEqual(0, user.FailedPasswordAttemptCount, "FailedPasswordAttemptCount isn't set to zero."); }
public void If_PasswordCoder_Is_HashPasswordCoder_PasswordSalt_Must_Be_Set_On_In_Ctor() { // Arrange Mock<IPasswordCoder> passwordCoderMock = new Mock<IPasswordCoder>(); passwordCoderMock.Setup(pc => pc.PasswordFormat).Returns(MembershipPasswordFormat.Hashed); var passwordCoder = passwordCoderMock.Object; User user = new User("username", password, passwordCoder); // Act // Assert Assert.IsNotNullOrEmpty(user.PasswordSalt, "PasswordSalt isn't set in constructor"); }
public void Email_Must_Be_Set_To_Lower() { // Arrange string email = "*****@*****.**"; User user = new User("username", password, passwordCoder) { Email = email }; string loweredEmail = email.ToLower(); // Act // Assert Assert.AreEqual(loweredEmail, user.Email, "Email isn't lowered."); }
public void CreationDate_Must_Be_Set_In_UTC_And_Returned_In_LocalTime() { // Arrange User user = new User("username", password, passwordCoder); // Act // Assert Assert.AreEqual(DateTime.Now.Kind, user.CreationDate.Kind, "CreationDate isn't returned in local time."); }
public void CreationDate_Is_Set_By_Constructor() { // Arrange User user = new User("username", password, passwordCoder); // Act // Assert Assert.IsTrue(user.CreationDate > DateTime.MinValue.ToLocalTime(), "CreationDate isn't set by constructor."); }
public void Can_Set_PasswordQuestion_In_ClearText() { // Arrange User user = new User("username", password, passwordCoder); string question = "Question for password"; string answer = "Answer for password question"; // Act user.ChangePasswordQuestionAndAnswer(password, question, answer, passwordCoder); // Assert Assert.AreEqual(question, user.PasswordQuestion, "PasswordQuestion isn't set in clear text."); }
public void Cant_GetPassword_If_QuestionAndAnswer_Arent_Defined() { // Arrange User user = new User("username", password, passwordCoder); // Act var newPassword = user.GetPassword("otherPasswordAnswer", passwordCoder); // Assert }
public void Can_Get_Password_If_PasswordCoder_Supports_It() { // Arrange User user = new User("username", password, passwordCoder); // Act var retrievedPassword = user.GetPassword(passwordCoder); // Assert Assert.AreEqual(password, retrievedPassword, "Passwords aren't equal."); }