1
0
mirror of https://github.com/flarum/core.git synced 2025-07-16 22:31:18 +02:00

Integration tests: Add lazy server helper

This allows sending requests directly in an integration test, without
having *explicitly* booted the app.
This commit is contained in:
Franz Liedke
2020-02-07 23:28:37 +01:00
parent 94fc460240
commit 27bcdb949b

View File

@@ -16,6 +16,7 @@ use Laminas\Diactoros\CallbackStream;
use Laminas\Diactoros\ServerRequest; use Laminas\Diactoros\ServerRequest;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
abstract class TestCase extends \PHPUnit\Framework\TestCase abstract class TestCase extends \PHPUnit\Framework\TestCase
{ {
@@ -24,11 +25,6 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase
*/ */
protected $app; protected $app;
/**
* @var \Psr\Http\Server\RequestHandlerInterface
*/
protected $server;
/** /**
* @return \Flarum\Foundation\InstalledApp * @return \Flarum\Foundation\InstalledApp
*/ */
@@ -52,6 +48,20 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase
return $this->app; return $this->app;
} }
/**
* @var RequestHandlerInterface
*/
protected $server;
protected function server(): RequestHandlerInterface
{
if (is_null($this->server)) {
$this->server = $this->app()->getRequestHandler();
}
return $this->server;
}
protected $database; protected $database;
protected function database(): ConnectionInterface protected function database(): ConnectionInterface
@@ -103,7 +113,7 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase
*/ */
protected function send(ServerRequestInterface $request): ResponseInterface protected function send(ServerRequestInterface $request): ResponseInterface
{ {
return $this->server->handle($request); return $this->server()->handle($request);
} }
/** /**