]> git.openstreetmap.org Git - nominatim.git/blob - test/bdd/db/update/postcode.feature
release 5.0.0post8
[nominatim.git] / test / bdd / db / update / postcode.feature
1 @DB
2 Feature: Update of postcode
3     Tests for updating of data related to postcodes
4
5     Scenario: A new postcode appears in the postcode table
6         Given the places
7            | osm | class | type  | addr+postcode | addr+housenumber | geometry |
8            | N34 | place | house | 01982         | 111              |country:de |
9         When importing
10         Then location_postcode contains exactly
11            | country | postcode | geometry |
12            | de      | 01982    | country:de |
13         When updating places
14            | osm | class | type  | addr+postcode | addr+housenumber | geometry |
15            | N35 | place | house | 4567          | 5                |country:ch |
16         And updating postcodes
17         Then location_postcode contains exactly
18            | country | postcode | geometry |
19            | de      | 01982    | country:de |
20            | ch      | 4567     | country:ch |
21
22      Scenario: When the last postcode is deleted, it is deleted from postcode
23         Given the places
24            | osm | class | type  | addr+postcode | addr+housenumber | geometry |
25            | N34 | place | house | 01982         | 111              |country:de |
26            | N35 | place | house | 4567          | 5                |country:ch |
27         When importing
28         And marking for delete N34
29         And updating postcodes
30         Then location_postcode contains exactly
31            | country | postcode | geometry |
32            | ch      | 4567     | country:ch |
33
34      Scenario: A postcode is not deleted from postcode when it exist in another country
35         Given the places
36            | osm | class | type  | addr+postcode | addr+housenumber | geometry |
37            | N34 | place | house | 01982         | 111              |country:de |
38            | N35 | place | house | 01982         | 5                |country:fr |
39         When importing
40         And marking for delete N34
41         And updating postcodes
42         Then location_postcode contains exactly
43            | country | postcode | geometry |
44            | fr      | 01982    | country:fr |
45
46      Scenario: Updating a postcode is reflected in postcode table
47         Given the places
48            | osm | class | type     | addr+postcode |  geometry |
49            | N34 | place | postcode | 01982         | country:de |
50         When importing
51         And updating places
52            | osm | class | type     | addr+postcode |  geometry |
53            | N34 | place | postcode | 20453         | country:de |
54         And updating postcodes
55         Then location_postcode contains exactly
56            | country | postcode | geometry |
57            | de      | 20453    | country:de |
58
59      Scenario: When changing from a postcode type, the entry appears in placex
60         When importing
61         And updating places
62            | osm | class | type     | addr+postcode |  geometry |
63            | N34 | place | postcode | 01982         | country:de |
64         Then placex has no entry for N34
65         When updating places
66            | osm | class | type  | addr+postcode | housenr |  geometry |
67            | N34 | place | house | 20453         | 1       | country:de |
68         Then placex contains
69            | object | addr+housenumber | geometry |
70            | N34    | 1                | country:de|
71         And place contains exactly
72            | object | class | type  |
73            | N34    | place | house |
74         When updating postcodes
75         Then location_postcode contains exactly
76            | country | postcode | geometry |
77            | de      | 20453    | country:de |
78
79      Scenario: When changing to a postcode type, the entry disappears from placex
80         When importing
81         And updating places
82            | osm | class | type  | addr+postcode | housenr |  geometry |
83            | N34 | place | house | 20453         | 1       | country:de |
84         Then placex contains
85            | object | addr+housenumber | geometry |
86            | N34    | 1                | country:de|
87         When updating places
88            | osm | class | type     | addr+postcode |  geometry |
89            | N34 | place | postcode | 01982         | country:de |
90         Then placex has no entry for N34
91         And place contains exactly
92            | object | class | type     |
93            | N34    | place | postcode |
94         When updating postcodes
95         Then location_postcode contains exactly
96            | country | postcode | geometry |
97            | de      | 01982    | country:de |
98
99     Scenario: When a parent is deleted, the postcode gets a new parent
100         Given the grid with origin DE
101            | 1 |   | 3 | 4 |
102            |   | 9 |   |   |
103            | 2 |   | 5 | 6 |
104         Given the places
105            | osm | class    | type           | name  | admin | geometry    |
106            | R1  | boundary | administrative | Big   | 6     | (1,4,6,2,1) |
107            | R2  | boundary | administrative | Small | 6     | (1,3,5,2,1) |
108         Given the named places
109            | osm | class | type     | addr+postcode | geometry |
110            | N9  | place | postcode | 12345         | 9        |
111         When importing
112         And updating postcodes
113         Then location_postcode contains exactly
114            | country | postcode | geometry | parent_place_id |
115            | de      | 12345    | 9        | R2              |
116         When marking for delete R2
117         Then location_postcode contains exactly
118            | country | postcode | geometry | parent_place_id |
119            | de      | 12345    | 9        | R1              |