Переглянути джерело

Updated tests for ResolveDefinitionTemplatesPass

Amal Raghav 14 роки тому
батько
коміт
2d1ef129b2

+ 51 - 4
tests/Symfony/Tests/Component/DependencyInjection/Compiler/ResolveDefinitionTemplatesPassTest.php

@@ -3,11 +3,8 @@
 namespace Symfony\Tests\Component\DependencyInjection\Compiler;
 
 use Symfony\Component\DependencyInjection\ContainerInterface;
-
 use Symfony\Component\DependencyInjection\DefinitionDecorator;
-
 use Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass;
-
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 
 class ResolveDefinitionTemplatesPassTest extends \PHPUnit_Framework_TestCase
@@ -135,9 +132,59 @@ class ResolveDefinitionTemplatesPassTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals('foo', $def->getClass());
     }
 
+    public function testProcessIgnoreAbstractDefinitions()
+    {
+        $container = new ContainerBuilder();
+
+        $container
+            ->register('parent')
+        ;
+
+        $container
+            ->setDefinition('child', new DefinitionDecorator('parent'))
+            ->setAbstract(true)
+        ;
+
+        $pass = $this->getMockBuilder('Symfony\\Component\\DependencyInjection\\Compiler\\ResolveDefinitionTemplatesPass')
+            ->setMethods(array('resolveDefinition'))
+            ->getMock()
+        ;
+
+        $pass->expects($this->never())
+            ->method('resolveDefinition')
+        ;
+
+        $pass->process($container);
+    }
+
+    public function testProcessDontIgnoreNonAbstractDefinitions()
+    {
+        $container = new ContainerBuilder();
+
+        $container
+            ->register('parent')
+        ;
+
+        $container
+            ->setDefinition('child', new DefinitionDecorator('parent'))
+            ->setAbstract(false)
+        ;
+
+        $pass = $this->getMockBuilder('Symfony\\Component\\DependencyInjection\\Compiler\\ResolveDefinitionTemplatesPass')
+            ->setMethods(array('resolveDefinition'))
+            ->getMock()
+        ;
+
+        $pass->expects($this->once())
+            ->method('resolveDefinition')
+        ;
+
+        $pass->process($container);
+    }
+
     protected function process(ContainerBuilder $container)
     {
         $pass = new ResolveDefinitionTemplatesPass();
         $pass->process($container);
     }
-}
+}