Skip to content

Commit

Permalink
Add unit test for DatabaseInterface::getColumn()
Browse files Browse the repository at this point in the history
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
  • Loading branch information
MauricioFauth committed Feb 24, 2024
1 parent 13b3210 commit 02b6e0f
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions tests/unit/DatabaseInterfaceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

namespace PhpMyAdmin\Tests;

use PhpMyAdmin\Column;
use PhpMyAdmin\ColumnFull;
use PhpMyAdmin\Config;
use PhpMyAdmin\Config\Settings\Server;
use PhpMyAdmin\Current;
Expand All @@ -12,6 +14,7 @@
use PhpMyAdmin\Dbal\DbiExtension;
use PhpMyAdmin\Dbal\ResultInterface;
use PhpMyAdmin\Dbal\Statement;
use PhpMyAdmin\Index;
use PhpMyAdmin\LanguageManager;
use PhpMyAdmin\Query\Utilities;
use PhpMyAdmin\SqlParser\Context;
Expand All @@ -24,6 +27,8 @@
use function array_keys;

#[CoversClass(DatabaseInterface::class)]
#[CoversClass(Column::class)]
#[CoversClass(ColumnFull::class)]
class DatabaseInterfaceTest extends AbstractTestCase
{
protected function setUp(): void
Expand Down Expand Up @@ -792,4 +797,49 @@ public static function providerForTestGetLowerCaseNames(): iterable
yield 'null' => [null, 0];
yield 'false' => [false, 0];
}

public function testGetColumn(): void
{
(new ReflectionProperty(Index::class, 'registry'))->setValue(null, []);
$dbiDummy = $this->createDbiDummy();
$dbiDummy->removeDefaultResults();
$dbiDummy->addResult(
'SHOW COLUMNS FROM `test_db`.`test_table` LIKE \'test\\\\_column\'',
[['test_column', 'varchar(45)', 'NO', '', null, '']],
['Field', 'Type', 'Null', 'Key', 'Default', 'Extra'],
);
$dbiDummy->addResult('SHOW INDEXES FROM `test_db`.`test_table`', []);
$dbi = $this->createDatabaseInterface($dbiDummy);
$column = new Column('test_column', 'varchar(45)', false, '', null, '');
self::assertEquals($column, $dbi->getColumn('test_db', 'test_table', 'test_column'));
$dbiDummy->assertAllQueriesConsumed();
}

public function testGetColumnWithFullColumn(): void
{
(new ReflectionProperty(Index::class, 'registry'))->setValue(null, []);
$dbiDummy = $this->createDbiDummy();
$dbiDummy->removeDefaultResults();
$dbiDummy->addResult(
'SHOW FULL COLUMNS FROM `test_db`.`test_table` LIKE \'test\\\\_column\'',
// phpcs:ignore Generic.Files.LineLength.TooLong
[['test_column', 'varchar(45)', 'utf8mb4_general_ci', 'NO', '', null, '', 'select,insert,update,references', '']],
['Field', 'Type', 'Collation', 'Null', 'Key', 'Default', 'Extra', 'Privileges', 'Comment'],
);
$dbiDummy->addResult('SHOW INDEXES FROM `test_db`.`test_table`', []);
$dbi = $this->createDatabaseInterface($dbiDummy);
$column = new ColumnFull(
'test_column',
'varchar(45)',
'utf8mb4_general_ci',
false,
'',
null,
'',
'select,insert,update,references',
'',
);
self::assertEquals($column, $dbi->getColumn('test_db', 'test_table', 'test_column', true));
$dbiDummy->assertAllQueriesConsumed();
}
}

0 comments on commit 02b6e0f

Please sign in to comment.