2021-05-14 18:52:00 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
2021-05-14 18:57:35 +03:00
|
|
|
* PHP 7.2
|
2021-05-14 18:52:00 +03:00
|
|
|
*
|
2021-05-15 13:14:21 +03:00
|
|
|
* @category PockTestCase
|
|
|
|
* @package Pock\TestUtils
|
2021-05-14 18:52:00 +03:00
|
|
|
*/
|
|
|
|
|
2021-05-15 13:14:21 +03:00
|
|
|
namespace Pock\TestUtils;
|
2021-05-14 18:52:00 +03:00
|
|
|
|
|
|
|
use Nyholm\Psr7\Factory\Psr17Factory;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
use Pock\Enum\RequestMethod;
|
|
|
|
use Pock\Enum\RequestScheme;
|
2021-05-15 20:28:41 +03:00
|
|
|
use Pock\Factory\JsonSerializerFactory;
|
|
|
|
use Pock\Factory\XmlSerializerFactory;
|
|
|
|
use Pock\Serializer\SerializerInterface;
|
2021-05-14 18:52:00 +03:00
|
|
|
use Psr\Http\Message\RequestInterface;
|
|
|
|
|
|
|
|
/**
|
2021-05-15 13:14:21 +03:00
|
|
|
* Class PockTestCase
|
2021-05-14 18:52:00 +03:00
|
|
|
*
|
2021-05-15 13:14:21 +03:00
|
|
|
* @category PockTestCase
|
|
|
|
* @package Pock\TestUtils
|
2021-05-14 18:52:00 +03:00
|
|
|
*/
|
2021-05-15 13:14:21 +03:00
|
|
|
abstract class PockTestCase extends TestCase
|
2021-05-14 18:52:00 +03:00
|
|
|
{
|
|
|
|
protected const TEST_METHOD = RequestMethod::GET;
|
|
|
|
protected const TEST_SCHEME = RequestScheme::HTTPS;
|
|
|
|
protected const TEST_HOST = 'example.com';
|
|
|
|
protected const TEST_URI = self::TEST_SCHEME . '://' . self::TEST_HOST . '/';
|
|
|
|
|
|
|
|
/** @var \Nyholm\Psr7\Factory\Psr17Factory */
|
2021-05-14 18:58:50 +03:00
|
|
|
protected static $psr17Factory;
|
2021-05-14 18:52:00 +03:00
|
|
|
|
|
|
|
/**
|
2021-05-15 18:57:28 +03:00
|
|
|
* @param string|null $method
|
|
|
|
*
|
2021-05-14 18:52:00 +03:00
|
|
|
* @return \Psr\Http\Message\RequestInterface
|
|
|
|
*/
|
2021-05-15 18:57:28 +03:00
|
|
|
protected static function getTestRequest(?string $method = null): RequestInterface
|
2021-05-14 18:52:00 +03:00
|
|
|
{
|
2021-05-15 18:57:28 +03:00
|
|
|
return static::getPsr17Factory()->createRequest($method ?? static::TEST_METHOD, static::TEST_URI);
|
2021-05-14 18:52:00 +03:00
|
|
|
}
|
|
|
|
|
2021-05-21 18:05:43 +03:00
|
|
|
/**
|
|
|
|
* @param string $body
|
|
|
|
*
|
|
|
|
* @return \Psr\Http\Message\RequestInterface
|
|
|
|
*/
|
|
|
|
protected static function getRequestWithBody(string $body): RequestInterface
|
|
|
|
{
|
|
|
|
return static::getPsr17Factory()->createRequest(
|
|
|
|
RequestMethod::GET,
|
|
|
|
static::TEST_URI
|
|
|
|
)->withBody(self::getPsr17Factory()->createStream($body));
|
|
|
|
}
|
|
|
|
|
2021-05-14 18:52:00 +03:00
|
|
|
/**
|
|
|
|
* @return \Nyholm\Psr7\Factory\Psr17Factory
|
|
|
|
*/
|
|
|
|
protected static function getPsr17Factory(): Psr17Factory
|
|
|
|
{
|
|
|
|
if (null === static::$psr17Factory) {
|
|
|
|
static::$psr17Factory = new Psr17Factory();
|
|
|
|
}
|
|
|
|
|
|
|
|
return static::$psr17Factory;
|
|
|
|
}
|
2021-05-15 20:28:41 +03:00
|
|
|
|
|
|
|
protected static function getJsonSerializer(): SerializerInterface
|
|
|
|
{
|
|
|
|
return JsonSerializerFactory::create();
|
|
|
|
}
|
|
|
|
|
|
|
|
protected static function getXmlSerializer(): SerializerInterface
|
|
|
|
{
|
|
|
|
return XmlSerializerFactory::create();
|
|
|
|
}
|
2021-05-14 18:52:00 +03:00
|
|
|
}
|