<?php /** * PHP 7.2 * * @category PockTestCase * @package Pock\TestUtils */ namespace Pock\TestUtils; use Nyholm\Psr7\Factory\Psr17Factory; use PHPUnit\Framework\TestCase; use Pock\Enum\RequestMethod; use Pock\Enum\RequestScheme; use Pock\Factory\JsonSerializerFactory; use Pock\Factory\XmlSerializerFactory; use Pock\Serializer\SerializerInterface; use Psr\Http\Message\RequestInterface; /** * Class PockTestCase * * @category PockTestCase * @package Pock\TestUtils */ abstract class PockTestCase extends TestCase { 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 */ protected static $psr17Factory; /** * @param string|null $method * * @return \Psr\Http\Message\RequestInterface */ protected static function getTestRequest(?string $method = null): RequestInterface { return static::getPsr17Factory()->createRequest($method ?? static::TEST_METHOD, static::TEST_URI); } /** * @return \Nyholm\Psr7\Factory\Psr17Factory */ protected static function getPsr17Factory(): Psr17Factory { if (null === static::$psr17Factory) { static::$psr17Factory = new Psr17Factory(); } return static::$psr17Factory; } protected static function getJsonSerializer(): SerializerInterface { return JsonSerializerFactory::create(); } protected static function getXmlSerializer(): SerializerInterface { return XmlSerializerFactory::create(); } }