public void ChangePasswordSuccessTest_ChecksIfThePasswordIsChangedSuccessfully_VeririesThroughTheReturnedValue() { IUserRepository userRepository = new MockUserRepository(); ISecurityKeysRepository securityKeysRepository = new MockSecurityKeysRepository(); IPasswordEncryptionService passwordEncryptionService = new PasswordEncryptionService(); IIdentityAccessPersistenceRepository persistenceRepository = new MockPersistenceRepository(false); UserApplicationService userApplicationService = new UserApplicationService(userRepository, securityKeysRepository, passwordEncryptionService, persistenceRepository, new MockEmailService(), new PasswordCodeGenerationService()); // Store the Securiyty Keys with the Username of the User at hand (securityKeysRepository as MockSecurityKeysRepository).AddSecurityKeysPair(new SecurityKeysPair( new ApiKey("123456789").Value, new SecretKey("987654321").Value, "desc", 0, true)); // We need to encrypt the password in the test case ourselves, as we are not registering the user through // the proper service here (userRepository as MockUserRepository).AddUser(new User("*****@*****.**", "linkinpark", passwordEncryptionService.EncryptPassword("burnitdown"), "USA", TimeZone.CurrentTimeZone, "", "")); User userBeforePasswordChange = userRepository.GetUserByUserName("linkinpark"); string passwordBeforeChange = userBeforePasswordChange.Password; // Give the API key that is already stored in the Security keys repository mentioned with the User Name //UserValidationEssentials userValidationEssentials = new UserValidationEssentials(new Tuple<ApiKey, SecretKey>( // new ApiKey("123456789"), new SecretKey("987654321")), new TimeSpan(0,0,10,0)); ChangePasswordResponse changePasswordResponse = userApplicationService.ChangePassword(new ChangePasswordCommand( "123456789", "burnitdown", "burnitdowntwice")); Assert.IsTrue(changePasswordResponse.ChangeSuccessful); User userAfterPasswordChange = userRepository.GetUserByUserName("linkinpark"); string passwordAfterChange = userAfterPasswordChange.Password; // Verify the old and new password do not match Assert.AreNotEqual(passwordBeforeChange, passwordAfterChange); }
public void CancelAccountActivationSuccessfulTest_MakesSureAccountActivationGetsCancelledWhenEverythingIsGivenAsExpected_VerifiesByReturnedValueAndQueryingRepository() { IUserRepository userRepository = new MockUserRepository(); ISecurityKeysRepository securityKeysRepository = new MockSecurityKeysRepository(); IPasswordEncryptionService passwordEncryptionService = new PasswordEncryptionService(); IIdentityAccessPersistenceRepository persistenceRepository = new MockPersistenceRepository(false); UserApplicationService userApplicationService = new UserApplicationService(userRepository, securityKeysRepository, passwordEncryptionService, persistenceRepository, new MockEmailService(), new PasswordCodeGenerationService()); string activationKey = "123456789"; string username = "******"; string password = "******"; User user = new User("*****@*****.**", username, passwordEncryptionService.EncryptPassword(password), "USA", TimeZone.CurrentTimeZone, "", activationKey); user.AddTierStatus(Status.NonVerified, new Tier(TierLevelConstant.Tier0, TierLevelConstant.Tier0)); // We need to encrypt the password in the test case ourselves, as we are not registering the user through // the proper service here (userRepository as MockUserRepository).AddUser(user); bool accountActivationCancelled = userApplicationService.CancelAccountActivation(new CancelActivationCommand(activationKey)); Assert.IsTrue(accountActivationCancelled); User userByUserName = userRepository.GetUserByUserName(username); Assert.IsNull(userByUserName); }
//[ExpectedException(typeof(Exception))] public void ChangePasswordFailDueToSessionTimeoutTest_ChecksThePasswordDoesNotGetChangedWhenSessionTimeoutHasExpired_VerifiesByExpectingException() { IUserRepository userRepository = new MockUserRepository(); ISecurityKeysRepository securityKeysRepository = new MockSecurityKeysRepository(); IPasswordEncryptionService passwordEncryptionService = new PasswordEncryptionService(); IIdentityAccessPersistenceRepository persistenceRepository = new MockPersistenceRepository(false); UserApplicationService userApplicationService = new UserApplicationService(userRepository, securityKeysRepository, passwordEncryptionService, persistenceRepository, new MockEmailService(), new PasswordCodeGenerationService()); // Store the Securiyty Keys with the Username of the User at hand (securityKeysRepository as MockSecurityKeysRepository).AddSecurityKeysPair(new SecurityKeysPair( new ApiKey("123456789").Value, new SecretKey("987654321").Value, "desc", 0, true)); var user = new User("*****@*****.**", "linkinpark", passwordEncryptionService.EncryptPassword("burnitdown"), "USA", TimeZone.CurrentTimeZone, "", ""); // We need to encrypt the password in the test case ourselves, as we are not registering the user through // the proper service here (userRepository as MockUserRepository).AddUser(user); User userBeforePasswordChange = userRepository.GetUserByUserName("linkinpark"); string passwordBeforeChange = userBeforePasswordChange.Password; // Give the API key that is already stored in the Security keys repository mentioned with the User Name //UserValidationEssentials userValidationEssentials = new UserValidationEssentials(new Tuple<ApiKey, SecretKey>( // new ApiKey("123456789"), new SecretKey("987654321")), new TimeSpan(0, 0, 0, 0, 1)); (userRepository as MockUserRepository).DeleteUser(user); user.AutoLogout = new TimeSpan(0, 0, 0, 0, 1); (userRepository as MockUserRepository).AddUser(user); // Wrong password given userApplicationService.ChangePassword(new ChangePasswordCommand("123456789", "burnitdown", "burnitdowntwice")); User userAfterPasswordChange = userRepository.GetUserByUserName("linkinpark"); string passwordAfterChange = userAfterPasswordChange.Password; // Verify the old and new password do not match Assert.AreNotEqual(passwordBeforeChange, passwordAfterChange); }