1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Bundle\FrameworkBundle\Tests\Functional;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Tester\CommandTester;
#[\PHPUnit\Framework\Attributes\Group('functional')]
class ContainerLintCommandTest extends AbstractWebTestCase
{
private Application $application;
#[\PHPUnit\Framework\Attributes\DataProvider('containerLintProvider')]
public function testLintContainer(string $configFile, bool $resolveEnvVars, int $expectedExitCode, string $expectedOutput)
{
$kernel = static::createKernel([
'test_case' => 'ContainerLint',
'root_config' => $configFile,
'debug' => true,
]);
$this->application = new Application($kernel);
$tester = $this->createCommandTester();
$exitCode = $tester->execute(['--resolve-env-vars' => $resolveEnvVars]);
$this->assertSame($expectedExitCode, $exitCode);
$this->assertStringContainsString($expectedOutput, $tester->getDisplay());
}
public static function containerLintProvider(): array
{
return [
['escaped_percent.yml', false, 0, 'The container was linted successfully'],
['missing_env_var.yml', false, 0, 'The container was linted successfully'],
['missing_env_var.yml', true, 1, 'Environment variable not found: "BAR"'],
];
}
private function createCommandTester(): CommandTester
{
return new CommandTester($this->application->get('lint:container'));
}
}
|