minor #27915 [DependencyInjection] add missing test for #27710 (xabbuh)

This PR was merged into the 4.1 branch.

Discussion
----------

[DependencyInjection] add missing test for #27710

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/27710#pullrequestreview-131904804
| License       | MIT
| Doc PR        |

Commits
-------

a265caf041 [DependencyInjection] add missing test for #27710
This commit is contained in:
Fabien Potencier 2018-07-12 08:07:56 +02:00
commit 4f1647e6a5

View File

@ -234,6 +234,18 @@ class ValidateEnvPlaceholdersPassTest extends TestCase
$this->addToAssertionCount(1);
}
public function testEmptyConfigFromMoreThanOneSource()
{
$container = new ContainerBuilder();
$container->registerExtension(new EnvExtension(new ConfigurationWithArrayNodeRequiringOneElement()));
$container->loadFromExtension('env_extension', array());
$container->loadFromExtension('env_extension', array());
$this->doProcess($container);
$this->addToAssertionCount(1);
}
public function testDiscardedEnvInConfig(): void
{
$container = new ContainerBuilder();
@ -313,6 +325,24 @@ class EnvConfigurationWithoutRootNode implements ConfigurationInterface
}
}
class ConfigurationWithArrayNodeRequiringOneElement implements ConfigurationInterface
{
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$treeBuilder->root('env_extension')
->children()
->arrayNode('nodes')
->isRequired()
->requiresAtLeastOneElement()
->scalarPrototype()->end()
->end()
->end();
return $treeBuilder;
}
}
class EnvExtension extends Extension
{
private $configuration;
@ -335,6 +365,10 @@ class EnvExtension extends Extension
public function load(array $configs, ContainerBuilder $container)
{
if (!array_filter($configs)) {
return;
}
try {
$this->config = $this->processConfiguration($this->getConfiguration($configs, $container), $configs);
} catch (TreeWithoutRootNodeException $e) {