57 lines
1.4 KiB
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);
|
|
}
|
|
}
|