public void WhenTheNumberIsRequiredButAnswerIsEmpty__ThenCorrectErrorMessageIsReturned(string email)
        {
            // arrange
            var fx         = new Fixture();
            var answerItem = AnswerBuilder.Build.WithDefaultValue(email).AnAnswer();

            var properties = new TelephoneValidationProperties
            {
                IsRequired           = true,
                IsRequiredMessage    = fx.Create <string>(),
                InvalidFormatMessage = fx.Create <string>()
            };

            TestService      = new TelephoneValidation(properties);
            InFlightQuestion = new InFlightQuestion
            {
                Answer = answerItem
            };

            // act
            var result = Act();

            // assert
            Assert.False(result.IsValid);
            Assert.Equal(properties.IsRequiredMessage, result.Errors.First().ErrorMessage);
        }
        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 WhenTheNumberIsNotRequiredAndAnswerEmpty__ThenNoErrorsAreReturned()
        {
            // arrange
            TestService = new TelephoneValidation(new TelephoneValidationProperties
            {
                IsRequired = false
            });
            InFlightQuestion = new InFlightQuestion
            {
                Answer = new Answer()
            };

            // act
            var result = Act();

            // assert
            Assert.True(result.IsValid);
            Assert.Empty(result.Errors);
        }