Mock Builder Setup
Setting up the Mock builder is a straightforward process. You have to set up your expectations and the returned response when these
expectations are met. In order to do that you should use the MockBuilder
and HttpMock
classes as follows.
use EasyHttp\MockBuilder\HttpMock;
use EasyHttp\MockBuilder\MockBuilder;
$builder = new MockBuilder();
$builder
->when()
->pathIs('/v1/products')
// ... define all expectations
->then()
->body('foo')
// ... define body, status code, headers, ...
;
$mock = new HttpMock($builder);
The next step is to inject this mock to the particular http client you're using.
Guzzle Client
If you're using Guzzle client you can use the HandlerStack
class to inject a mock.
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Client;
$client = new Client(['handler' => HandlerStack::create($mock)]);
Easy Http client
If you're using any of the Easy Http layers you could use the withHandler
method of EasyClientContract
.
$client->withHandler($mock);