public void ResetPasswordSuccessfultest_TestsIfPasswordIsResetProperly_VerifiesThroughReturnValues() { IUserApplicationService userApplicationService = (IUserApplicationService)_applicationContext["UserApplicationService"]; IRegistrationApplicationService registrationApplicationService = (IRegistrationApplicationService)_applicationContext["RegistrationApplicationService"]; IUserRepository userRepository = (IUserRepository)_applicationContext["UserRepository"]; IPasswordEncryptionService passwordEncryption = (IPasswordEncryptionService)_applicationContext["PasswordEncryptionService"]; string username = "******"; string email = "*****@*****.**"; string activationKey = registrationApplicationService.CreateAccount(new SignupUserCommand(email, username, "burnitdown", "USA", TimeZone.CurrentTimeZone, "")); bool accountActivated = userApplicationService.ActivateAccount(new ActivationCommand(activationKey, username, "burnitdown")); Assert.IsTrue(accountActivated); ManualResetEvent manualResetEvent = new ManualResetEvent(false); manualResetEvent.WaitOne(6000); string returnedPasswordCode = userApplicationService.ForgotPassword(new ForgotPasswordCommand(email, username)); Assert.IsNotNull(returnedPasswordCode); string newPassword = "******"; bool resetPasswordReponse = userApplicationService.ResetPasswordByEmailLink(new ResetPasswordCommand(username, newPassword, returnedPasswordCode)); Assert.IsTrue(resetPasswordReponse); User userByUserName = userRepository.GetUserByUserName(username); Assert.IsNotNull(userByUserName); Assert.IsTrue(passwordEncryption.VerifyPassword(newPassword, userByUserName.Password)); }
public void CreateNewAccountTest_ChecksWhetherTheUserIsCreatedAndSavedToPersistence_VerifiesThroughUsingDatabaseresult() { IRegistrationApplicationService registrationService = (IRegistrationApplicationService)_applicationContext["RegistrationApplicationService"]; IUserRepository userRepository = (IUserRepository)_applicationContext["UserRepository"]; IPasswordEncryptionService passwordEncryption = (IPasswordEncryptionService)_applicationContext["PasswordEncryptionService"]; ManualResetEvent manualResetEvent = new ManualResetEvent(false); string activationKey = registrationService.CreateAccount(new SignupUserCommand( "*****@*****.**", "Bob", "iamnotalice", "Wonderland", TimeZone.CurrentTimeZone, "")); // Wait for the email to be sent manualResetEvent.WaitOne(5000); User receivedUser = userRepository.GetUserByUserName("Bob"); Assert.NotNull(receivedUser); Assert.AreEqual("*****@*****.**", receivedUser.Email); Assert.AreEqual("Bob", receivedUser.Username); Assert.IsTrue(passwordEncryption.VerifyPassword("iamnotalice", receivedUser.Password)); Assert.AreEqual("", receivedUser.PublicKey); Assert.AreEqual(TimeZone.CurrentTimeZone.StandardName, receivedUser.TimeZone.StandardName); Assert.AreEqual(activationKey, receivedUser.ActivationKey); Assert.IsFalse(receivedUser.IsActivationKeyUsed.Value); Assert.IsFalse(receivedUser.IsUserBlocked.Value); }
public EncryptPasswordCommand(IBot bot, IAccountService accountService, IUserService userService, IPasswordEncryptionService passwordEncryptionService) : base(bot) { this.accountService = accountService; this.userService = userService; this.passwordEncryptionService = passwordEncryptionService; }
public void RegistrationTwiceFailTest_ChecksThatAccountWithSameUsernameIsNotSavedAgain_VerifiesExpectingException() { IRegistrationApplicationService registrationService = (IRegistrationApplicationService)_applicationContext["RegistrationApplicationService"]; IUserRepository userRepository = (IUserRepository)_applicationContext["UserRepository"]; IPasswordEncryptionService passwordEncryption = (IPasswordEncryptionService)_applicationContext["PasswordEncryptionService"]; ManualResetEvent manualResetEvent = new ManualResetEvent(false); string activationKey = registrationService.CreateAccount(new SignupUserCommand( "*****@*****.**", "Bob", "iamnotalice", "Wonderland", TimeZone.CurrentTimeZone, "")); // Wait for the email to be sent manualResetEvent.WaitOne(5000); User receivedUser = userRepository.GetUserByUserName("Bob"); Assert.NotNull(receivedUser); Assert.AreEqual("*****@*****.**", receivedUser.Email); Assert.AreEqual("Bob", receivedUser.Username); Assert.IsTrue(passwordEncryption.VerifyPassword("iamnotalice", receivedUser.Password)); Assert.AreEqual("", receivedUser.PublicKey); Assert.AreEqual(TimeZone.CurrentTimeZone.StandardName, receivedUser.TimeZone.StandardName); Assert.AreEqual(activationKey, receivedUser.ActivationKey); registrationService.CreateAccount(new SignupUserCommand( "*****@*****.**", "Bob", "iamnotalice", "Wonderland", TimeZone.CurrentTimeZone, "")); User userByEmail = userRepository.GetUserByEmail("*****@*****.**"); Assert.IsNull(userByEmail); }
protected override void Initialize(HttpControllerContext controllerContext) { base.Initialize(controllerContext); _repository = ServiceLocator.Current.GetInstance <IUserRepository>(); _encryptionService = ServiceLocator.Current.GetInstance <IPasswordEncryptionService>(); }
public void ChangeSettingsSuccessfultTest_ChecksIfTheSettingsForUserChangeSuccessfulyAndValuesInDatabaseChange_VerifiesByReturnedValueAndDatabaseQuerying() { IUserApplicationService userApplicationService = (IUserApplicationService)_applicationContext["UserApplicationService"]; IRegistrationApplicationService registrationApplicationService = (IRegistrationApplicationService)_applicationContext["RegistrationApplicationService"]; IUserRepository userRepository = (IUserRepository)_applicationContext["UserRepository"]; IPasswordEncryptionService passwordEncryption = (IPasswordEncryptionService)_applicationContext["PasswordEncryptionService"]; string username = "******"; string email = "*****@*****.**"; string password = "******"; string activationKey = registrationApplicationService.CreateAccount(new SignupUserCommand(email, username, password, "USA", TimeZone.CurrentTimeZone, "")); User userByUserName = userRepository.GetUserByUserName(username); Assert.IsNotNull(userByUserName); Assert.AreEqual(email, userByUserName.Email); Assert.IsTrue(passwordEncryption.VerifyPassword(password, userByUserName.Password)); Assert.AreEqual(Language.English, userByUserName.Language); Assert.AreEqual(TimeZone.CurrentTimeZone.StandardName, userByUserName.TimeZone.StandardName); Assert.AreEqual(new TimeSpan(0, 0, 10, 0), userByUserName.AutoLogout); Assert.IsNull(userByUserName.ForgotPasswordCode); Assert.IsNull(userByUserName.ForgotPasswordCodeExpiration); Assert.AreEqual(0, userByUserName.ForgottenPasswordCodes.Length); bool accountActivated = userApplicationService.ActivateAccount(new ActivationCommand(activationKey, username, password)); Assert.IsTrue(accountActivated); ManualResetEvent manualResetEvent = new ManualResetEvent(false); manualResetEvent.WaitOne(6000); ILoginApplicationService loginApplicationService = (ILoginApplicationService)_applicationContext["LoginApplicationService"]; UserValidationEssentials userValidationEssentials = loginApplicationService.Login(new LoginCommand(username, password)); Assert.IsNotNull(userValidationEssentials); Assert.IsNotNull(userValidationEssentials.ApiKey); Assert.IsNotNull(userValidationEssentials.SecretKey); Assert.IsNotNull(userValidationEssentials.SessionLogoutTime); string newEmail = "*****@*****.**"; var resetPasswordReponse = userApplicationService.ChangeSettings(new ChangeSettingsCommand( userValidationEssentials.ApiKey, newEmail, "", Language.Arabic, TimeZone.CurrentTimeZone, false, 67)); Assert.IsTrue(resetPasswordReponse.ChangeSuccessful); userByUserName = userRepository.GetUserByUserName(username); Assert.IsNotNull(userByUserName); Assert.AreEqual(newEmail, userByUserName.Email); Assert.IsTrue(passwordEncryption.VerifyPassword(password, userByUserName.Password)); Assert.AreEqual(Language.Arabic, userByUserName.Language); Assert.AreEqual(TimeZone.CurrentTimeZone.StandardName, userByUserName.TimeZone.StandardName); Assert.AreEqual(new TimeSpan(0, 0, 67, 0), userByUserName.AutoLogout); Assert.IsNull(userByUserName.ForgotPasswordCode); Assert.IsNull(userByUserName.ForgotPasswordCodeExpiration); Assert.AreEqual(0, userByUserName.ForgottenPasswordCodes.Length); }
/// <summary> /// Initializes with the UserRepository and PasswordEncryption service /// </summary> public LoginApplicationService(IUserRepository userRepository, IPasswordEncryptionService passwordEncryptionService, ISecurityKeysApplicationService securityKeysApplicationService, IIdentityAccessPersistenceRepository persistenceRepository, IMfaAuthorizationService mfaAuthorizationService) { _userRepository = userRepository; _passwordEncryptionService = passwordEncryptionService; _securityKeysApplicationService = securityKeysApplicationService; _persistenceRepository = persistenceRepository; _mfaAuthorizationService = mfaAuthorizationService; }
/// <summary> /// Initializes with the User Repository /// </summary> public UserApplicationService(IUserRepository userRepository, ISecurityKeysRepository securityKeysRepository, IPasswordEncryptionService passwordEncryptionService, IIdentityAccessPersistenceRepository persistenceRepository, IEmailService emailService, IPasswordCodeGenerationService passwordCodeGenerationService) { _userRepository = userRepository; _securityKeysRepository = securityKeysRepository; _passwordEncryptionService = passwordEncryptionService; _persistenceRepository = persistenceRepository; _emailService = emailService; _passwordCodeGenerationService = passwordCodeGenerationService; }
/// <summary> /// Parameterized Constructor /// </summary> public RegistrationApplicationService(IIdentityAccessPersistenceRepository persistenceRepository, IPasswordEncryptionService passwordEncryptionService, IActivationKeyGenerationService activationKeyGenerationService , IEmailService emailService, ITierRepository tierRepository, IUserRepository userRepository) { _persistenceRepository = persistenceRepository; _passwordEncryptionService = passwordEncryptionService; _activationKeyGenerationService = activationKeyGenerationService; _emailService = emailService; _tierRepository = tierRepository; _userRepository = userRepository; }
public CancelCommand(IBot bot, IUserService userService, IAccountAssemblingService accountAssemblingService, IAccountUpdatingService accountUpdatingService, IPasswordDecryptionService passwordDecryptionService, IPasswordEncryptionService passwordEncryptionService) : base(bot) { this.userService = userService; this.accountAssemblingService = accountAssemblingService; this.accountUpdatingService = accountUpdatingService; this.passwordDecryptionService = passwordDecryptionService; this.passwordEncryptionService = passwordEncryptionService; }
public void ApplyForTier1() { IUserApplicationService userApplicationService = (IUserApplicationService)_applicationContext["UserApplicationService"]; IRegistrationApplicationService registrationApplicationService = (IRegistrationApplicationService)_applicationContext["RegistrationApplicationService"]; IUserRepository userRepository = (IUserRepository)_applicationContext["UserRepository"]; IPasswordEncryptionService passwordEncryption = (IPasswordEncryptionService)_applicationContext["PasswordEncryptionService"]; string username = "******"; string email = "*****@*****.**"; registrationApplicationService.CreateAccount(new SignupUserCommand(email, username, "burnitdown", "USA", TimeZone.CurrentTimeZone, "")); IUserTierLevelApplicationService tierLevelApplicationService = _applicationContext["UserTierLevelApplicationService"] as IUserTierLevelApplicationService; tierLevelApplicationService.ApplyForTier1Verification(new VerifyTier1Command("1234", "123", "123", DateTime.Today)); //TODO: have to modify the test and test case name. }
public void RegisterAccountFailTest_ChecksIfTheUserCannotCreateAccountAgainWIthSameEmail_VerifiesReturnedValueAndQueriesDatabase() { RegistrationController registrationController = (RegistrationController)_applicationContext["RegistrationController"]; string username = "******"; string email = "*****@*****.**"; string password = "******"; IHttpActionResult httpActionResult = registrationController.Register(new SignUpParam(email, username, password, "Pakistan", TimeZone.CurrentTimeZone, "")); OkNegotiatedContentResult <string> okResponseMessage = (OkNegotiatedContentResult <string>)httpActionResult; string activationKey = okResponseMessage.Content; Assert.IsNotNullOrEmpty(activationKey); IUserRepository userRepository = (IUserRepository)_applicationContext["UserRepository"]; IPasswordEncryptionService passwordEncryptionService = (IPasswordEncryptionService)_applicationContext["PasswordEncryptionService"]; User userByUserName = userRepository.GetUserByUserName(username); Assert.IsNotNull(userByUserName); Assert.IsFalse(userByUserName.IsActivationKeyUsed.Value); Assert.AreEqual(username, userByUserName.Username); Assert.AreEqual(email, userByUserName.Email); string username2 = "newUser"; string password2 = "newPassword"; httpActionResult = registrationController.Register(new SignUpParam(email, username2, password2, "Pakistan", TimeZone.CurrentTimeZone, "")); BadRequestErrorMessageResult badRequest = (BadRequestErrorMessageResult)httpActionResult; Assert.IsNotNull(badRequest); // Verify that the old credentials are still the same userByUserName = userRepository.GetUserByEmail(email); Assert.IsNotNull(userByUserName); Assert.IsFalse(userByUserName.IsActivationKeyUsed.Value); Assert.AreEqual(username, userByUserName.Username); Assert.AreEqual(email, userByUserName.Email); Assert.IsTrue(passwordEncryptionService.VerifyPassword(password, userByUserName.Password)); Assert.AreNotEqual(username2, userByUserName.Username); Assert.IsFalse(passwordEncryptionService.VerifyPassword(password2, userByUserName.Password)); }
public void ResetPasswordFailTest_TestsIfPasswordIsNotChangedIfForgotPasswordReqeusthasNotBeenMade_VerifiesByReturnedValueAndDatabaseQuerying() { IUserApplicationService userApplicationService = (IUserApplicationService)_applicationContext["UserApplicationService"]; IRegistrationApplicationService registrationApplicationService = (IRegistrationApplicationService)_applicationContext["RegistrationApplicationService"]; IUserRepository userRepository = (IUserRepository)_applicationContext["UserRepository"]; IPasswordEncryptionService passwordEncryption = (IPasswordEncryptionService)_applicationContext["PasswordEncryptionService"]; string username = "******"; string email = "*****@*****.**"; string password = "******"; string activationKey = registrationApplicationService.CreateAccount(new SignupUserCommand(email, username, password, "USA", TimeZone.CurrentTimeZone, "")); bool accountActivated = userApplicationService.ActivateAccount(new ActivationCommand(activationKey, username, "burnitdown")); Assert.IsTrue(accountActivated); ManualResetEvent manualResetEvent = new ManualResetEvent(false); manualResetEvent.WaitOne(6000); User userByUserName = userRepository.GetUserByUserName(username); Assert.IsNotNull(userByUserName); Assert.IsTrue(passwordEncryption.VerifyPassword(password, userByUserName.Password)); Assert.IsNull(userByUserName.ForgotPasswordCode); Assert.IsNull(userByUserName.ForgotPasswordCodeExpiration); Assert.AreEqual(0, userByUserName.ForgottenPasswordCodes.Length); string newPassword = "******"; bool resetPasswordReponse = userApplicationService.ResetPasswordByEmailLink(new ResetPasswordCommand(username, newPassword, "")); Assert.IsTrue(resetPasswordReponse); userByUserName = userRepository.GetUserByUserName(username); Assert.IsNotNull(userByUserName); Assert.IsTrue(passwordEncryption.VerifyPassword(password, userByUserName.Password)); Assert.IsNull(userByUserName.ForgotPasswordCode); Assert.IsNull(userByUserName.ForgotPasswordCodeExpiration); Assert.AreEqual(0, userByUserName.ForgottenPasswordCodes.Length); }
public void LoginSuccessfulTest_TestsifTheLoginisSuccessfulAfterProvidingValidCredentials_VerifiesByGettingUserFromRepositoryAndCheckingCredentials() { ILoginApplicationService loginApplicationService = (ILoginApplicationService)_applicationContext["LoginApplicationService"]; Assert.IsNotNull(loginApplicationService); IRegistrationApplicationService registrationService = (IRegistrationApplicationService)_applicationContext["RegistrationApplicationService"]; IUserRepository userRepository = (IUserRepository)_applicationContext["UserRepository"]; IPasswordEncryptionService passwordEncryptionService = (IPasswordEncryptionService)_applicationContext["PasswordEncryptionService"]; string username = "******"; string email = "*****@*****.**"; string password = "******"; string activationKey = registrationService.CreateAccount(new SignupUserCommand( email, username, password, "Wonderland", TimeZone.CurrentTimeZone, "")); Assert.IsNotNull(activationKey); IUserApplicationService userApplicationService = (IUserApplicationService)_applicationContext["UserApplicationService"]; bool accountActivated = userApplicationService.ActivateAccount(new ActivationCommand(activationKey, "Bob", "alice")); Assert.IsTrue(accountActivated); UserValidationEssentials userValidationEssentials = loginApplicationService.Login(new LoginCommand("Bob", "alice")); Assert.IsNotNull(userValidationEssentials); Assert.IsNotNull(userValidationEssentials.ApiKey); Assert.IsNotNull(userValidationEssentials.SecretKey); Assert.IsNotNull(userValidationEssentials.SessionLogoutTime); User user = userRepository.GetUserByUserName(username); Assert.IsNotNull(user); Assert.AreEqual(user.Email, email); Assert.AreEqual(user.ActivationKey, activationKey); Assert.AreEqual(userValidationEssentials.SessionLogoutTime, user.AutoLogout); Assert.IsTrue(passwordEncryptionService.VerifyPassword(password, user.Password)); }
public AccountService(IUnitOfWork unitOfWork, IPasswordEncryptionService passwordEncryptionService, IMapper mapper) { this.unitOfWork = unitOfWork; this.passwordEncryptionService = passwordEncryptionService; this.mapper = mapper; }
public UserAccountsManager(IDatabaseManager databaseManager) { _passwordEncryptor = new PasswordEncryptionService(); _userAccountsContext = new UserAccountsContext(databaseManager); }
public LoginRepository(IPasswordEncryptionService passwordEncryptionService) { _passwordEncryptionService = passwordEncryptionService; }