]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/db/update/postcode.feature
handle associatedStreet relations with multiple streets
[nominatim.git] / test / bdd / db / update / postcode.feature
index fbac93411db03223d7bbc006df5c2b7c7e3ba248..c6696ddae8d86090e991cb545d43f4c145cad96a 100644 (file)
@@ -18,10 +18,7 @@ Feature: Update of postcode
            | country | postcode | geometry |
            | de      | 01982    | country:de |
            | ch      | 4567     | country:ch |
-        And word contains
-           | word  | class | type |
-           | 01982 | place | postcode |
-           | 4567  | place | postcode |
+        And there are word tokens for postcodes 01982,4567
 
      Scenario: When the last postcode is deleted, it is deleted from postcode and word
         Given the places
@@ -34,25 +31,74 @@ Feature: Update of postcode
         Then location_postcode contains exactly
            | country | postcode | geometry |
            | ch      | 4567     | country:ch |
-        And word contains not
-           | word  | class | type |
-           | 01982 | place | postcode |
-        And word contains
-           | word  | class | type |
-           | 4567  | place | postcode |
+        And there are word tokens for postcodes 4567
+        And there are no word tokens for postcodes 01982
 
      Scenario: A postcode is not deleted from postcode and word when it exist in another country
         Given the places
            | osm | class | type  | addr+postcode | addr+housenumber | geometry |
            | N34 | place | house | 01982         | 111              |country:de |
-           | N35 | place | house | 01982         | 5                |country:ch |
+           | N35 | place | house | 01982         | 5                |country:fr |
         When importing
         And marking for delete N34
         And updating postcodes
         Then location_postcode contains exactly
            | country | postcode | geometry |
-           | ch      | 01982    | country:ch |
-        And word contains
-           | word  | class | type |
-           | 01982 | place | postcode |
+           | fr      | 01982    | country:fr |
+        And there are word tokens for postcodes 01982
 
+     Scenario: Updating a postcode is reflected in postcode table
+        Given the places
+           | osm | class | type     | addr+postcode |  geometry |
+           | N34 | place | postcode | 01982         | country:de |
+        When importing
+        And updating places
+           | osm | class | type     | addr+postcode |  geometry |
+           | N34 | place | postcode | 20453         | country:de |
+        And updating postcodes
+        Then location_postcode contains exactly
+           | country | postcode | geometry |
+           | de      | 20453    | country:de |
+        And there are word tokens for postcodes 20453
+
+     Scenario: When changing from a postcode type, the entry appears in placex
+        When importing
+        And updating places
+           | osm | class | type     | addr+postcode |  geometry |
+           | N34 | place | postcode | 01982         | country:de |
+        Then placex has no entry for N34
+        When updating places
+           | osm | class | type  | addr+postcode | housenr |  geometry |
+           | N34 | place | house | 20453         | 1       | country:de |
+        Then placex contains
+           | object | addr+housenumber | geometry |
+           | N34    | 1                | country:de|
+        And place contains exactly
+           | object | class | type  |
+           | N34    | place | house |
+        When updating postcodes
+        Then location_postcode contains exactly
+           | country | postcode | geometry |
+           | de      | 20453    | country:de |
+        And there are word tokens for postcodes 20453
+
+     Scenario: When changing to a postcode type, the entry disappears from placex
+        When importing
+        And updating places
+           | osm | class | type  | addr+postcode | housenr |  geometry |
+           | N34 | place | house | 20453         | 1       | country:de |
+        Then placex contains
+           | object | addr+housenumber | geometry |
+           | N34    | 1                | country:de|
+        When updating places
+           | osm | class | type     | addr+postcode |  geometry |
+           | N34 | place | postcode | 01982         | country:de |
+        Then placex has no entry for N34
+        And place contains exactly
+           | object | class | type     |
+           | N34    | place | postcode |
+        When updating postcodes
+        Then location_postcode contains exactly
+           | country | postcode | geometry |
+           | de      | 01982    | country:de |
+        And there are word tokens for postcodes 01982