mirror of
https://github.com/werkraum-media/thuecat.git
synced 2024-12-29 15:26:12 +01:00
Daniel Siepmann
2e4c9cc04e
* 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
76 lines
1.9 KiB
PHP
76 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);
|
|
}
|
|
}
|