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); }
public IHttpActionResult ChangeSettings([FromBody] ChangeSettingsParams changeSettingsParams) { try { if (log.IsDebugEnabled) { log.Debug("ChangeSettings Call Recevied, parameters:" + changeSettingsParams); } ; return(Ok(_userApplicationService.ChangeSettings(new ChangeSettingsCommand(HeaderParamUtility.GetApikey(Request), changeSettingsParams.Email, changeSettingsParams.PgpPublicKey, changeSettingsParams.Language, changeSettingsParams.TimeZone, changeSettingsParams.IsDefaultAutoLogout, changeSettingsParams.AutoLogoutMinutes)))); } catch (InstanceNotFoundException exception) { if (log.IsErrorEnabled) { log.Error("ChangeSettings Call Exception ", exception); } return(BadRequest(exception.Message)); } catch (NullReferenceException exception) { if (log.IsErrorEnabled) { log.Error("ChangeSettings Call Exception ", exception); } return(BadRequest(exception.Message)); } catch (Exception exception) { if (log.IsErrorEnabled) { log.Error("ChangeSettings Call Exception ", exception); } return(InternalServerError()); } }