use crate::base::endereco::Endereco;
use crate::Error;
#[test]
fn parse_endereco_emitente() -> Result<(), Error> {
let xml = "<Endereco>
<xLgr>Rua dos Testes</xLgr>
<nro>1020</nro>
<xCpl>Sala 1</xCpl>
<xBairro>Centro</xBairro>
<cMun>4319901</cMun>
<xMun>SAPIRANGA</xMun>
<UF>RS</UF>
<CEP>93800000</CEP>
<cPais>1058</cPais>
<xPais>BRASIL</xPais>
<fone>5190909090</fone>
</Endereco>";
let endereco = xml.parse::<Endereco>()?;
assert_eq!("Rua dos Testes", endereco.logradouro);
assert_eq!("1020", endereco.numero);
assert_eq!(Some("Sala 1".to_string()), endereco.complemento);
assert_eq!("Centro", endereco.bairro);
assert_eq!(4319901, endereco.codigo_municipio);
assert_eq!("SAPIRANGA", endereco.nome_municipio);
assert_eq!("RS", endereco.sigla_uf);
assert_eq!("93800000", endereco.cep);
assert_eq!(Some("5190909090".to_string()), endereco.telefone);
Ok(())
}
#[test]
fn parse_endereco_sem_complemento() -> Result<(), Error> {
let xml = "<Endereco>
<xLgr>Av. Teste</xLgr>
<nro>2040</nro>
<xBairro>Centro</xBairro>
<cMun>3550308</cMun>
<xMun>SAO PAULO</xMun>
<UF>SP</UF>
<CEP>04207040</CEP>
<cPais>1058</cPais>
<xPais>BRASIL</xPais>
</Endereco>";
let endereco = xml.parse::<Endereco>()?;
assert_eq!("Av. Teste", endereco.logradouro);
assert_eq!("2040", endereco.numero);
assert_eq!(None, endereco.complemento);
assert_eq!("Centro", endereco.bairro);
assert_eq!(3550308, endereco.codigo_municipio);
assert_eq!("SAO PAULO", endereco.nome_municipio);
assert_eq!("SP", endereco.sigla_uf);
assert_eq!("04207040", endereco.cep);
Ok(())
}