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("Sé"));
assert_eq!(endereco.uf.to_lowercase(), "sp");
assert!(endereco.bairro.unwrap().contains("Sé"));
}
#[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(), "Sé");
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(), "Sé");
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(), "Sé");
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() {
}