]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/db/update/linked_places.feature
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / test / bdd / db / update / linked_places.feature
index 17ca8003673c0daf432d96cf18f9d0458e2a6e17..42e62de57dc27955ab1fca4ddee1ca176c2c2c8f 100644 (file)
@@ -89,3 +89,80 @@ Feature: Updates of linked places
          | osm_type |
          | R |
 
+    Scenario: Update linking relation when linkee name is updated
+        Given the places
+         | osm | class    | type           | name | admin | geometry |
+         | R1  | boundary | administrative | rel  | 8     | poly-area:0.1 |
+        And the places
+         | osm | class    | type        | name+name:de | admin | geometry |
+         | N3  | place    | city           | pnt  | 30    | 0.00001 0 |
+        And the relations
+         | id | members  |
+         | 1  | N3:label |
+        When importing
+        Then placex contains
+         | object | linked_place_id | name+name:de |
+         | R1     | -               | pnt  |
+         | N3     | R1              | pnt  |
+        When updating places
+         | osm | class    | type        | name+name:de | admin | geometry |
+         | N3  | place    | city        | newname  | 30    | 0.00001 0 |
+        Then placex contains
+         | object | linked_place_id | name+name:de |
+         | N3     | R1              | newname  |
+         | R1     | -               | newname  |
+
+    Scenario: Updating linkee extratags keeps linker's extratags
+        Given the named places
+         | osm | class    | type           | extra+wikidata | admin | geometry |
+         | R1  | boundary | administrative | 34             | 8     | poly-area:0.1 |
+        And the named places
+         | osm | class    | type           | geometry |
+         | N3  | place    | city           | 0.00001 0 |
+        And the relations
+         | id | members  |
+         | 1  | N3:label |
+        When importing
+        Then placex contains
+         | object | extratags |
+         | R1     | 'wikidata' : '34', 'linked_place' : 'city' |
+        When updating places
+         | osm | class    | type        | name    | extra+oneway | admin | geometry |
+         | N3  | place    | city        | newname | yes          | 30    | 0.00001 0 |
+        Then placex contains
+         | object | extratags |
+         | R1     | 'wikidata' : '34', 'oneway' : 'yes', 'linked_place' : 'city' |
+
+    Scenario: Remove linked_place info when linkee is removed
+        Given the places
+            | osm | class | type | name | geometry |
+            | N1  | place | city | foo  | 0 0 |
+        And the places
+            | osm | class    | type           | name | admin | geometry |
+            | R1  | boundary | administrative | foo  | 8     | poly-area:0.1 |
+        When importing
+        Then placex contains
+            | object | extratags |
+            | R1     | 'linked_place' : 'city' |
+        When marking for delete N1
+        Then placex contains
+            | object | extratags |
+            | R1     |  |
+
+    Scenario: Update linked_place info when linkee type changes
+        Given the places
+            | osm | class | type | name | geometry |
+            | N1  | place | city | foo  | 0 0 |
+        And the places
+            | osm | class    | type           | name | admin | geometry |
+            | R1  | boundary | administrative | foo  | 8     | poly-area:0.1 |
+        When importing
+        Then placex contains
+            | object | extratags |
+            | R1     | 'linked_place' : 'city' |
+        When updating places
+            | osm | class | type | name | geometry |
+            | N1  | place | town | foo  | 0 0 |
+        Then placex contains
+            | object | extratags |
+            | R1     | 'linked_place' : 'town' |