diff options
Diffstat (limited to 'src/test/java/is/cep/cepis/ModelTest.java')
| -rw-r--r-- | src/test/java/is/cep/cepis/ModelTest.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/java/is/cep/cepis/ModelTest.java b/src/test/java/is/cep/cepis/ModelTest.java index 26deb5a..c8a3269 100644 --- a/src/test/java/is/cep/cepis/ModelTest.java +++ b/src/test/java/is/cep/cepis/ModelTest.java @@ -3,6 +3,7 @@ package is.cep.cepis; import static is.cep.cepis.Assertions.assertEquals; import static is.cep.cepis.Assertions.assertFalse; import static is.cep.cepis.Assertions.assertNull; +import static is.cep.cepis.Assertions.assertThrows; import static is.cep.cepis.Assertions.assertTrue; import java.util.LinkedHashMap; @@ -68,6 +69,32 @@ public final class ModelTest { assertFalse(new Geo(-23.5, -46.6, 22000, "localidade").isPrecise(), "a municipality"); } + /** A band block without a municipality is not a band. */ + public void testFaixaNeedsALocalidade() { + assertThrows(IllegalArgumentException.class, + () -> Faixa.fromJson(Map.of("uf", "RJ", "ceps", 118)), + "the municipality is the whole point of the block"); + } + + /** A partial band keeps what it has instead of being dropped. */ + public void testFaixaToleratesAPartialBlock() { + Faixa faixa = Faixa.fromJson(Map.of("localidade", "Areal")); + assertEquals("", faixa.uf(), "uf"); + assertEquals("", faixa.cepIni(), "cepIni"); + assertEquals(0L, faixa.ceps(), "ceps"); + assertEquals("Areal", faixa.describe(), "describe without a state"); + } + + /** The bounds are strings, so a CEP starting in zero survives. */ + public void testFaixaBoundsKeepTheirLeadingZeros() { + Faixa faixa = Faixa.fromJson(Map.of("localidade", "São Paulo", "uf", "SP", + "cep_ini", "01001001", "cep_fim", "05999999", "ceps", 3421)); + assertEquals("01001001", faixa.cepIni(), "cepIni"); + assertEquals("05999999", faixa.cepFim(), "cepFim"); + assertEquals(3421L, faixa.ceps(), "the interval is sparse, and this is its census"); + assertEquals("São Paulo/SP", faixa.describe(), "describe"); + } + /** Health tolerates a partial body rather than failing the check. */ public void testHealthDefaults() { Health health = Health.fromJson(Map.of("status", "ok")); |