summaryrefslogtreecommitdiffstats
path: root/tests/Cepis.Tests/Fixtures.cs
blob: a7e69b3bb99825c872d793ff6b16b87f38536752 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
namespace Cepis.Tests;

/// <summary>Bodies the API really returns, copied from it.</summary>
public static class Fixtures
{
    /// <summary>A CEP with a street-precision coordinate.</summary>
    public const string SeAddress = """
        {"cep":"01001000","logradouro":"Praça da Sé","complemento":"lado ímpar",
         "unidade":"","bairro":"Sé","localidade":"São Paulo","uf":"SP",
         "estado":"São Paulo","regiao":"Sudeste","ibge":"3550308","gia":"1004",
         "ddd":"11","siafi":"7107",
         "geo":{"lat":-23.567202,"lon":-46.649659,"raio_m":1084,"precisao":"logradouro"}}
        """;

    /// <summary>A CEP the database has no coordinate for.</summary>
    public const string NoGeoAddress = """
        {"cep":"20040020","logradouro":"Avenida Rio Branco","complemento":"",
         "unidade":"","bairro":"Centro","localidade":"Rio de Janeiro","uf":"RJ",
         "estado":"Rio de Janeiro","regiao":"Sudeste","ibge":"3304557","gia":"",
         "ddd":"21","siafi":"6001"}
        """;

    /// <summary>A coordinate whose numbers cannot be read.</summary>
    public const string BrokenGeoAddress = """
        {"cep":"01001000","logradouro":"Praça da Sé","complemento":"","unidade":"",
         "bairro":"Sé","localidade":"São Paulo","uf":"SP","estado":"São Paulo",
         "regiao":"Sudeste","ibge":"3550308","gia":"1004","ddd":"11","siafi":"7107",
         "geo":{"lat":"nowhere","precisao":"logradouro"}}
        """;

    /// <summary>A response carrying a field this library does not model.</summary>
    public const string FutureAddress = """
        {"cep":"01001000","logradouro":"Praça da Sé","complemento":"","unidade":"",
         "bairro":"Sé","localidade":"São Paulo","uf":"SP","estado":"São Paulo",
         "regiao":"Sudeste","ibge":"3550308","gia":"1004","ddd":"11","siafi":"7107",
         "cep_pai":"01000000"}
        """;

    /// <summary>The 404 body.</summary>
    public const string NotFound =
        """{"erro":"cep_nao_encontrado","mensagem":"CEP não existe na base do DNE"}""";

    /// <summary>
    /// The 404 body for a CEP inside a municipality's range. The CEP that draws
    /// it is 25845000 — the DNE's own start for Areal, and a CEP that was never
    /// issued.
    /// </summary>
    public const string NotFoundWithFaixa = """
        {"erro":"cep_nao_encontrado","mensagem":"CEP não existe na base do DNE",
         "faixa":{"localidade":"Areal","uf":"RJ","estado":"Rio de Janeiro",
                  "regiao":"Sudeste","ibge":"3300225","cep_ini":"25845001",
                  "cep_fim":"25849899","ceps":118}}
        """;

    /// <summary>A 404 whose range block is not even an object.</summary>
    public const string NotFoundBrokenFaixa = """
        {"erro":"cep_nao_encontrado","mensagem":"CEP não existe na base do DNE",
         "faixa":"Areal"}
        """;

    /// <summary>A 404 whose range block names no municipality.</summary>
    public const string NotFoundNamelessFaixa = """
        {"erro":"cep_nao_encontrado","mensagem":"CEP não existe na base do DNE",
         "faixa":{"uf":"RJ","cep_ini":"25845001","cep_fim":"25849899","ceps":118}}
        """;

    /// <summary>The 400 body.</summary>
    public const string InvalidCep =
        """{"erro":"cep_invalido","mensagem":"CEP deve ter 8 dígitos"}""";

    /// <summary>The 500 body.</summary>
    public const string InternalError = """{"erro":"interno","mensagem":"falha interna"}""";

    /// <summary>A healthy API.</summary>
    public const string Healthy = """
        {"status":"ok","dne":"26071","ceps":1596168,"geo":894489,
         "base_gerada_em":"2026-07-24T03:48:28Z"}
        """;

    /// <summary>The batch header row.</summary>
    public const string CsvHeader =
        "cep,logradouro,complemento,unidade,bairro,localidade,uf,estado,regiao,ibge,gia,ddd,siafi";

    /// <summary>Three CEPs, the middle one absent from the database.</summary>
    public const string CsvBatch = CsvHeader + "\n"
        + "01001000,Praça da Sé,lado ímpar,,Sé,São Paulo,SP,São Paulo,Sudeste,3550308,1004,11,7107\n"
        + "99999999,,,,,,,,,,,,\n"
        + "20040020,Avenida Rio Branco,,,Centro,Rio de Janeiro,RJ,Rio de Janeiro,Sudeste,3304557,,21,6001\n";

    /// <summary>One data row for a CEP, in the batch's column order.</summary>
    public static string CsvRow(string cep) =>
        $"{cep},Rua Teste,,,Centro,Cidade,SP,São Paulo,Sudeste,3550308,,11,7107";
}