summaryrefslogtreecommitdiffstats
path: root/src/test/java/is/cep/cepis/ModelTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/is/cep/cepis/ModelTest.java')
-rw-r--r--src/test/java/is/cep/cepis/ModelTest.java27
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"));