Core/tests/AbstractRoutesTestCase.php

58 lines
1.4 KiB
PHP
Raw Permalink Normal View History

<?php
2024-04-14 13:48:14 +00:00
declare(strict_types=1);
namespace Benzine\Tests;
use Benzine\Tests\Traits\AppTestTrait;
use Psr\Http\Message\ResponseInterface;
2022-06-20 20:40:06 +00:00
use Slim\Psr7\Request;
2020-09-01 03:15:02 +00:00
abstract class AbstractRoutesTestCase extends AbstractBaseTestCase
{
use AppTestTrait;
public function setUp(): void
{
parent::setUp();
}
2022-06-19 01:19:07 +00:00
public function getApp()
{
2022-06-18 00:40:03 +00:00
return $this->slimApp;
}
/**
* @deprecated this has been deprecated in favour of the calls inside AppTestTrait
*
* @param array $dataOrPost
*/
public function request(
string $method,
string $path,
$dataOrPost = null,
bool $isJsonRequest = true,
array $extraHeaders = []
): ResponseInterface {
2022-06-20 20:40:06 +00:00
/** @var Request $request */
$request = $this->createRequest($method, $path);
if ($isJsonRequest) {
if ($dataOrPost !== null) {
$dataOrPost = json_decode(json_encode($dataOrPost), true);
2024-04-14 13:48:14 +00:00
$request = $request->withParsedBody($dataOrPost);
}
$request = $request->withHeader('Content-Type', 'application/json');
2022-06-20 21:06:31 +00:00
} else {
2022-06-20 20:40:06 +00:00
$request->getBody()->write($dataOrPost);
$request->getBody()->rewind();
}
2022-06-20 21:06:31 +00:00
foreach ($extraHeaders as $key => $value) {
2022-06-19 02:11:19 +00:00
$request = $request->withHeader($key, $value);
}
return $this->slimApp->handle($request);
}
}