Skip to content

Commit 09a799b

Browse files
committed
Upgraded to Omnipay v3
1 parent 7696c97 commit 09a799b

11 files changed

+117
-81
lines changed

composer.json

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,22 @@
1818
}
1919
},
2020
"require": {
21-
"omnipay/common": "~2.3"
21+
"omnipay/common": "^3.0",
22+
"ext-simplexml": "*",
23+
"ext-dom": "*",
2224
},
2325
"require-dev": {
24-
"omnipay/tests": "~2.0",
25-
"satooshi/php-coveralls": "1.0.0"
26+
"omnipay/tests": "^3.0",
27+
"satooshi/php-coveralls": "1.0.0",
28+
"guzzlehttp/guzzle": "^6.5.5"
29+
},
30+
"suggest": {
31+
"guzzlehttp/guzzle": "To handle WebMoney payouts",
32+
"ext-curl": "To handle WebMoney payouts"
2633
},
2734
"extra": {
2835
"branch-alias": {
29-
"dev-master": "1.0.x-dev"
36+
"dev-master": "3.0.x-dev",
3037
}
3138
}
3239
}

src/Certificate/WMUsedRootCAs.crt

Lines changed: 36 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,40 @@
11
-----BEGIN CERTIFICATE-----
2+
MIIGRzCCBC+gAwIBAgIKNl4/iwAAAAnF+TANBgkqhkiG9w0BAQsFADBrMSswKQYD
3+
VQQLEyJXTSBUcmFuc2ZlciBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzMRgwFgYDVQQK
4+
Ew9XTSBUcmFuc2ZlciBMdGQxIjAgBgNVBAMTGVdlYk1vbmV5IFRyYW5zZmVyIFJv
5+
b3QgQ0EwHhcNMTYxMTIyMTQxOTQ0WhcNMjExMTIyMTQyOTQ0WjCBhzELMAkGA1UE
6+
BhMCUlUxDzANBgNVBAgTBk1vc2NvdzEPMA0GA1UEBxMGTW9zY293MRowGAYDVQQK
7+
ExFXZWJNb25leSBUcmFuc2ZlcjEdMBsGA1UECxMUV2ViTW9uZXkgV2ViIFNlcnZp
8+
Y2UxGzAZBgNVBAMTEnczcy53bXRyYW5zZmVyLmNvbTCCASIwDQYJKoZIhvcNAQEB
9+
BQADggEPADCCAQoCggEBAJ0drRG+bzqrBk3IWMbtYMQZdYr501/c1NdnOWjyeFKt
10+
Ho8N2PKiAf9OOFywSSdCoFdDxp0PNK1GoBESyhi2xIuXRpvCzNyRb2Se3V3IpFS8
11+
VOu6V2GzFjc7xqS37MAgR6THCvULumh6w7DMY+HBU51CinuRbComR9+D4Yq8c6wx
12+
NnlI0HnkKE1H6fqLwDU+JhVrEJ64it6emghIazcEoZ+9Ld0rHdhrYsthxTwmC9mr
13+
YR6ayhde7BOn/B66XWtZE+7sFYkmC/547NuU+gMw7FoZ/iu3Vy3HPOvwtzbXbwVk
14+
lltVMtU2JD4+3UWlwMTbbPOQc5pDbC6GP56mIOy976sCAwEAAaOCAc4wggHKMB0G
15+
A1UdDgQWBBT5R7V8EMMuRX9sQBZz8pdftKYI2jAfBgNVHSMEGDAWgBSxMKdLA5lP
16+
hDYcE31X9Otp+4gbwzCBpAYDVR0fBIGcMIGZMIGWoIGToIGQhklodHRwOi8vY2Vy
17+
dC53bXRyYW5zZmVyLmNvbS9DZXJ0RW5yb2xsL1dlYk1vbmV5JTIwVHJhbnNmZXIl
18+
MjBSb290JTIwQ0EuY3JshkNmaWxlOi8vY2VydC53bXRyYW5zZmVyLmNvbS9DZXJ0
19+
RW5yb2xsL1dlYk1vbmV5IFRyYW5zZmVyIFJvb3QgQ0EuY3JsMIHgBggrBgEFBQcB
20+
AQSB0zCB0DBpBggrBgEFBQcwAoZdaHR0cDovL2NlcnQud210cmFuc2Zlci5jb20v
21+
Q2VydEVucm9sbC9jZXJ0LndtdHJhbnNmZXIuY29tX1dlYk1vbmV5JTIwVHJhbnNm
22+
ZXIlMjBSb290JTIwQ0EuY3J0MGMGCCsGAQUFBzAChldmaWxlOi8vY2VydC53bXRy
23+
YW5zZmVyLmNvbS9DZXJ0RW5yb2xsL2NlcnQud210cmFuc2Zlci5jb21fV2ViTW9u
24+
ZXkgVHJhbnNmZXIgUm9vdCBDQS5jcnQwDQYJKoZIhvcNAQELBQADggIBAIE+gHDa
25+
+nIQxlYJ2TMXbKBmBLdfwzd/FsO9PUxhx9fYg7Xp1/Vg3h7jjRl2/fe8iTLgInJ/
26+
avuyF+57MhRa+XIVHT02RLqG1wDlIdi5pMt7xRCvTulzHAeOrctNtH+m3pdu5G4S
27+
u8k9lltwdcprfz3HNqU/Q1zcYMjvJJ7dPNqzNQWGRGPHuU4pS/x0Y+wUdTDhAYla
28+
CJOkYscJipeyWgWM9zJZAXvmKw8lWij/lQDjAqAc0O5FyN5RN+l9Yt14NPvAM1zc
29+
1SJttrFUiXR+7tHOIB4eXxfHa1Y68qt3cNV6C/Gun/6hhc8Jg0ly9mk1EGMXbBWZ
30+
fko/3VSJGRpSqKacQBOmdBbgJmZW3GNSrQEmF2pV6aIyxQJA5PPBN6ePKnYZQpdr
31+
Q/4Ql6IJs9R2JN3e+dmwzzf7IQuWGppR+WDcw322xPteK9Mt/mz4SYPTIu7cARqV
32+
Y+v32ybhXibT/PY5qIPrX2MGLolhG3dZO+gwIyMLCtEBQL8+CorFd06UhKKbU/8p
33+
x9Iqyo57wM7yA8WbLYF+rGxFZ79WL+2rhTmyqycK/YZ7AnrY9oUA6W8maNbdIE3G
34+
aGB4kZaEtdMz0MFErIXS75OC7HAwuSRz2QXUZ3Bj6syxQfkz67RRnfWF0AdhQY2V
35+
kjDzCAi+4vTuN7xadrhJmsiRx6r/nQo+iDh2
36+
-----END CERTIFICATE-----
37+
-----BEGIN CERTIFICATE-----
238
MIIFsTCCA5mgAwIBAgIQA7dHzSZ7uJdBxFycIWn+WjANBgkqhkiG9w0BAQUFADBr
339
MSswKQYDVQQLEyJXTSBUcmFuc2ZlciBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzMRgw
440
FgYDVQQKEw9XTSBUcmFuc2ZlciBMdGQxIjAgBgNVBAMTGVdlYk1vbmV5IFRyYW5z
@@ -31,42 +67,3 @@ hlA2/d5ULImX70Q2te3xiS1vrQhu77mkb/jA4/9+YfeT7VMpbnC3OoHiZ2bjudKn
3167
thlOs+AuUvzB4Tqo62VSF5+r0sYI593S+STmaZBAzsoaoEB7qxqKbEKCvXb9BlXk
3268
L76xIOEkbSIdPIkGXM4aMo4mTVz7
3369
-----END CERTIFICATE-----
34-
-----BEGIN CERTIFICATE-----
35-
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
36-
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
37-
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
38-
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
39-
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
40-
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
41-
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
42-
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
43-
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
44-
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
45-
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
46-
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
47-
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
48-
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
49-
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
50-
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
51-
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
52-
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
53-
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
54-
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
55-
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
56-
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
57-
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
58-
-----END CERTIFICATE-----
59-
-----BEGIN CERTIFICATE-----
60-
MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
61-
A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
62-
cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
63-
MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
64-
BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
65-
YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
66-
ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
67-
BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
68-
I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
69-
CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
70-
lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
71-
AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
72-
-----END CERTIFICATE-----

src/Message/FetchTransactionRequest.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,10 @@ public function getData()
5555

5656
public function sendData($data)
5757
{
58-
$httpResponse = $this->httpClient->post($this->endpoint, null, $data)->send();
58+
$httpResponse = $this->httpClient->request('POST', $this->endpoint, [], $data);
59+
$xml = simplexml_load_string($httpResponse->getBody()->getContents());
5960

60-
return $this->createResponse($httpResponse->xml());
61+
return $this->createResponse($xml);
6162
}
6263

6364
protected function createResponse($data)

src/Message/PayoutRequest.php

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Omnipay\WebMoney\Message;
44

5+
use Guzzle\Http\Client;
56
use Omnipay\Common\Exception\InvalidRequestException;
67

78
/**
@@ -275,20 +276,29 @@ public function getData()
275276
return $document->saveXML();
276277
}
277278

279+
/**
280+
* @return Client
281+
*/
282+
private function getHttpClient()
283+
{
284+
return new Client($this->endpoint);
285+
}
286+
278287
public function sendData($data)
279288
{
280-
$this->httpClient->setConfig(array(
281-
'curl.options' => array(
289+
$client = $this->getHttpClient();
290+
$client->setConfig([
291+
Client::CURL_OPTIONS => [
282292
CURLOPT_CAINFO => $this->getCertificatePath('WMUsedRootCAs.crt'),
283293
CURLOPT_SSLCERT => $this->getSslFile(),
284294
CURLOPT_SSLKEY => $this->getSslKey(),
285295
CURLOPT_SSLVERSION => 1,
286296
CURLOPT_SSL_VERIFYHOST => 2,
287297
CURLOPT_SSL_VERIFYPEER => 1,
288-
),
289-
));
298+
],
299+
]);
290300

291-
$httpResponse = $this->httpClient->post($this->endpoint, null, $data)->send();
301+
$httpResponse = $client->post($this->endpoint, [], $data)->send();
292302

293303
return $this->createResponse($httpResponse->xml());
294304
}
@@ -300,10 +310,6 @@ protected function createResponse($data)
300310

301311
protected function getCertificatePath($fileName)
302312
{
303-
$class = new \ReflectionObject($this);
304-
$directory = dirname($class->getFileName());
305-
$file = realpath($directory.'/../Certificate/'.$fileName);
306-
307-
return $file;
313+
return __DIR__ . '/../Certificate/' . $fileName;
308314
}
309315
}

tests/Message/CompletePurchaseRequestTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,6 @@ public function testSendData()
6363
{
6464
$data = $this->request->getData();
6565
$response = $this->request->sendData($data);
66-
$this->assertSame('Omnipay\WebMoney\Message\CompletePurchaseResponse', get_class($response));
66+
$this->assertInstanceOf(CompletePurchaseResponse::class, $response);
6767
}
6868
}

tests/Message/CompletePurchaseResponseTest.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
namespace Omnipay\WebMoney\Message;
33

44
use Omnipay\Tests\TestCase;
5+
use Omnipay\Common\Exception\InvalidResponseException;
56

67
class CompletePurchaseResponseTest extends TestCase
78
{
@@ -21,7 +22,8 @@ public function setUp()
2122

2223
public function testSignHashException()
2324
{
24-
$this->setExpectedException('Omnipay\Common\Exception\InvalidResponseException', 'Invalid hash');
25+
$this->expectException(InvalidResponseException::class);
26+
$this->expectExceptionMessage('Invalid hash');
2527
new CompletePurchaseResponse($this->request, array(
2628
'LMI_MODE' => '1',
2729
'LMI_PAYMENT_AMOUNT' => '14.65',
@@ -43,7 +45,8 @@ public function testSignHashException()
4345

4446
public function testInvalidTestModeException()
4547
{
46-
$this->setExpectedException('Omnipay\Common\Exception\InvalidResponseException', 'Invalid test mode');
48+
$this->expectException(InvalidResponseException::class);
49+
$this->expectExceptionMessage('Invalid test mode');
4750
new CompletePurchaseResponse($this->request, array(
4851
'LMI_MODE' => '0',
4952
'LMI_PAYMENT_AMOUNT' => '14.65',
@@ -166,7 +169,8 @@ public function testMd5Hash()
166169

167170
public function testInvalidHashTypeException()
168171
{
169-
$this->setExpectedException('Omnipay\Common\Exception\InvalidResponseException', 'Control sign forming method "SIGN" is not supported');
172+
$this->expectException(InvalidResponseException::class);
173+
$this->expectExceptionMessage('Control sign forming method "SIGN" is not supported');
170174
new CompletePurchaseResponse($this->request, array(
171175
'LMI_MODE' => '1',
172176
'LMI_PAYMENT_AMOUNT' => '14.65',
@@ -188,7 +192,8 @@ public function testInvalidHashTypeException()
188192

189193
public function testInvalidSignatureTypeException()
190194
{
191-
$this->setExpectedException('Omnipay\Common\Exception\InvalidResponseException', 'Invalid signature type');
195+
$this->expectException(InvalidResponseException::class);
196+
$this->expectExceptionMessage('Invalid signature type');
192197
new CompletePurchaseResponse($this->request, array(
193198
'LMI_MODE' => '1',
194199
'LMI_PAYMENT_AMOUNT' => '14.65',

tests/Message/FetchTransactionRequestTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ public function setUp()
1111
{
1212
parent::setUp();
1313

14-
$mockPlugin = new \Guzzle\Plugin\Mock\MockPlugin();
15-
$mockPlugin->addResponse($this->getMockHttpResponse('FetchTransactionSuccess.txt'));
14+
$this->getMockClient()->addResponse(
15+
$this->getMockHttpResponse('FetchTransactionSuccess.txt')
16+
);
1617

1718
$httpClient = $this->getHttpClient();
18-
$httpClient->addSubscriber($mockPlugin);
1919

2020
$this->request = new FetchTransactionRequest($httpClient, $this->getHttpRequest());
2121
$this->request->initialize(array(
@@ -42,6 +42,6 @@ public function testSendData()
4242
{
4343
$data = $this->request->getData();
4444
$response = $this->request->sendData($data);
45-
$this->assertSame('Omnipay\WebMoney\Message\FetchTransactionResponse', get_class($response));
45+
$this->assertInstanceOf(\Omnipay\WebMoney\Message\FetchTransactionResponse::class, $response);
4646
}
4747
}

tests/Message/FetchTransactionResponseTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ public function setUp()
2424
public function testFailure()
2525
{
2626
$httpResponse = $this->getMockHttpResponse('FetchTransactionFailure.txt');
27-
$response = new FetchTransactionResponse($this->request, $httpResponse->xml());
27+
$xml = simplexml_load_string($httpResponse->getBody()->getContents());
28+
$response = new FetchTransactionResponse($this->request, $xml);
2829

2930
$this->assertFalse($response->isSuccessful());
3031
$this->assertSame(7, $response->getCode());
@@ -38,7 +39,8 @@ public function testFailure()
3839
public function testSuccess()
3940
{
4041
$httpResponse = $this->getMockHttpResponse('FetchTransactionSuccess.txt');
41-
$response = new FetchTransactionResponse($this->request, $httpResponse->xml());
42+
$xml = simplexml_load_string($httpResponse->getBody()->getContents());
43+
$response = new FetchTransactionResponse($this->request, $xml);
4244

4345
$this->assertTrue($response->isSuccessful());
4446
$this->assertSame(0, $response->getCode());

tests/Message/PayoutRequestTest.php

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
<?php
22
namespace Omnipay\WebMoney\Message;
33

4+
use Guzzle\Http\Client;
5+
use Guzzle\Http\Exception\CurlException;
46
use Omnipay\Tests\TestCase;
7+
use ReflectionObject;
8+
use SimpleXMLElement;
59

610
class PayoutRequestTest extends TestCase
711
{
@@ -11,19 +15,23 @@ public function setUp()
1115
{
1216
parent::setUp();
1317

14-
$class = new \ReflectionObject($this);
18+
$class = new ReflectionObject($this);
1519
$directory = dirname($class->getFileName());
1620
$sslFile = realpath($directory . '/../Certificate/webmoney.pem');
1721
$sslKey = realpath($directory . '/../Certificate/webmoney.key');
1822

1923
$mockPlugin = new \Guzzle\Plugin\Mock\MockPlugin();
20-
$mockPlugin->addResponse($this->getMockHttpResponse('PayoutSuccess.txt'));
24+
$mockPlugin->addResponse(__DIR__ . '/../Mock/PayoutSuccess.txt');
2125

22-
$httpClient = $this->getHttpClient();
26+
$httpClient = new Client();
2327
$httpClient->addSubscriber($mockPlugin);
2428

25-
$this->request = new PayoutRequest($httpClient, $this->getHttpRequest());
26-
$this->request->initialize(array(
29+
$this->request = $this->getMockBuilder(PayoutRequest::class)
30+
->setMethods(['getHttpClient'])
31+
->setConstructorArgs([$this->getHttpClient(), $this->getHttpRequest()])
32+
->getMock();
33+
$this->request->method('getHttpClient')->willReturn($httpClient);
34+
$this->request->initialize([
2735
'webMoneyId' => '811333344777',
2836
'merchantPurse' => 'Z123428476799',
2937
'secretKey' => '226778888',
@@ -39,7 +47,8 @@ public function setUp()
3947
'description' => 'Payout',
4048
'currency' => 'USD',
4149
'amount' => '12.46'
42-
));
50+
]
51+
);
4352
}
4453

4554
public function testException()
@@ -49,14 +58,14 @@ public function testException()
4958
try {
5059
$this->request->getData();
5160
} catch (\Exception $e) {
52-
$this->assertEquals('Omnipay\Common\Exception\InvalidRequestException', get_class($e));
61+
$this->assertInstanceOf(\Omnipay\Common\Exception\InvalidRequestException::class, $e);
5362
}
5463
}
5564

5665
public function testGetData()
5766
{
5867
$data = $this->request->getData();
59-
$request = new \SimpleXMLElement($data);
68+
$request = new SimpleXMLElement($data);
6069

6170
$this->assertSame('111222333', (string) $request->reqn);
6271
$this->assertSame('', (string) $request->wmid);
@@ -75,7 +84,13 @@ public function testGetData()
7584
public function testSendData()
7685
{
7786
$data = $this->request->getData();
78-
$response = $this->request->sendData($data);
79-
$this->assertSame('Omnipay\WebMoney\Message\PayoutResponse', get_class($response));
87+
$caught = false;
88+
try {
89+
$response = $this->request->sendData($data);
90+
} catch (CurlException $exception) {
91+
// We don't have a valid client SSL cert to interact with
92+
$this->assertStringStartsWith('[curl] 56: OpenSSL SSL_read: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca', $exception->getMessage());
93+
$caught = true;
94+
}
8095
}
8196
}

tests/Message/PayoutResponseTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ public function setUp()
3939
public function testFailure()
4040
{
4141
$httpResponse = $this->getMockHttpResponse('PayoutFailure.txt');
42-
$response = new PayoutResponse($this->request, $httpResponse->xml());
42+
$xml = simplexml_load_string($httpResponse->getBody()->getContents());
43+
$response = new PayoutResponse($this->request, $xml);
4344

4445
$this->assertFalse($response->isSuccessful());
4546
$this->assertSame(17, $response->getCode());
@@ -53,7 +54,8 @@ public function testFailure()
5354
public function testSuccess()
5455
{
5556
$httpResponse = $this->getMockHttpResponse('PayoutSuccess.txt');
56-
$response = new PayoutResponse($this->request, $httpResponse->xml());
57+
$xml = simplexml_load_string($httpResponse->getBody()->getContents());
58+
$response = new PayoutResponse($this->request, $xml);
5759

5860
$this->assertTrue($response->isSuccessful());
5961
$this->assertSame(0, $response->getCode());

0 commit comments

Comments
 (0)