public void WhenTheNumberIsRequiredButAnswerIsEmpty__ThenCorrectErrorMessageIsReturned(string email) { // arrange var fx = new Fixture(); var answerItem = AnswerBuilder.Build.WithDefaultValue(email).AnAnswer(); var properties = new SortCodeValidationProperties() { IsRequired = true, IsRequiredMessage = fx.Create <string>(), InvalidFormatMessage = fx.Create <string>() }; InFlightQuestion = new InFlightQuestion { Answer = answerItem }; TestService = new SortCodeValidation(properties); // act var result = Act(); // assert Assert.False(result.IsValid); Assert.Equal(properties.IsRequiredMessage, result.Errors.First().ErrorMessage); }
public void WhenTheEmailIsValid__ThenNoErrorsAreReturned() { // arrange var answerItem = AnswerBuilder.Build.WithDefaultValue("*****@*****.**").AnAnswer(); TestService = new EmailValidation(new EmailValidationProperties()); InFlightQuestion = new InFlightQuestion { Answer = answerItem }; // act var result = Act(); // assert Assert.True(result.IsValid); Assert.Empty(result.Errors); }
public void WhenTheNumberIsValid__ThenNoErrorsAreReturned(string number) { // arrange var answerItem = AnswerBuilder.Build.WithDefaultValue(number).AnAnswer(); TestService = new TelephoneValidation(new TelephoneValidationProperties()); InFlightQuestion = new InFlightQuestion { Answer = answerItem }; // act var result = Act(); // assert Assert.True(result.IsValid); Assert.Empty(result.Errors); }
public void WhenTheEmailIsNotRequiredAndAnswerEmpty__ThenNoErrorsAreReturned() { // arrange TestService = new EmailValidation(new EmailValidationProperties { IsRequired = false }); InFlightQuestion = new InFlightQuestion { Answer = new Answer() }; // act var result = Act(); // assert Assert.True(result.IsValid); Assert.Empty(result.Errors); }
public void WhenTheEmailIsRequiredButAnswerIsEmpty__ThenCorrectErrorMessageIsReturned(string email) { // arrange var answerItem = AnswerBuilder.Build.WithDefaultValue(email).AnAnswer(); var properties = new EmailValidationProperties(); TestService = new EmailValidation(properties); InFlightQuestion = new InFlightQuestion { Answer = answerItem }; // act var result = Act(); // assert Assert.False(result.IsValid); Assert.Equal(properties.MissingEmailValidationMessage, result.Errors.First().ErrorMessage); }
public void WhenTheFieldIsSmallerThanTheMinLength__ThenTheCorrectErrorMessageIsReturned(string input) { // arrange var answerItem = AnswerBuilder.Build.WithDefaultValue(input).AnAnswer(); var properties = new TextInputValidationProperties { MinLength = 3, MinLengthMessage = Fx.Create <string>() }; InFlightQuestion = new InFlightQuestion { Answer = answerItem }; // act TestService = new TextInputValidation(properties); var result = Act(); // assert Assert.False(result.IsValid); Assert.Contains(properties.MinLengthMessage, result.Errors.Select(x => x.ErrorMessage)); }
public void WhenTheFieldIsNotRequired__ThenNoErrorIsReturned(string input) { // arrange var answerItem = AnswerBuilder.Build.WithDefaultValue(input).AnAnswer(); var properties = new TextInputValidationProperties { IsRequired = false }; InFlightQuestion = new InFlightQuestion { Answer = answerItem }; // act TestService = new TextInputValidation(properties); var result = Act(); // assert Assert.True(result.IsValid); Assert.Empty(result.Errors); }
public void WhenTheValidationRequiresANumber__AndTheInputIsNotANumber__ThenCorrectErrorMessageIsReturned(string input) { // arrange var answerItem = AnswerBuilder.Build.WithDefaultValue(input).AnAnswer(); var properties = new TextInputValidationProperties { IsNumber = true, IsNumberMessage = Fx.Create <string>() }; InFlightQuestion = new InFlightQuestion { Answer = answerItem }; // act TestService = new TextInputValidation(properties); var result = Act(); // assert Assert.False(result.IsValid); Assert.Contains(properties.IsNumberMessage, result.Errors.Select(x => x.ErrorMessage)); }
public void WhenTheEmailIsLongerThanTheMaxLimit__ThenCorrectErrorMessageIsReturned() { // arrange var maxLength = 100; var properties = new EmailValidationProperties { MaxLength = maxLength }; var answerItem = AnswerBuilder.Build.WithDefaultValue(new string('a', maxLength + 1) + "@example.com").AnAnswer(); TestService = new EmailValidation(properties); InFlightQuestion = new InFlightQuestion { Answer = answerItem }; // act var result = Act(); // assert Assert.False(result.IsValid); Assert.Equal($"Email must be {maxLength} characters or fewer", result.Errors.First().ErrorMessage); }