diff --git a/src/Build/Province.php b/src/Build/Province.php index 9385455..a1847a0 100644 --- a/src/Build/Province.php +++ b/src/Build/Province.php @@ -58,18 +58,6 @@ public function checkMunicipalityData(stdClass $data): void } } - public function checkFlatEntry(FlatMunicipality $flatMunicipality): void - { - if ($this->id !== $flatMunicipality->utsID - || $this->oldID !== $flatMunicipality->utsOldID - || $this->vehicleCode !== $flatMunicipality->utsVehicleCode - || $this->type !== $flatMunicipality->utsType - || $this->name !== $flatMunicipality->utsName - ) { - throw new RuntimeException('Incompatible FlatMunicipality for ' . __CLASS__); - } - } - public function serialize(Collator $collator): array { $result = [ diff --git a/test/tests/SingletonsTest.php b/test/tests/SingletonsTest.php index 7cecd43..cc310a1 100644 --- a/test/tests/SingletonsTest.php +++ b/test/tests/SingletonsTest.php @@ -11,6 +11,7 @@ use MLocati\ComuniItaliani\TerritoryWithChildren; use MLocati\ComuniItaliani\Region; use MLocati\ComuniItaliani\Province; +use MLocati\ComuniItaliani\GeographicalSubdivision; class SingletonsTest extends TerritoryTestCase { @@ -32,4 +33,52 @@ public function testSingletons(bool $unminified): void $geographicalSubdivisions = $factory->getGeographicalSubdivisions(); $this->assertSame($geographicalSubdivisions, $factory->getGeographicalSubdivisions()); } + + /** + * @dataProvider provideGeographicalSubdivisions + */ + public function testGeographicalSubdivision(GeographicalSubdivision $geographicalSubdivision): void + { + $this->assertNull($geographicalSubdivision->getParent()); + $children = $geographicalSubdivision->getChildren(); + $this->assertSame($children, $geographicalSubdivision->getRegions()); + foreach ($children as $child) { + $this->assertSame($geographicalSubdivision, $child->getParent()); + } + } + + /** + * @dataProvider provideRegions + */ + public function testRegion(Region $region): void + { + $this->assertInstanceOf(GeographicalSubdivision::class, $region->getParent()); + $children = $region->getChildren(); + $this->assertSame($children, $region->getProvinces()); + foreach ($children as $child) { + $this->assertSame($region, $child->getParent()); + } + } + + /** + * @dataProvider provideProvinces + */ + public function testProvince(Province $province): void + { + $this->assertInstanceOf(Region::class, $province->getParent()); + $children = $province->getChildren(); + $this->assertSame($children, $province->getMunicipalities()); + foreach ($children as $child) { + $this->assertSame($province, $child->getParent()); + } + } + + /** + * @dataProvider provideMunicipalities + */ + public function testMunicipality(Municipality $municipality): void + { + $this->assertInstanceOf(Province::class, $municipality->getParent()); + $this->assertNotInstanceOf(TerritoryWithChildren::class, $municipality); + } }