Skip to content

Commit aa9d2f5

Browse files
Merge pull request #18879 from MauricioFauth/column-controller-test
Add unit tests for ColumnController
2 parents a5850a0 + a8f4590 commit aa9d2f5

File tree

2 files changed

+47
-5
lines changed

2 files changed

+47
-5
lines changed

psalm-baseline.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -863,11 +863,6 @@
863863
<code>Config::getInstance()</code>
864864
</DeprecatedMethod>
865865
</file>
866-
<file src="src/Controllers/ColumnController.php">
867-
<PossiblyUnusedMethod>
868-
<code>__construct</code>
869-
</PossiblyUnusedMethod>
870-
</file>
871866
<file src="src/Controllers/Config/GetConfigController.php">
872867
<PossiblyUnusedMethod>
873868
<code>__construct</code>
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpMyAdmin\Tests\Controllers;
6+
7+
use PhpMyAdmin\Config;
8+
use PhpMyAdmin\Controllers\ColumnController;
9+
use PhpMyAdmin\Http\Factory\ServerRequestFactory;
10+
use PhpMyAdmin\Message;
11+
use PhpMyAdmin\Template;
12+
use PhpMyAdmin\Tests\AbstractTestCase;
13+
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
14+
use PHPUnit\Framework\Attributes\CoversClass;
15+
16+
#[CoversClass(ColumnController::class)]
17+
final class ColumnControllerTest extends AbstractTestCase
18+
{
19+
public function testColumnController(): void
20+
{
21+
$request = ServerRequestFactory::create()->createServerRequest('GET', 'http://example.com/')
22+
->withParsedBody(['db' => 'test_db', 'table' => 'test_table']);
23+
24+
$dbi = $this->createDatabaseInterface();
25+
$responseRenderer = new ResponseRenderer();
26+
$controller = new ColumnController($responseRenderer, new Template(new Config()), $dbi);
27+
$controller($request);
28+
29+
self::assertTrue($responseRenderer->hasSuccessState());
30+
self::assertSame('', $responseRenderer->getHTMLResult());
31+
self::assertSame(['columns' => ['id', 'name', 'datetimefield']], $responseRenderer->getJSONResult());
32+
}
33+
34+
public function testWithMissingParameters(): void
35+
{
36+
$request = ServerRequestFactory::create()->createServerRequest('GET', 'http://example.com/');
37+
38+
$dbi = $this->createDatabaseInterface();
39+
$responseRenderer = new ResponseRenderer();
40+
$controller = new ColumnController($responseRenderer, new Template(new Config()), $dbi);
41+
$controller($request);
42+
43+
self::assertFalse($responseRenderer->hasSuccessState());
44+
self::assertSame('', $responseRenderer->getHTMLResult());
45+
self::assertSame(['message' => Message::error()->getDisplay()], $responseRenderer->getJSONResult());
46+
}
47+
}

0 commit comments

Comments
 (0)