forked from geocoder-php/Geocoder
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAdminLevelTest.php
More file actions
74 lines (64 loc) · 2.1 KB
/
Copy pathAdminLevelTest.php
File metadata and controls
74 lines (64 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
declare(strict_types=1);
/*
* This file is part of the Geocoder package.
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @license MIT License
*/
namespace Geocoder\Provider\Pelias\Tests;
use Geocoder\Collection;
use Geocoder\IntegrationTest\BaseTestCase;
use Geocoder\Provider\Pelias\Pelias;
use Geocoder\Query\GeocodeQuery;
class AdminLevelTest extends BaseTestCase
{
protected function getCacheDir(): string
{
return __DIR__.'/.cached_responses';
}
public function testAdminLevelsOrder()
{
$response = '
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"coordinates": [
1.000,
1.000
]
},
"properties": {
"country": "COUNTRY",
"macroregion": "MACROREGION",
"region": "REGION",
"county": "COUNTY",
"locality": "LOCALITY",
"neighbourhood": "NEIGHBORHOOD"
}
}
]
}
';
$provider = new Pelias($this->getMockedHttpClient($response), 'http://localhost/');
$result = $provider->geocodeQuery(GeocodeQuery::create('foobar'));
$this->assertInstanceOf(Collection::class, $result);
$this->assertEquals(1, $result->count());
$address = $result->get(0);
$expectedOrder= [
'COUNTRY',
'MACROREGION',
'REGION',
'COUNTY',
'LOCALITY',
];
foreach ($address->getAdminLevels()->all() as $key => $adminLevel) {
$this->assertEquals($expectedOrder[$key-1], $adminLevel->getName());
$this->assertEquals($key, $adminLevel->getLevel(), 'Invalid admin level number for level '.$adminLevel->getName());
}
}
}