rbytes_consulta_cep 0.1.0

Consulta de CEP brasileiro com multi-provedores (ViaCEP, BrasilAPI, etc). Inclui fallback automático, timeout configurável e formatação de endereços.
Documentation
/* use rbytes_consulta_cep::{consultar, ProviderType};

#[tokio::test]
async fn test_consultar_opencep() {
    let result = consultar(ProviderType::OpenCep, "01001000").await;
    assert!(result.is_ok());
}

#[tokio::test]
async fn test_consultar_viacep() {
    let result = consultar(ProviderType::ViaCep, "01001000").await;
    assert!(result.is_ok());
}

#[tokio::test]
async fn test_consultar_apicep() {
       let result = consultar(ProviderType::ApiCep, "01001000").await;
       assert!(result.is_ok());
 }

 #[tokio::test]
async fn test_consultar_brasilcep() {
       let result = consultar(ProviderType::BrasilApi, "01001000").await;
       assert!(result.is_ok());
 }
 */


 use rbytes_consulta_cep::{consultar, ProviderType, models::Endereco};

 #[tokio::test]
 async fn test_consultar_opencep() {
     let result = consultar(ProviderType::OpenCep, "01001000").await;
     
     assert!(result.is_ok());
     let endereco = result.unwrap();
       
     assert!(endereco.logradouro.unwrap().contains(""));
     assert_eq!(endereco.uf.to_lowercase(), "sp");
     assert!(endereco.bairro.unwrap().contains(""));
 }
 
 #[tokio::test]
 async fn test_consultar_viacep() {
     let result = consultar(ProviderType::ViaCep, "01001000").await;
     
     assert!(result.is_ok());
     let endereco = result.unwrap();
     
     assert_eq!(endereco.logradouro.unwrap(), "Praça da Sé");
     assert_eq!(endereco.bairro.unwrap(), "");
     assert_eq!(endereco.localidade.to_string(), "São Paulo");
 }
 
 #[tokio::test]
 async fn test_consultar_apicep() {
     let result = consultar(ProviderType::ApiCep, "01001000").await;
     
     assert!(result.is_ok());
     let endereco = result.unwrap();
     
    assert_eq!(endereco.bairro.unwrap(), "");
    assert_eq!(endereco.localidade.to_string(), "São Paulo");
 }
 
 #[tokio::test]
 async fn test_consultar_brasilapi() {
     let result = consultar(ProviderType::BrasilApi, "01001000").await;
     
     assert!(result.is_ok());
     let endereco = result.unwrap();
     
     assert_eq!(endereco.logradouro.unwrap(), "Praça da Sé");
     assert_eq!(endereco.bairro.unwrap(), "");
     assert_eq!(endereco.localidade.to_string(), "São Paulo");
 }
 
 #[tokio::test]
 async fn test_cep_invalido() {
     let result = consultar(ProviderType::ViaCep, "00000000").await;
     assert!(result.is_err());
 }
 
 #[tokio::test]
 async fn test_formato_cep_invalido() {
     let result = consultar(ProviderType::ViaCep, "ABC123").await;
     assert!(result.is_err());
 }
 
 #[tokio::test]
 async fn test_todos_provedores_falham() {
     // todo: falta implementar
 }