Translated using Weblate (Portuguese)
[phpmyadmin.git] / tests / unit / DbTableExistsTest.php
blob863ef093bf93212c985578141abdf7d94c70f704
1 <?php
3 declare(strict_types=1);
5 namespace PhpMyAdmin\Tests;
7 use PhpMyAdmin\Dbal\DatabaseInterface;
8 use PhpMyAdmin\DbTableExists;
9 use PhpMyAdmin\Identifiers\DatabaseName;
10 use PhpMyAdmin\Identifiers\TableName;
11 use PHPUnit\Framework\Attributes\CoversClass;
13 #[CoversClass(DbTableExists::class)]
14 final class DbTableExistsTest extends AbstractTestCase
16 public function testHasDatabase(): void
18 $dbiDummy = $this->createDbiDummy();
19 $dbiDummy->removeDefaultResults();
20 $dbiDummy->addSelectDb('test_db');
21 $dbi = $this->createDatabaseInterface($dbiDummy);
22 $dbTableExists = new DbTableExists($dbi);
23 self::assertTrue($dbTableExists->selectDatabase(DatabaseName::from('test_db')));
24 $dbiDummy->assertAllSelectsConsumed();
27 public function testHasDatabaseWithNoDatabase(): void
29 $db = DatabaseName::from('test_db');
30 $dbi = self::createMock(DatabaseInterface::class);
31 $dbi->expects(self::once())->method('selectDb')->with($db)->willReturn(false);
32 $dbTableExists = new DbTableExists($dbi);
33 self::assertFalse($dbTableExists->selectDatabase($db));
36 public function testHasTable(): void
38 $dbiDummy = $this->createDbiDummy();
39 $dbiDummy->removeDefaultResults();
40 $dbiDummy->addResult('SELECT 1 FROM `test_db`.`test_table` LIMIT 1;', [['1']], ['1']);
41 $dbi = $this->createDatabaseInterface($dbiDummy);
42 $dbTableExists = new DbTableExists($dbi);
43 self::assertTrue($dbTableExists->hasTable(DatabaseName::from('test_db'), TableName::from('test_table')));
44 // cached result
45 self::assertTrue($dbTableExists->hasTable(DatabaseName::from('test_db'), TableName::from('test_table')));
46 $dbiDummy->assertAllQueriesConsumed();
49 public function testHasTableWithTempTable(): void
51 $dbiDummy = $this->createDbiDummy();
52 $dbiDummy->removeDefaultResults();
53 $dbiDummy->addResult('SELECT 1 FROM `test_db`.`test_table` LIMIT 1;', [['1']], ['1']);
54 $dbi = $this->createDatabaseInterface($dbiDummy);
55 $dbTableExists = new DbTableExists($dbi);
56 self::assertTrue($dbTableExists->hasTable(DatabaseName::from('test_db'), TableName::from('test_table')));
57 // cached result
58 self::assertTrue($dbTableExists->hasTable(DatabaseName::from('test_db'), TableName::from('test_table')));
59 $dbiDummy->assertAllQueriesConsumed();
62 public function testHasTableWithNoTable(): void
64 $dbiDummy = $this->createDbiDummy();
65 $dbiDummy->removeDefaultResults();
66 $dbiDummy->addResult('SELECT 1 FROM `test_db`.`test_table` LIMIT 1;', false);
67 $dbi = $this->createDatabaseInterface($dbiDummy);
68 $dbTableExists = new DbTableExists($dbi);
69 self::assertFalse($dbTableExists->hasTable(DatabaseName::from('test_db'), TableName::from('test_table')));
70 $dbiDummy->assertAllQueriesConsumed();