Core/tests/AbstractRoutesTestCase.php

57 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace Benzine\Tests;
use Benzine\Tests\Traits\AppTestTrait;
use Psr\Http\Message\ResponseInterface;
use Slim\Psr7\Request;
abstract class AbstractRoutesTestCase extends AbstractBaseTestCase
{
use AppTestTrait;
public function setUp(): void
{
parent::setUp();
}
public function getApp()
{
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 {
/** @var Request $request */
$request = $this->createRequest($method, $path);
if ($isJsonRequest) {
if ($dataOrPost !== null) {
$dataOrPost = json_decode(json_encode($dataOrPost), true);
$request = $request->withParsedBody($dataOrPost);
}
$request = $request->withHeader('Content-Type', 'application/json');
} else {
$request->getBody()->write($dataOrPost);
$request->getBody()->rewind();
}
foreach ($extraHeaders as $key => $value) {
$request = $request->withHeader($key, $value);
}
return $this->slimApp->handle($request);
}
}