author | ymh <ymh.work@gmail.com> |
Wed, 09 Nov 2016 15:05:41 +0100 | |
changeset 406 | cf0f23803a53 |
parent 306 | 3fccf43160a7 |
child 407 | 2dba812c7ef2 |
permissions | -rw-r--r-- |
304
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
1 |
<?php |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
2 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
3 |
use Mockery as m; |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
4 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
5 |
use CorpusParole\Services\GeonamesResolverException; |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
6 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
7 |
/** |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
8 |
* |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
9 |
*/ |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
10 |
class GeonamesControllerTest extends TestCase { |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
11 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
12 |
private $geonamesResolver; |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
13 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
14 |
public function setUp() { |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
15 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
16 |
parent::setup(); |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
17 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
18 |
// create a mock of the post repository interface and inject it into the |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
19 |
// IoC container |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
20 |
$this->geonamesResolver = m::mock('CorpusParole\Services\GeonamesResolverInterface'); |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
21 |
$this->app->instance('CorpusParole\Services\GeonamesResolverInterface', $this->geonamesResolver); |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
22 |
} |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
23 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
24 |
public function tearDown() { |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
25 |
m::close(); |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
26 |
parent::tearDown(); |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
27 |
} |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
28 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
29 |
public function testShow() { |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
30 |
$this->geonamesResolver |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
31 |
->shouldReceive('getLabels') |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
32 |
->with(['2968801', '2988507', '6255148']) |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
33 |
->once() |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
34 |
->andReturn(['2968801' => 'Villedieu-les-Poêles', '2988507' => 'Paris', '6255148' => 'Europe']); |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
35 |
|
306
3fccf43160a7
Some more changes linked to the change of api organization + some jshint error cleaning
ymh <ymh.work@gmail.com>
parents:
304
diff
changeset
|
36 |
$response = $this->get('/api/v1/resolvers/geonames/2968801,2988507,6255148')-> |
304
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
37 |
seeJsonEquals(['geonamesids' => ['2968801' => 'Villedieu-les-Poêles', '2988507' => 'Paris', '6255148' => 'Europe']]); |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
38 |
} |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
39 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
40 |
public function testShowOne() { |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
41 |
$this->geonamesResolver |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
42 |
->shouldReceive('getLabels') |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
43 |
->with(['2968801']) |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
44 |
->once() |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
45 |
->andReturn([ |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
46 |
'2968801' => 'Villedieu-les-Poêles' |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
47 |
]); |
306
3fccf43160a7
Some more changes linked to the change of api organization + some jshint error cleaning
ymh <ymh.work@gmail.com>
parents:
304
diff
changeset
|
48 |
$response = $this->get('/api/v1/resolvers/geonames/2968801')-> |
304
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
49 |
seeJsonEquals(['geonamesids' => [ |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
50 |
'2968801' => 'Villedieu-les-Poêles' |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
51 |
]]); |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
52 |
} |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
53 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
54 |
public function testShowUnknown() { |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
55 |
$this->geonamesResolver |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
56 |
->shouldReceive('getLabels') |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
57 |
->with(['12345']) |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
58 |
->once() |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
59 |
->andReturn([ |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
60 |
'12345' => null |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
61 |
]); |
306
3fccf43160a7
Some more changes linked to the change of api organization + some jshint error cleaning
ymh <ymh.work@gmail.com>
parents:
304
diff
changeset
|
62 |
$response = $this->get('/api/v1/resolvers/geonames/12345')-> |
304
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
63 |
seeJsonEquals(['geonamesids' => [ |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
64 |
'12345' => null |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
65 |
]]); |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
66 |
} |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
67 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
68 |
public function testShowMalformed() { |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
69 |
$this->geonamesResolver |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
70 |
->shouldReceive('getLabels') |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
71 |
->with(['abcdef','ghij']) |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
72 |
->once() |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
73 |
->andThrow('CorpusParole\Services\GeonamesResolverException', "GeonamesId not in correct format", 400); |
306
3fccf43160a7
Some more changes linked to the change of api organization + some jshint error cleaning
ymh <ymh.work@gmail.com>
parents:
304
diff
changeset
|
74 |
$response = $this->get('/api/v1/resolvers/geonames/abcdef,ghij'); |
304
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
75 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
76 |
$this->assertResponseStatus(400); |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
77 |
} |
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
78 |
|
20071981ba2a
add location and geonames resolvers and api
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
79 |
} |