Esempio n. 1
0
        public void TestInvalidCep()
        {
            Cep cep = new Cep("234-5");

            cep.IsValid().Should().BeFalse();

            cep.GetValidationErrors().Should().NotBeEmpty();
            cep.GetValidationErrors().Should().NotContain(err => err.PropertyName == nameof(Cep.Value) && err.ErrorCode == ErrorCodes.CepRequired);
            cep.GetValidationErrors().Should().Contain(err => err.PropertyName == nameof(Cep.Value) && err.ErrorCode == ErrorCodes.CepInvalidPattern);

            AssertInvalidCepComponents(cep);
        }
Esempio n. 2
0
        /// <summary>
        /// Get cep details information from cep
        /// </summary>
        public Task <ResponseMessage <CepDetails> > SendRequestAsync(Cep cep)
        {
            if (cep == null)
            {
                return(Task.FromResult(new ResponseMessage <CepDetails>(ErrorCodes.CepRequired, "Cep is required")));
            }

            cep.Validate();
            if (cep.IsInvalid())
            {
                return(Task.FromResult(new ResponseMessage <CepDetails>(cep.GetValidationErrors().First())));
            }

            return(SendRequestAndParseResultAsync(cep));
        }
        public async Task SendRequestCep_WhenCepIsInvalid_MustReturnValidationError(string cep)
        {
            //Given
            IViaCepClient viaCepClient = CreateViaCepClientInstance();

            Cep invalidCep = new Cep(cep);

            invalidCep.Validate();

            IError error = invalidCep.GetValidationErrors().First();

            //When
            ResponseMessage <CepDetails> response = await viaCepClient.SendRequestAsync(invalidCep);

            //Then
            response.Should().NotBeNull();
            response.IsSuccessfulResponse.Should().BeFalse();
            response.Content.Should().BeNull();

            response.ErrorCode.Should().Be(error.ErrorCode);
            response.ErrorMessage.Should().Be(error.ErrorMessage);
            response.ErrorPropertyName.Should().Be(error.PropertyName);
        }