Skip to content

Commit 4a818d8

Browse files
committed
Fix Exception
1 parent e9e6cc9 commit 4a818d8

File tree

3 files changed

+61
-1
lines changed

3 files changed

+61
-1
lines changed

src/Common/Http/Exception.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ public function __construct(string $message, RequestInterface $request, Throwabl
2626
*/
2727
public function getRequest(): RequestInterface
2828
{
29-
return $this->getRequest();
29+
return $this->request;
3030
}
3131
}

tests/Omnipay/Common/Http/ClientTest.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use GuzzleHttp\Psr7\Request;
99
use Http\Client\HttpClient;
1010
use Http\Message\RequestFactory;
11+
use Omnipay\Common\Http\Exception\RequestException;
1112
use Omnipay\Tests\TestCase;
1213

1314
class ClientTest extends TestCase
@@ -99,4 +100,41 @@ public function testSendNetworkException()
99100

100101
$client->request('GET', '/path');
101102
}
103+
104+
public function testSendExceptionGetRequest()
105+
{
106+
$mockClient = m::mock(HttpClient::class);
107+
$mockFactory = m::mock(RequestFactory::class);
108+
$client = new Client($mockClient, $mockFactory);
109+
110+
$request = new Request('GET', '/path');
111+
$response = new Response();
112+
113+
$mockFactory->shouldReceive('createRequest')->withArgs([
114+
'GET',
115+
'/path',
116+
[],
117+
null,
118+
'1.1',
119+
])->andReturn($request);
120+
121+
$exception = new \Exception('Something went wrong');
122+
123+
$mockClient->shouldReceive('sendRequest')
124+
->with($request)
125+
->andThrow($exception);
126+
127+
$this->expectException(\Omnipay\Common\Http\Exception\RequestException::class);
128+
$this->expectExceptionMessage('Something went wrong');
129+
130+
131+
try {
132+
$client->request('GET', '/path');
133+
} catch (RequestException $e) {
134+
$this->assertSame($request, $e->getRequest());
135+
$this->assertSame($exception, $e->getPrevious());
136+
137+
throw $e;
138+
}
139+
}
102140
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace Omnipay\Common\Http;
4+
5+
use GuzzleHttp\Psr7\Request;
6+
use Omnipay\Common\Http\Exception\NetworkException;
7+
use Omnipay\Tests\TestCase;
8+
9+
class ExceptionTest extends TestCase
10+
{
11+
public function testConstruct()
12+
{
13+
$request = new Request('GET', '/path');
14+
15+
$previous = new \Exception('Whoops');
16+
$exception = new NetworkException('Something went wrong', $request, $previous);
17+
18+
$this->assertSame($request, $exception->getRequest());
19+
$this->assertSame('Something went wrong', $exception->getMessage());
20+
$this->assertSame($previous, $exception->getPrevious());
21+
}
22+
}

0 commit comments

Comments
 (0)