Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / symfony / dependency-injection / Tests / Compiler / ResolveChildDefinitionsPassTest.php
index 18c0fb7c5987fc6e680bb6c60d9464ae45137616..1575bd7b07751e015acffac2a5e79b90949e8547 100644 (file)
@@ -260,23 +260,23 @@ class ResolveChildDefinitionsPassTest extends TestCase
         $this->process($container);
 
         $configurator = $container->getDefinition('sibling')->getConfigurator();
-        $this->assertSame('Symfony\Component\DependencyInjection\Definition', get_class($configurator));
+        $this->assertSame('Symfony\Component\DependencyInjection\Definition', \get_class($configurator));
         $this->assertSame('parentClass', $configurator->getClass());
 
         $factory = $container->getDefinition('sibling')->getFactory();
-        $this->assertSame('Symfony\Component\DependencyInjection\Definition', get_class($factory[0]));
+        $this->assertSame('Symfony\Component\DependencyInjection\Definition', \get_class($factory[0]));
         $this->assertSame('parentClass', $factory[0]->getClass());
 
         $argument = $container->getDefinition('sibling')->getArgument(0);
-        $this->assertSame('Symfony\Component\DependencyInjection\Definition', get_class($argument));
+        $this->assertSame('Symfony\Component\DependencyInjection\Definition', \get_class($argument));
         $this->assertSame('parentClass', $argument->getClass());
 
         $properties = $container->getDefinition('sibling')->getProperties();
-        $this->assertSame('Symfony\Component\DependencyInjection\Definition', get_class($properties['prop']));
+        $this->assertSame('Symfony\Component\DependencyInjection\Definition', \get_class($properties['prop']));
         $this->assertSame('parentClass', $properties['prop']->getClass());
 
         $methodCalls = $container->getDefinition('sibling')->getMethodCalls();
-        $this->assertSame('Symfony\Component\DependencyInjection\Definition', get_class($methodCalls[0][1][0]));
+        $this->assertSame('Symfony\Component\DependencyInjection\Definition', \get_class($methodCalls[0][1][0]));
         $this->assertSame('parentClass', $methodCalls[0][1][0]->getClass());
     }
 
@@ -431,4 +431,21 @@ class ResolveChildDefinitionsPassTest extends TestCase
         $pass = new ResolveChildDefinitionsPass();
         $pass->process($container);
     }
+
+    /**
+     * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
+     * @expectedExceptionMessageRegExp /^Circular reference detected for service "c", path: "c -> b -> a -> c"./
+     */
+    public function testProcessDetectsChildDefinitionIndirectCircularReference()
+    {
+        $container = new ContainerBuilder();
+
+        $container->register('a');
+
+        $container->setDefinition('b', new ChildDefinition('a'));
+        $container->setDefinition('c', new ChildDefinition('b'));
+        $container->setDefinition('a', new ChildDefinition('c'));
+
+        $this->process($container);
+    }
 }