Visitar URL original
Refactor the DatabaseInterfaceTest test class · phpmyadmin/phpmyadmin@da7c7a8 · GitHub
Skip to content

Commit da7c7a8

Browse files
committed
Refactor the DatabaseInterfaceTest test class
Inline the dbi and dummyDbi properties. Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
1 parent 3e67274 commit da7c7a8

1 file changed

Lines changed: 73 additions & 63 deletions

File tree

‎test/classes/DatabaseInterfaceTest.php‎

Lines changed: 73 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,6 @@
1818
*/
1919
class DatabaseInterfaceTest extends AbstractTestCase
2020
{
21-
/**
22-
* Configures test parameters.
23-
*/
24-
protected function setUp(): void
25-
{
26-
parent::setUp();
27-
parent::setGlobalDbi();
28-
$GLOBALS['server'] = 0;
29-
}
30-
3121
/**
3222
* Tests for DBI::getCurrentUser() method.
3323
*
@@ -40,24 +30,21 @@ protected function setUp(): void
4030
*/
4131
public function testGetCurrentUser($value, string $string, array $expected, bool $needsSecondCall): void
4232
{
33+
$dummyDbi = $this->createDbiDummy();
34+
$dbi = $this->createDatabaseInterface($dummyDbi);
35+
4336
SessionCache::remove('mysql_cur_user');
4437

45-
$this->dummyDbi->addResult('SELECT CURRENT_USER();', $value);
38+
$dummyDbi->addResult('SELECT CURRENT_USER();', $value);
4639
if ($needsSecondCall) {
47-
$this->dummyDbi->addResult('SELECT CURRENT_USER();', $value);
40+
$dummyDbi->addResult('SELECT CURRENT_USER();', $value);
4841
}
4942

50-
$this->assertEquals(
51-
$expected,
52-
$this->dbi->getCurrentUserAndHost()
53-
);
43+
$this->assertEquals($expected, $dbi->getCurrentUserAndHost());
5444

55-
$this->assertEquals(
56-
$string,
57-
$this->dbi->getCurrentUser()
58-
);
45+
$this->assertEquals($string, $dbi->getCurrentUser());
5946

60-
$this->assertAllQueriesConsumed();
47+
$dummyDbi->assertAllQueriesConsumed();
6148
}
6249

6350
/**
@@ -103,7 +90,10 @@ public function currentUserData(): array
10390
*/
10491
public function testPMAGetColumnMap(): void
10592
{
106-
$this->dummyDbi->addResult(
93+
$dummyDbi = $this->createDbiDummy();
94+
$dbi = $this->createDatabaseInterface($dummyDbi);
95+
96+
$dummyDbi->addResult(
10797
'PMA_sql_query',
10898
[true],
10999
[],
@@ -125,7 +115,7 @@ public function testPMAGetColumnMap(): void
125115
'view_columns2',
126116
];
127117

128-
$column_map = $this->dbi->getColumnMapFromSql($sql_query, $view_columns);
118+
$column_map = $dbi->getColumnMapFromSql($sql_query, $view_columns);
129119

130120
$this->assertEquals(
131121
[
@@ -144,15 +134,16 @@ public function testPMAGetColumnMap(): void
144134
$column_map[1]
145135
);
146136

147-
$this->assertAllQueriesConsumed();
137+
$dummyDbi->assertAllQueriesConsumed();
148138
}
149139

150140
/**
151141
* Tests for DBI::getSystemDatabase() method.
152142
*/
153143
public function testGetSystemDatabase(): void
154144
{
155-
$sd = $this->dbi->getSystemDatabase();
145+
$dbi = $this->createDatabaseInterface();
146+
$sd = $dbi->getSystemDatabase();
156147
$this->assertInstanceOf(SystemDatabase::class, $sd);
157148
}
158149

@@ -161,14 +152,16 @@ public function testGetSystemDatabase(): void
161152
*/
162153
public function testPostConnectControl(): void
163154
{
164-
parent::setGlobalDbi();
165-
$this->dummyDbi->addResult(
155+
$dummyDbi = $this->createDbiDummy();
156+
$dbi = $this->createDatabaseInterface($dummyDbi);
157+
158+
$dummyDbi->addResult(
166159
'SHOW TABLES FROM `phpmyadmin`;',
167160
[]
168161
);
169162
$GLOBALS['db'] = '';
170163
$GLOBALS['cfg']['Server']['only_db'] = [];
171-
$this->dbi->postConnectControl(new Relation($this->dbi));
164+
$dbi->postConnectControl(new Relation($dbi));
172165
$this->assertInstanceOf(DatabaseList::class, $GLOBALS['dblist']);
173166
}
174167

@@ -177,19 +170,21 @@ public function testPostConnectControl(): void
177170
*/
178171
public function testGetDbCollation(): void
179172
{
173+
$dbi = $this->createDatabaseInterface();
174+
180175
$GLOBALS['server'] = 1;
181176
// test case for system schema
182177
$this->assertEquals(
183178
'utf8_general_ci',
184-
$this->dbi->getDbCollation('information_schema')
179+
$dbi->getDbCollation('information_schema')
185180
);
186181

187182
$GLOBALS['cfg']['Server']['DisableIS'] = false;
188183
$GLOBALS['cfg']['DBG']['sql'] = false;
189184

190185
$this->assertEquals(
191186
'utf8_general_ci',
192-
$this->dbi->getDbCollation('pma_test')
187+
$dbi->getDbCollation('pma_test')
193188
);
194189
}
195190

@@ -198,9 +193,10 @@ public function testGetDbCollation(): void
198193
*/
199194
public function testGetServerCollation(): void
200195
{
196+
$dbi = $this->createDatabaseInterface();
201197
$GLOBALS['server'] = 1;
202198
$GLOBALS['cfg']['DBG']['sql'] = true;
203-
$this->assertEquals('utf8_general_ci', $this->dbi->getServerCollation());
199+
$this->assertEquals('utf8_general_ci', $dbi->getServerCollation());
204200
}
205201

206202
/**
@@ -266,16 +262,19 @@ public function errorData(): array
266262
*/
267263
public function testIsAmazonRdsData(array $value, bool $expected): void
268264
{
265+
$dummyDbi = $this->createDbiDummy();
266+
$dbi = $this->createDatabaseInterface($dummyDbi);
267+
269268
SessionCache::remove('is_amazon_rds');
270269

271-
$this->dummyDbi->addResult('SELECT @@basedir', $value);
270+
$dummyDbi->addResult('SELECT @@basedir', $value);
272271

273272
$this->assertEquals(
274273
$expected,
275-
$this->dbi->isAmazonRds()
274+
$dbi->isAmazonRds()
276275
);
277276

278-
$this->assertAllQueriesConsumed();
277+
$dummyDbi->assertAllQueriesConsumed();
279278
}
280279

281280
/**
@@ -358,23 +357,28 @@ public function versionData(): array
358357
*/
359358
public function testSetCollation(): void
360359
{
361-
$this->dummyDbi->addResult('SET collation_connection = \'utf8_czech_ci\';', [true]);
362-
$this->dummyDbi->addResult('SET collation_connection = \'utf8mb4_bin_ci\';', [true]);
363-
$this->dummyDbi->addResult('SET collation_connection = \'utf8_czech_ci\';', [true]);
364-
$this->dummyDbi->addResult('SET collation_connection = \'utf8_bin_ci\';', [true]);
360+
$dummyDbi = $this->createDbiDummy();
361+
$dbi = $this->createDatabaseInterface($dummyDbi);
362+
363+
$dummyDbi->addResult('SET collation_connection = \'utf8_czech_ci\';', [true]);
364+
$dummyDbi->addResult('SET collation_connection = \'utf8mb4_bin_ci\';', [true]);
365+
$dummyDbi->addResult('SET collation_connection = \'utf8_czech_ci\';', [true]);
366+
$dummyDbi->addResult('SET collation_connection = \'utf8_bin_ci\';', [true]);
365367

366368
$GLOBALS['charset_connection'] = 'utf8mb4';
367-
$this->dbi->setCollation('utf8_czech_ci');
368-
$this->dbi->setCollation('utf8mb4_bin_ci');
369+
$dbi->setCollation('utf8_czech_ci');
370+
$dbi->setCollation('utf8mb4_bin_ci');
369371
$GLOBALS['charset_connection'] = 'utf8';
370-
$this->dbi->setCollation('utf8_czech_ci');
371-
$this->dbi->setCollation('utf8mb4_bin_ci');
372+
$dbi->setCollation('utf8_czech_ci');
373+
$dbi->setCollation('utf8mb4_bin_ci');
372374

373-
$this->assertAllQueriesConsumed();
375+
$dummyDbi->assertAllQueriesConsumed();
374376
}
375377

376378
public function testGetTablesFull(): void
377379
{
380+
$dbi = $this->createDatabaseInterface();
381+
378382
$GLOBALS['cfg']['Server']['DisableIS'] = true;
379383

380384
$expected = [
@@ -423,12 +427,14 @@ public function testGetTablesFull(): void
423427
],
424428
];
425429

426-
$actual = $this->dbi->getTablesFull('test_db');
430+
$actual = $dbi->getTablesFull('test_db');
427431
$this->assertEquals($expected, $actual);
428432
}
429433

430434
public function testGetTablesFullWithInformationSchema(): void
431435
{
436+
$dbi = $this->createDatabaseInterface();
437+
432438
$GLOBALS['cfg']['Server']['DisableIS'] = false;
433439

434440
$expected = [
@@ -479,7 +485,7 @@ public function testGetTablesFullWithInformationSchema(): void
479485
],
480486
];
481487

482-
$actual = $this->dbi->getTablesFull('test_db');
488+
$actual = $dbi->getTablesFull('test_db');
483489
$this->assertEquals($expected, $actual);
484490
}
485491

@@ -488,25 +494,29 @@ public function testGetTablesFullWithInformationSchema(): void
488494
*/
489495
public function testQueryAsControlUser(): void
490496
{
497+
$dummyDbi = $this->createDbiDummy();
498+
$dbi = $this->createDatabaseInterface($dummyDbi);
499+
491500
$sql = 'insert into PMA_bookmark A,B values(1, 2)';
492-
$this->dummyDbi->addResult($sql, [true]);
493-
$this->dummyDbi->addResult($sql, [true]);
494-
$this->dummyDbi->addResult('Invalid query', false);
501+
$dummyDbi->addResult($sql, [true]);
502+
$dummyDbi->addResult($sql, [true]);
503+
$dummyDbi->addResult('Invalid query', false);
495504

496505
$this->assertInstanceOf(
497506
ResultInterface::class,
498-
$this->dbi->queryAsControlUser($sql)
507+
$dbi->queryAsControlUser($sql)
499508
);
500509
$this->assertInstanceOf(
501510
ResultInterface::class,
502-
$this->dbi->tryQueryAsControlUser($sql)
511+
$dbi->tryQueryAsControlUser($sql)
503512
);
504-
$this->assertFalse($this->dbi->tryQueryAsControlUser('Invalid query'));
513+
$this->assertFalse($dbi->tryQueryAsControlUser('Invalid query'));
505514
}
506515

507516
public function testGetDatabasesFullDisabledISAndSortIntColumn(): void
508517
{
509-
parent::setGlobalDbi();
518+
$dummyDbi = $this->createDbiDummy();
519+
$dbi = $this->createDatabaseInterface($dummyDbi);
510520

511521
$GLOBALS['db'] = '';
512522
$GLOBALS['table'] = '';
@@ -518,22 +528,22 @@ public function testGetDatabasesFullDisabledISAndSortIntColumn(): void
518528
'db1',
519529
'db2',
520530
];
521-
$this->dummyDbi->removeDefaultResults();
522-
$this->dummyDbi->addResult(
531+
$dummyDbi->removeDefaultResults();
532+
$dummyDbi->addResult(
523533
'SELECT @@collation_database',
524534
[
525535
['utf8_general_ci'],
526536
],
527537
['@@collation_database']
528538
);
529-
$this->dummyDbi->addResult(
539+
$dummyDbi->addResult(
530540
'SELECT @@collation_database',
531541
[
532542
['utf8_general_ci'],
533543
],
534544
['@@collation_database']
535545
);
536-
$this->dummyDbi->addResult(
546+
$dummyDbi->addResult(
537547
'SHOW TABLE STATUS FROM `db1`;',
538548
[
539549
[
@@ -597,7 +607,7 @@ public function testGetDatabasesFullDisabledISAndSortIntColumn(): void
597607
]
598608
);
599609

600-
$this->dummyDbi->addResult(
610+
$dummyDbi->addResult(
601611
'SHOW TABLE STATUS FROM `db2`;',
602612
[
603613
[
@@ -660,12 +670,12 @@ public function testGetDatabasesFullDisabledISAndSortIntColumn(): void
660670
'Comment',
661671
]
662672
);
663-
$this->dummyDbi->addSelectDb('');
664-
$this->dummyDbi->addSelectDb('');
665-
$this->dummyDbi->addSelectDb('db1');
666-
$this->dummyDbi->addSelectDb('db2');
673+
$dummyDbi->addSelectDb('');
674+
$dummyDbi->addSelectDb('');
675+
$dummyDbi->addSelectDb('db1');
676+
$dummyDbi->addSelectDb('db2');
667677

668-
$databaseList = $this->dbi->getDatabasesFull(
678+
$databaseList = $dbi->getDatabasesFull(
669679
null,
670680
true,
671681
DatabaseInterface::CONNECT_USER,
@@ -700,6 +710,6 @@ public function testGetDatabasesFullDisabledISAndSortIntColumn(): void
700710
],
701711
], $databaseList);
702712

703-
$this->assertAllQueriesConsumed();
713+
$dummyDbi->assertAllQueriesConsumed();
704714
}
705715
}

0 commit comments

Comments
 (0)