File tree Expand file tree Collapse file tree 2 files changed +27
-0
lines changed
Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change 33use Sammyjo20 \Saloon \Http \MockResponse ;
44use Sammyjo20 \Saloon \Clients \MockClient ;
55use Sammyjo20 \Saloon \Http \SaloonRequest ;
6+ use Sammyjo20 \Saloon \Tests \Fixtures \Mocking \CallableMockResponse ;
67use Sammyjo20 \Saloon \Tests \Fixtures \Requests \UserRequest ;
78use Sammyjo20 \Saloon \Tests \Fixtures \Requests \ErrorRequest ;
89use Sammyjo20 \Saloon \Tests \Fixtures \Connectors \TestConnector ;
@@ -210,3 +211,14 @@ function (SaloonRequest $request): MockResponse {
210211 expect ($ urlResponse ->isMocked ())->toBeTrue ();
211212 expect ($ urlResponse ->json ())->toEqual (['request ' => 'https://tests.saloon.dev/api/user ' ]);
212213});
214+
215+ test ('you can use a callable class as the mock response ' , function () {
216+ $ mockClient = new MockClient ([
217+ UserRequest::class => new CallableMockResponse ,
218+ ]);
219+
220+ $ sequenceResponse = UserRequest::make ()->send ($ mockClient );
221+
222+ expect ($ sequenceResponse ->isMocked ())->toBeTrue ();
223+ expect ($ sequenceResponse ->json ())->toEqual (['request_class ' => UserRequest::class]);
224+ });
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Sammyjo20 \Saloon \Tests \Fixtures \Mocking ;
4+
5+ use Sammyjo20 \Saloon \Http \MockResponse ;
6+ use Sammyjo20 \Saloon \Http \SaloonRequest ;
7+ use Sammyjo20 \Saloon \Http \SaloonResponse ;
8+
9+ class CallableMockResponse
10+ {
11+ public function __invoke (SaloonRequest $ request ): MockResponse
12+ {
13+ return new MockResponse (['request_class ' => get_class ($ request )]);
14+ }
15+ }
You can’t perform that action at this time.
0 commit comments