/// <summary> /// The GetSecurityQuestions method. /// Gets security questions pertaining to a user which includes validations. /// <para> /// @author: Jennifer Nguyen /// @updated: 04/25/2018 /// </para> /// </summary> /// <returns>A ResponseDto which includes the ResetPasswordDto</returns> public ResponseDto <ResetPasswordDto> GetSecurityQuestions() { var resetPasswordPreLogicValidationStrategy = new ResetPasswordPreLogicValidationStrategy(_resetPasswordDto, ResetPasswordValidationTypes.GetSecurityQuestionsValidation); // Validate data transfer object var result = resetPasswordPreLogicValidationStrategy.ExecuteStrategy(); if (result.Error != null) { return(new ResponseDto <ResetPasswordDto> { Data = null, Error = result.Error }); } // Instantiatiate new Collection of SecurityQuestionDtos in ResetPasswordDto _resetPasswordDto.SecurityQuestionDtos = new Collection <SecurityQuestionDto>(); // Get the security questions from the database using (var userGateway = new UserGateway()) { var gatewayResult = userGateway.GetSecurityQuestions(_resetPasswordDto.Username); if (gatewayResult.Error != null) { return(new ResponseDto <ResetPasswordDto>() { Data = null, Error = GeneralErrorMessages.GENERAL_ERROR }); } // Add SecurityQuestion to a list of SecurityQuestionDtos foreach (var securityQuestion in gatewayResult.Data) { var securityQuestionDto = new SecurityQuestionDto(securityQuestion.Question); _resetPasswordDto.SecurityQuestionDtos.Add(securityQuestionDto); } } return(new ResponseDto <ResetPasswordDto>() { Data = _resetPasswordDto }); }
public void Should_PassValidation_When_AllRulesPass() { // Arrange var securityQuestionDtoValidator = new SecurityQuestionDtoValidator(); var securityQuestionDto = new SecurityQuestionDto() { Question = 1, Answer = "answer" }; // Act var result = securityQuestionDtoValidator.Validate(securityQuestionDto, ruleSet: "CreateUser"); var isValid = result.IsValid; // Assert isValid.Should().Be(true); }
public void Should_FailValidationWithMessage_When_AnswerIsEmpty() { // Arrange var securityQuestionDtoValidator = new SecurityQuestionDtoValidator(); var securityQuestionDto = new SecurityQuestionDto() { Question = 1, Answer = "" }; // Act var result = securityQuestionDtoValidator.Validate(securityQuestionDto, ruleSet: "CreateUser"); var isValid = result.IsValid; var errors = result.Errors; // Assert isValid.Should().Be(false); errors.Count.Should().Be(1); errors[0].ToString().Should().Be("Must answer 3 security questions."); }
public void Should_FailValidationWithMessage_When_QuestionIsEmpty() { // Arrange var securityQuestionDtoValidator = new SecurityQuestionDtoValidator(); var securityQuestionDto = new SecurityQuestionDto() { Answer = "answer" }; // Act var result = securityQuestionDtoValidator.Validate(securityQuestionDto, ruleSet: "CreateUser"); var isValid = result.IsValid; var errors = result.Errors; // Assert isValid.Should().Be(false); errors.Count.Should().Be(2); errors[0].ToString().Should().Be("Must answer 3 security questions."); errors[1].ToString().Should().Be("Something went wrong. Please try again later."); }