createDbiDummy(); $dbiDummy->addSelectDb('test_db'); $dbiDummy->addResult('SHOW TABLES FROM `test_db`;', [['test_table']], ['Tables_in_test_db']); $request = ServerRequestFactory::create()->createServerRequest('GET', 'https://example.com/') ->withQueryParams(['route' => '/database/export', 'db' => 'test_db']); $response = ($this->getExportController($dbiDummy))($request); $dbiDummy->assertAllSelectsConsumed(); $dbiDummy->assertAllQueriesConsumed(); self::assertSame(StatusCodeInterface::STATUS_OK, $response->getStatusCode()); self::assertStringEqualsFile( __DIR__ . '/Fixtures/Export-testController.html', (string) $response->getBody(), ); } private function getExportController(DbiDummy $dbiDummy): ExportController { $config = new Config(); $dbi = $this->createDatabaseInterface($dbiDummy, $config); $responseRenderer = new ResponseRenderer(); $relation = new Relation($dbi, $config); $userPreferences = new UserPreferences($dbi, $relation, new Template($config), $config, new Clock()); $userPreferencesHandler = new UserPreferencesHandler( $config, $dbi, $userPreferences, new LanguageManager($config), new ThemeManager(), ); return new ExportController( $responseRenderer, new Export($dbi, new OutputHandler()), new Options($relation, new TemplateModel($dbi), $userPreferencesHandler), new PageSettings($userPreferences, $responseRenderer), new DbTableExists($dbi), ); } }