X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fsymfony%2Fdependency-injection%2FTests%2FCompiler%2FAutowirePassTest.php;fp=vendor%2Fsymfony%2Fdependency-injection%2FTests%2FCompiler%2FAutowirePassTest.php;h=bc753a4655e4f7c13f7fb52b75b1ace0d14669d1;hp=ad89c5b9b1679f552202eccfa1593955a87041b3;hb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;hpb=aea91e65e895364e460983b890e295aa5d5540a5 diff --git a/vendor/symfony/dependency-injection/Tests/Compiler/AutowirePassTest.php b/vendor/symfony/dependency-injection/Tests/Compiler/AutowirePassTest.php index ad89c5b9b..bc753a465 100644 --- a/vendor/symfony/dependency-injection/Tests/Compiler/AutowirePassTest.php +++ b/vendor/symfony/dependency-injection/Tests/Compiler/AutowirePassTest.php @@ -15,6 +15,7 @@ use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\Compiler\AutowirePass; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; +use Symfony\Component\DependencyInjection\Tests\Fixtures\includes\FooVariadic; /** * @author Kévin Dunglas @@ -36,6 +37,23 @@ class AutowirePassTest extends TestCase $this->assertEquals('foo', (string) $container->getDefinition('bar')->getArgument(0)); } + /** + * @requires PHP 5.6 + */ + public function testProcessVariadic() + { + $container = new ContainerBuilder(); + $container->register('foo', Foo::class); + $definition = $container->register('fooVariadic', FooVariadic::class); + $definition->setAutowired(true); + + $pass = new AutowirePass(); + $pass->process($container); + + $this->assertCount(1, $container->getDefinition('fooVariadic')->getArguments()); + $this->assertEquals('foo', (string) $container->getDefinition('fooVariadic')->getArgument(0)); + } + public function testProcessAutowireParent() { $container = new ContainerBuilder(); @@ -428,6 +446,39 @@ class AutowirePassTest extends TestCase ); } + /** + * @dataProvider getCreateResourceTests + */ + public function testCreateResourceForClass($className, $isEqual) + { + $startingResource = AutowirePass::createResourceForClass( + new \ReflectionClass(__NAMESPACE__.'\ClassForResource') + ); + $newResource = AutowirePass::createResourceForClass( + new \ReflectionClass(__NAMESPACE__.'\\'.$className) + ); + + // hack so the objects don't differ by the class name + $startingReflObject = new \ReflectionObject($startingResource); + $reflProp = $startingReflObject->getProperty('class'); + $reflProp->setAccessible(true); + $reflProp->setValue($startingResource, __NAMESPACE__.'\\'.$className); + + if ($isEqual) { + $this->assertEquals($startingResource, $newResource); + } else { + $this->assertNotEquals($startingResource, $newResource); + } + } + + public function getCreateResourceTests() + { + return array( + array('IdenticalClassResource', true), + array('ClassChangedConstructorArgs', false), + ); + } + public function testIgnoreServiceWithClassNotExisting() { $container = new ContainerBuilder(); @@ -666,3 +717,26 @@ class MultipleArgumentsOptionalScalarNotReallyOptional { } } + +/* + * Classes used for testing createResourceForClass + */ +class ClassForResource +{ + public function __construct($foo, Bar $bar = null) + { + } + + public function setBar(Bar $bar) + { + } +} +class IdenticalClassResource extends ClassForResource +{ +} +class ClassChangedConstructorArgs extends ClassForResource +{ + public function __construct($foo, Bar $bar, $baz) + { + } +}