예제 #1
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());
        }
예제 #2
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());
        }