phpmyadmin/tests/classes/Controllers/Table/ExportRowsControllerTest.php
Maurício Meneghini Fauth ba72f543fd
Call PHPUnit static methods using static calls
Replaces $this->method() with self::method().

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-01-31 17:17:38 -03:00

92 lines
2.9 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpMyAdmin\Tests\Controllers\Table;
use PhpMyAdmin\Controllers\Table\ExportController;
use PhpMyAdmin\Controllers\Table\ExportRowsController;
use PhpMyAdmin\Current;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Template;
use PhpMyAdmin\Tests\AbstractTestCase;
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
use PHPUnit\Framework\Attributes\CoversClass;
#[CoversClass(ExportRowsController::class)]
class ExportRowsControllerTest extends AbstractTestCase
{
protected function setUp(): void
{
parent::setUp();
DatabaseInterface::$instance = $this->createDatabaseInterface();
Current::$server = 2;
$GLOBALS['single_table'] = null;
$GLOBALS['where_clause'] = null;
$_POST = [];
}
public function testExportRowsController(): void
{
$_POST['rows_to_delete'] = 'row';
$controller = $this->createMock(ExportController::class);
$controller->expects(self::once())->method('__invoke');
(new ExportRowsController(
new ResponseRenderer(),
new Template(),
$controller,
))(self::createStub(ServerRequest::class));
/** @psalm-suppress InvalidArrayOffset */
self::assertTrue($GLOBALS['single_table']);
/** @psalm-suppress InvalidArrayOffset */
self::assertSame([], $GLOBALS['where_clause']);
}
public function testWithoutRowsToDelete(): void
{
$_POST['goto'] = 'goto';
$controller = $this->createMock(ExportController::class);
$controller->expects(self::never())->method('__invoke');
$response = new ResponseRenderer();
(new ExportRowsController(
$response,
new Template(),
$controller,
))(self::createStub(ServerRequest::class));
self::assertSame(['message' => 'No row selected.'], $response->getJSONResult());
self::assertFalse($response->hasSuccessState());
/** @psalm-suppress InvalidArrayOffset */
self::assertNull($GLOBALS['single_table']);
/** @psalm-suppress InvalidArrayOffset */
self::assertNull($GLOBALS['where_clause']);
}
public function testWithRowsToDelete(): void
{
$_POST['goto'] = 'goto';
$_POST['rows_to_delete'] = ['key1' => 'row1', 'key2' => 'row2'];
$controller = $this->createMock(ExportController::class);
$controller->expects(self::once())->method('__invoke');
(new ExportRowsController(
new ResponseRenderer(),
new Template(),
$controller,
))(self::createStub(ServerRequest::class));
/** @psalm-suppress InvalidArrayOffset */
self::assertTrue($GLOBALS['single_table']);
/** @psalm-suppress InvalidArrayOffset */
self::assertSame(['row1', 'row2'], $GLOBALS['where_clause']);
}
}