public void UpdateRequestIsMade_InvalidPassword_ValidationShouldFail(string inputPassword)
        {
            var validatorService = new PasswordValidator(CreateDefaultValidationRules());
            var request          = new CredentialsUpdateRequest
            {
                CustomerId = "customerId",
                Login      = "******",
                Password   = inputPassword
            };

            var validator = new UpdateRequestCredentialsValidator(validatorService);
            var result    = validator.Validate(request);

            Assert.False(result.IsValid);
        }
        public void UpdateRequestIsMade_CorrectCredentials_ValidationShouldFail()
        {
            var validatorService = new PasswordValidator(CreateDefaultValidationRules());
            var request          = new CredentialsUpdateRequest
            {
                CustomerId = "mockId",
                Login      = "******",
                Password   = "******"
            };

            var validator = new UpdateRequestCredentialsValidator(validatorService);
            var result    = validator.Validate(request);

            Assert.True(result.IsValid);
        }
        public void UpdateRequestIsMade_InvalidEmail_ValidationShouldFail()
        {
            var validatorService = new PasswordValidator(CreateDefaultValidationRules());
            var request          = new CredentialsUpdateRequest()
            {
                CustomerId = "mockId",
                Login      = "******",
                Password   = "******"
            };

            var validator = new UpdateRequestCredentialsValidator(validatorService);
            var result    = validator.Validate(request);

            Assert.False(result.IsValid);
        }
        public async Task <CredentialsUpdateResponse> ChangePasswordAsync([FromBody] CredentialsUpdateRequest request)
        {
            var credentials = await _customerCredentialsService.GetAsync(request.Login);

            if (credentials == null)
            {
                _log.Info("Customer credentials do not exist", request.Login.SanitizeEmail());

                return(new CredentialsUpdateResponse {
                    Error = CredentialsError.LoginNotFound
                });
            }

            await _customerCredentialsService.UpdatePasswordAsync(
                request.Login,
                request.Password);

            return(new CredentialsUpdateResponse());
        }