pock/tests/utils/PockTestCase.php

82 lines
2.1 KiB
PHP
Raw Permalink Normal View History

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
*
* @category PockTestCase
* @package Pock\TestUtils
2021-05-14 18:52:00 +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;
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;
/**
* Class PockTestCase
2021-05-14 18:52:00 +03:00
*
* @category PockTestCase
* @package Pock\TestUtils
2021-05-14 18:52:00 +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
/**
* @param string|null $method
*
2021-05-14 18:52:00 +03:00
* @return \Psr\Http\Message\RequestInterface
*/
protected static function getTestRequest(?string $method = null): RequestInterface
2021-05-14 18:52:00 +03:00
{
return static::getPsr17Factory()->createRequest($method ?? static::TEST_METHOD, static::TEST_URI);
2021-05-14 18:52:00 +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;
}
protected static function getJsonSerializer(): SerializerInterface
{
return JsonSerializerFactory::create();
}
protected static function getXmlSerializer(): SerializerInterface
{
return XmlSerializerFactory::create();
}
2021-05-14 18:52:00 +03:00
}