예제 #1
0
 private static void GaranteConteudoDaRequisicaoPorCepSemErroOuLancaException(IViaCepConteudo conteudo)
 {
     if (conteudo.PossuiErro)
     {
         throw new CepInexistenteException();
     }
 }
예제 #2
0
        private string ObterEnderecoPorCepComoString(Cep cep, ViaCepFormatoRequisicao formatoRequisicao)
        {
            IViaCepRequisicaoPor <Cep> requisicao = NovaRequisicaoPorCep(cep, formatoRequisicao);
            IViaCepResposta            resposta   = _cliente.ObterResposta(requisicao.ToUri);

            GaranteCodigoDeSucessoOuLancaException(resposta);

            IViaCepConteudo conteudo = resposta.ObterConteudo();

            GaranteConteudoDaRequisicaoPorCepSemErroOuLancaException(conteudo);

            return(conteudo.LerComoString());
        }
예제 #3
0
        /// <inheritdoc />
        public XDocument ObterEnderecoComoXml(Cep cep)
        {
            IViaCepRequisicaoPor <Cep> requisicao = _requisicaoPorCepFactory.NovaRequisicaoXml(cep);
            IViaCepResposta            resposta   = _cliente.ObterResposta(requisicao.ToUri);

            GaranteCodigoDeSucessoOuLancaException(resposta);

            IViaCepConteudo conteudo = resposta.ObterConteudo();

            GaranteConteudoDaRequisicaoPorCepSemErroOuLancaException(conteudo);

            return(conteudo.LerComoXml());
        }
예제 #4
0
        private Task <string> ObterEnderecoPorCepComoStringAsync(Cep cep, ViaCepFormatoRequisicao formatoRequisicao)
        => Task.Run(async() =>
        {
            IViaCepRequisicaoPor <Cep> requisicao = NovaRequisicaoPorCep(cep, formatoRequisicao);
            IViaCepResposta resposta = await _cliente.ObterRespostaAsync(requisicao.ToUri);

            GaranteCodigoDeSucessoOuLancaException(resposta);

            IViaCepConteudo conteudo = resposta.ObterConteudo();

            GaranteConteudoDaRequisicaoPorCepSemErroOuLancaException(conteudo);

            return(conteudo.LerComoString());
        });
예제 #5
0
        public void DeveSerLidoComoXml()
        {
            _conteudo = _mockRepository.StrictMock <IViaCepConteudo>();
            _conteudo.Expect(m => m.PodeSerLidoComoXml).Return(true).Repeat.Once();
            _conteudo.Expect(m => m.LerComoString()).Return(XmlContent).Repeat.Once();
            _conteudo.Expect(m => m.LerComoXml()).Return(XDocument.Parse(XmlContent)).Repeat.Once();
            _conteudo.Expect(m => m.PossuiErro).Return(true).Repeat.Once();

            _conteudo.Replay();

            if (!_conteudo.PodeSerLidoComoXml)
            {
                throw new AssertionException("O conteudo não pode ser lido como xml.");
            }

            Assert.AreEqual(XmlContent, _conteudo.LerComoString());

            Assert.DoesNotThrow(() => _conteudo.LerComoXml());
        }
예제 #6
0
 public void SetUp()
 {
     _mockRepository = new MockRepository();
     _conteudo       = _mockRepository.StrictMock <IViaCepConteudo>();
 }