Guzzle URLs mock handler
This package for easy mocking URLs (fixed and regexps-based) using Guzzle 6/Guzzle 7.
Require this package with composer using the following command:
$ composer require avto-dev/guzzle-url-mock "^1.5"
Installed
composer
is required (how to install composer).
You need to fix the major version of package.
Create Guzzle client instance with passing handler instance, setup it, and make request:
<?php
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Psr7\Response;
use AvtoDev\GuzzleUrlMock\UrlsMockHandler;
$handler = new UrlsMockHandler;
$client = new Client([
'handler' => HandlerStack::create($handler),
]);
$handler->onUriRequested('https://goo.gl', 'get', new Response(
200, ['foo' => ['bar']], '<h1>All looks fine!</h1>'
));
$handler->onUriRegexpRequested('~https:\/\/goo\.gl\/.*~', 'post', new Response(
404, [], 'Nothing found'
));
$client->request('get', 'https://goo.gl')->getBody()->getContents(); // '<h1>All looks fine!</h1>'
$client->request('post', 'https://goo.gl/foo', ['http_errors' => false])->getBody()->getContents(); // 'Nothing found'
Also you can use next handler methods:
Method name | Description |
---|---|
getRequestsUriHistory() |
Get all requests URIs history |
getLastRequestedUri() |
Get last requested URI |
getLastRequest() |
Get last request instance |
getLastOptions() |
Get last request options |
For package testing we use phpunit
framework and docker-ce
+ docker-compose
as develop environment. So, just write into your terminal after repository cloning:
$ make build
$ make latest # or 'make lowest'
$ make test
Changes log can be found here.
If you will find any package errors, please, make an issue in current repository.
This is open-sourced software licensed under the MIT License.