Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / symfony / dependency-injection / Tests / Compiler / RegisterEnvVarProcessorsPassTest.php
diff --git a/vendor/symfony/dependency-injection/Tests/Compiler/RegisterEnvVarProcessorsPassTest.php b/vendor/symfony/dependency-injection/Tests/Compiler/RegisterEnvVarProcessorsPassTest.php
new file mode 100644 (file)
index 0000000..cddb62d
--- /dev/null
@@ -0,0 +1,88 @@
+<?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\Component\DependencyInjection\Tests\Compiler;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Component\DependencyInjection\Compiler\RegisterEnvVarProcessorsPass;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\EnvVarProcessorInterface;
+
+class RegisterEnvVarProcessorsPassTest extends TestCase
+{
+    public function testSimpleProcessor()
+    {
+        $container = new ContainerBuilder();
+        $container->register('foo', SimpleProcessor::class)->addTag('container.env_var_processor');
+
+        (new RegisterEnvVarProcessorsPass())->process($container);
+
+        $this->assertTrue($container->has('container.env_var_processors_locator'));
+        $this->assertInstanceOf(SimpleProcessor::class, $container->get('container.env_var_processors_locator')->get('foo'));
+
+        $expected = array(
+            'foo' => array('string'),
+            'base64' => array('string'),
+            'bool' => array('bool'),
+            'const' => array('bool', 'int', 'float', 'string', 'array'),
+            'file' => array('string'),
+            'float' => array('float'),
+            'int' => array('int'),
+            'json' => array('array'),
+            'resolve' => array('string'),
+            'string' => array('string'),
+        );
+
+        $this->assertSame($expected, $container->getParameterBag()->getProvidedTypes());
+    }
+
+    public function testNoProcessor()
+    {
+        $container = new ContainerBuilder();
+
+        (new RegisterEnvVarProcessorsPass())->process($container);
+
+        $this->assertFalse($container->has('container.env_var_processors_locator'));
+    }
+
+    /**
+     * @expectedException \Symfony\Component\DependencyInjection\Exception\InvalidArgumentException
+     * @expectedExceptionMessage Invalid type "foo" returned by "Symfony\Component\DependencyInjection\Tests\Compiler\BadProcessor::getProvidedTypes()", expected one of "array", "bool", "float", "int", "string".
+     */
+    public function testBadProcessor()
+    {
+        $container = new ContainerBuilder();
+        $container->register('foo', BadProcessor::class)->addTag('container.env_var_processor');
+
+        (new RegisterEnvVarProcessorsPass())->process($container);
+    }
+}
+
+class SimpleProcessor implements EnvVarProcessorInterface
+{
+    public function getEnv($prefix, $name, \Closure $getEnv)
+    {
+        return $getEnv($name);
+    }
+
+    public static function getProvidedTypes()
+    {
+        return array('foo' => 'string');
+    }
+}
+
+class BadProcessor extends SimpleProcessor
+{
+    public static function getProvidedTypes()
+    {
+        return array('foo' => 'string|foo');
+    }
+}