Reset ResponseRenderer::$instance after test in ApplicationHandlerTest
Not resetting this value causes other tests to fail when running then in a specific order. Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
parent
d0be67b18c
commit
52b39e065d
@ -10,7 +10,6 @@ use PhpMyAdmin\Http\Handler\ApplicationHandler;
|
||||
use PhpMyAdmin\Http\Response;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PHPUnit\Framework\Attributes\BackupStaticProperties;
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
@ -19,12 +18,12 @@ use ReflectionProperty;
|
||||
#[CoversClass(ApplicationHandler::class)]
|
||||
final class ApplicationHandlerTest extends TestCase
|
||||
{
|
||||
#[BackupStaticProperties(true)]
|
||||
public function testHandleReturnsResponse(): void
|
||||
{
|
||||
$responseRendererMock = self::createMock(ResponseRenderer::class);
|
||||
$responseRendererMock->expects(self::never())->method('response');
|
||||
(new ReflectionProperty(ResponseRenderer::class, 'instance'))->setValue(null, $responseRendererMock);
|
||||
$reflectionProperty = new ReflectionProperty(ResponseRenderer::class, 'instance');
|
||||
$reflectionProperty->setValue(null, $responseRendererMock);
|
||||
$request = self::createStub(ServerRequest::class);
|
||||
$responseStub = new Response(self::createStub(ResponseInterface::class));
|
||||
$appMock = self::createMock(Application::class);
|
||||
@ -32,35 +31,38 @@ final class ApplicationHandlerTest extends TestCase
|
||||
$handler = new ApplicationHandler($appMock);
|
||||
$response = $handler->handle($request);
|
||||
self::assertSame($response, $responseStub);
|
||||
$reflectionProperty->setValue(null, null);
|
||||
}
|
||||
|
||||
#[BackupStaticProperties(true)]
|
||||
public function testHandleThrowsExit(): void
|
||||
{
|
||||
$responseStub = new Response(self::createStub(ResponseInterface::class));
|
||||
$responseRendererMock = self::createMock(ResponseRenderer::class);
|
||||
$responseRendererMock->expects(self::once())->method('response')->willReturn($responseStub);
|
||||
(new ReflectionProperty(ResponseRenderer::class, 'instance'))->setValue(null, $responseRendererMock);
|
||||
$reflectionProperty = new ReflectionProperty(ResponseRenderer::class, 'instance');
|
||||
$reflectionProperty->setValue(null, $responseRendererMock);
|
||||
$request = self::createStub(ServerRequest::class);
|
||||
$appMock = self::createMock(Application::class);
|
||||
$appMock->expects(self::once())->method('handle')->with($request)->willThrowException(new ExitException());
|
||||
$handler = new ApplicationHandler($appMock);
|
||||
$response = $handler->handle($request);
|
||||
self::assertSame($response, $responseStub);
|
||||
$reflectionProperty->setValue(null, null);
|
||||
}
|
||||
|
||||
#[BackupStaticProperties(true)]
|
||||
public function testHandleReturnsNull(): void
|
||||
{
|
||||
$responseStub = new Response(self::createStub(ResponseInterface::class));
|
||||
$responseRendererMock = self::createMock(ResponseRenderer::class);
|
||||
$responseRendererMock->expects(self::once())->method('response')->willReturn($responseStub);
|
||||
(new ReflectionProperty(ResponseRenderer::class, 'instance'))->setValue(null, $responseRendererMock);
|
||||
$reflectionProperty = new ReflectionProperty(ResponseRenderer::class, 'instance');
|
||||
$reflectionProperty->setValue(null, $responseRendererMock);
|
||||
$request = self::createStub(ServerRequest::class);
|
||||
$appMock = self::createMock(Application::class);
|
||||
$appMock->expects(self::once())->method('handle')->with($request)->willReturn(null);
|
||||
$handler = new ApplicationHandler($appMock);
|
||||
$response = $handler->handle($request);
|
||||
self::assertSame($response, $responseStub);
|
||||
$reflectionProperty->setValue(null, null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -16,7 +16,6 @@ use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Console;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Exceptions\ExitException;
|
||||
use PhpMyAdmin\Footer;
|
||||
use PhpMyAdmin\Header;
|
||||
use PhpMyAdmin\Http\Factory\ResponseFactory;
|
||||
@ -177,11 +176,6 @@ class ResponseRenderer extends \PhpMyAdmin\ResponseRenderer
|
||||
return $this->isDisabled;
|
||||
}
|
||||
|
||||
public function callExit(string $message = ''): never
|
||||
{
|
||||
throw new ExitException($message);
|
||||
}
|
||||
|
||||
public function getResponse(): Response
|
||||
{
|
||||
return $this->response;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user