-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathPrivateAddressTest.php
111 lines (93 loc) · 4.08 KB
/
PrivateAddressTest.php
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
namespace Philcross\GetAddress\Tests;
use PHPUnit\Framework\TestCase;
use Philcross\GetAddress\Client;
use Philcross\GetAddress\Responses\PrivateAddress;
use Philcross\GetAddress\Responses\PrivateAddressResponse;
class PrivateAddressTest extends TestCase
{
use ClientMockerTrait;
public function test_i_can_make_a_request_to_add_a_new_private_address()
{
$http = $this->mockGuzzle(
'post',
'https://api.getAddress.io/private-address/AB12BD?api-key=78910',
$this->mockResponse([
'message' => '\'postcode/id\' has been added to your private address list.',
'id' => 'abc',
]),
[
'line1' => 'Sample Line 1',
'line2' => 'Sample Line 2',
'line3' => 'Sample Line 3',
'line4' => 'Sample Line 4',
'locality' => 'Sample Locality',
'townOrCity' => 'Sample City',
'county' => 'Sample County',
]
);
$client = new Client('123456', '78910', $http);
$address = PrivateAddress::create(
'Sample Line 1', 'Sample Line 2', 'Sample Line 3', 'Sample Line 4', 'Sample Locality', 'Sample City', 'Sample County'
);
$this->assertFalse($address->isSaved());
$response = $client->addPrivateAddress('AB12BD', $address);
$this->assertInstanceOf(PrivateAddressResponse::class, $response);
$this->assertTrue($response->getAddresses()[0]->isSaved());
$this->assertEquals('\'postcode/id\' has been added to your private address list.', $response->getMessage());
}
public function test_i_can_make_a_request_to_delete_an_existing_private_address()
{
$http = $this->mockGuzzle(
'delete',
'https://api.getAddress.io/private-address/AB12BD/1?api-key=78910',
$this->mockResponse([
'message' => 'private address deleted',
])
);
$client = new Client('123456', '78910', $http);
$this->assertInstanceOf(PrivateAddressResponse::class, $client->deletePrivateAddress('AB12BD', '1'));
}
public function test_i_can_retrieve_a_list_of_private_address()
{
$http = $this->mockGuzzle(
'get',
'https://api.getAddress.io/private-address/AB12BD?api-key=78910',
$this->mockResponse([
[
'id' => 'abc',
'line1' => 'Sample Line 1',
'line2' => 'Sample Line 2',
'line3' => 'Sample Line 3',
'line4' => 'Sample Line 4',
'locality' => 'Sample Locality',
'townOrCity' => 'Sample City',
'county' => 'Sample County',
]
])
);
$client = new Client('123456', '78910', $http);
$this->assertInstanceOf(PrivateAddressResponse::class, $client->getPrivateAddress('AB12BD'));
$this->assertContainsOnlyInstancesOf(PrivateAddress::class, $client->getPrivateAddress('AB12BD')->getAddresses());
}
public function test_i_can_retrieve_a_known_private_address()
{
$http = $this->mockGuzzle(
'get',
'https://api.getAddress.io/private-address/AB12BD/abc?api-key=78910',
$this->mockResponse([
'id' => 'abc',
'line1' => 'Sample Line 1',
'line2' => 'Sample Line 2',
'line3' => 'Sample Line 3',
'line4' => 'Sample Line 4',
'locality' => 'Sample Locality',
'townOrCity' => 'Sample City',
'county' => 'Sample County',
])
);
$client = new Client('123456', '78910', $http);
$this->assertInstanceOf(PrivateAddressResponse::class, $client->getPrivateAddress('AB12BD', 'abc'));
$this->assertContainsOnlyInstancesOf(PrivateAddress::class, $client->getPrivateAddress('AB12BD', 'abc')->getAddresses());
}
}