thuecat/Tests/Functional/GuzzleClientFaker.php
Daniel Siepmann 2e4c9cc04e
Add TYPO3 v11 support (#60)
* Support generation of code coverage generation
* Remove useless caching within GitHub
* Add TYPO3 11.5 within CI
* Update phpstan

Replace friendsoftypo3/phpstan-typo3 with saschaegerer/phpstan.
The friendsoftypo3 is intended for TYPO3 itself, while saschaegerer is
intended for community.
Also update all related packages.
Fix some new findings and update baseline.

* Run composer none interactive in CI
* Remove dependency checker
* Migrate tests to no longer use legacy dependencies
* https://forge.typo3.org/issues/97479
* Fix phpstan findings
2022-09-13 09:05:47 +02:00

77 lines
1.9 KiB
PHP

<?php
declare(strict_types=1);
namespace WerkraumMedia\ThueCat\Tests\Functional;
use GuzzleHttp\Handler\MockHandler;
use GuzzleHttp\Psr7\Response;
use Symfony\Component\HttpFoundation\Response as SymfonyResponse;
class GuzzleClientFaker
{
/**
* @var MockHandler
*/
private static $mockHandler;
public static function registerClient(): void
{
self::getMockHandler()->reset();
$GLOBALS['TYPO3_CONF_VARS']['HTTP']['handler']['faker'] = function (callable $handler) {
return self::getMockHandler();
};
}
/**
* Cleans things up, call it in tests tearDown() method.
*/
public static function tearDown(): void
{
self::getMockHandler()->reset();
unset($GLOBALS['TYPO3_CONF_VARS']['HTTP']['handler']['faker']);
}
/**
* Adds a new response to the stack with defaults, returning the file contents of given file.
*/
public static function appendResponseFromFile(string $fileName): void
{
$fileContent = file_get_contents($fileName);
if ($fileContent === false) {
throw new \Exception('Could not load file: ' . $fileName, 1656485162);
}
self::appendResponseFromContent($fileContent);
}
public static function appendNotFoundResponse(): void
{
self::appendResponse(new Response(SymfonyResponse::HTTP_NOT_FOUND));
}
private static function appendResponseFromContent(string $content): void
{
self::appendResponse(new Response(
SymfonyResponse::HTTP_OK,
[],
$content
));
}
private static function getMockHandler(): MockHandler
{
if (!self::$mockHandler instanceof MockHandler) {
self::$mockHandler = new MockHandler();
}
return self::$mockHandler;
}
private static function appendResponse(Response $response): void
{
self::getMockHandler()->append($response);
}
}