public function testSkipAbstract() { $containerBuilder = new ContainerBuilder(); $containerBuilder->setDefinition("someService", new Definition(self::SOME_CLASS_NAME))->setAbstract(true); $this->classMapBuildCompilerPass->process($containerBuilder); $this->assertSame([], $this->getClassMapBuildClasses()); }
public function testAutowireProperty() { $containerBuilder = new ContainerBuilder(); $autowiredServiceDefinition = $containerBuilder->setDefinition("autowiredService", new Definition("Skrz\\Bundle\\AutowiringBundle\\Tests\\DependencyInjection\\Compiler\\AutowiringCompilerPassSource\\AutowiredPropertyClass")); $containerBuilder->setDefinition("someService", new Definition("Skrz\\Bundle\\AutowiringBundle\\Tests\\DependencyInjection\\Compiler\\AutowiringCompilerPassSource\\SomeClass")); $this->assertSame([], $autowiredServiceDefinition->getProperties()); $this->classMapBuildCompilerPass->process($containerBuilder); $this->autowiringCompilerPass->process($containerBuilder); $reference = $autowiredServiceDefinition->getProperties()["property"]; $this->assertInstanceOf("Symfony\\Component\\DependencyInjection\\Reference", $reference); $this->assertSame("someservice", (string) $reference); }
public function testAutowireConstructorWithInterfaceOptionally() { $containerBuilder = new ContainerBuilder(); $service2Ref = new Reference('someService2'); $autowiredServiceDefinition = $containerBuilder->setDefinition("autowiredService", new Definition("Skrz\\Bundle\\AutowiringBundle\\Tests\\DependencyInjection\\Compiler\\AutowiringCompilerPassSource\\OptionalAutowiredClass", ['someClass2' => $service2Ref])); $containerBuilder->setDefinition("someService", new Definition("Skrz\\Bundle\\AutowiringBundle\\Tests\\DependencyInjection\\Compiler\\AutowiringCompilerPassSource\\SomeClass")); $containerBuilder->setDefinition("someService2", new Definition("Skrz\\Bundle\\AutowiringBundle\\Tests\\DependencyInjection\\Compiler\\AutowiringCompilerPassSource\\SomeClass2")); $containerBuilder->getParameterBag()->add(['autowiring.preferred_services' => ["Skrz\\Bundle\\AutowiringBundle\\Tests\\DependencyInjection\\Compiler\\AutowiringCompilerPassSource\\SomeInterface" => 'someService']]); $this->assertSame(['someClass2' => $service2Ref], $autowiredServiceDefinition->getArguments()); $this->classMapBuildCompilerPass->process($containerBuilder); $this->autowiringCompilerPass->process($containerBuilder); $arguments = $autowiredServiceDefinition->getArguments(); $this->assertNotSame([], $arguments); /** @var Reference $reference */ $reference = $arguments[0]; $this->assertInstanceOf("Symfony\\Component\\DependencyInjection\\Reference", $reference); $this->assertSame("someservice", (string) $reference); $reference = $arguments[1]; $this->assertInstanceOf("Symfony\\Component\\DependencyInjection\\Reference", $reference); $this->assertSame("someservice2", (string) $reference); }