3 declare(strict_types
=1);
5 namespace PhpMyAdmin\Tests
;
7 use PhpMyAdmin\Application
;
9 use PhpMyAdmin\Container\ContainerBuilder
;
10 use PhpMyAdmin\Error\ErrorHandler
;
11 use PhpMyAdmin\Exceptions\ConfigException
;
12 use PhpMyAdmin\Http\Factory\ResponseFactory
;
13 use PhpMyAdmin\Template
;
14 use PHPUnit\Framework\Attributes\BackupStaticProperties
;
15 use PHPUnit\Framework\Attributes\CoversClass
;
17 #[CoversClass(Application::class)]
18 final class ApplicationTest
extends AbstractTestCase
20 public function testInit(): void
22 $application = ContainerBuilder
::getContainer()->get(Application
::class);
23 self
::assertInstanceOf(Application
::class, $application);
24 self
::assertSame($application, Application
::init());
27 #[BackupStaticProperties(true)]
28 public function testRunWithConfigError(): void
30 $errorHandler = self
::createStub(ErrorHandler
::class);
32 $config = self
::createMock(Config
::class);
33 $config->expects(self
::once())->method('loadFromFile')
34 ->willThrowException(new ConfigException('Failed to load phpMyAdmin configuration.'));
35 $config->config
= new Config\
Settings([]);
37 $template = new Template($config);
38 $expected = $template->render('error/generic', [
40 'error_message' => 'Failed to load phpMyAdmin configuration.',
43 $application = new Application($errorHandler, $config, $template, ResponseFactory
::create());
46 $output = $this->getActualOutputForAssertion();
47 self
::assertSame($expected, $output);