10000 Fix merge · symfony/symfony@87db587 · GitHub
[go: up one dir, main page]

Skip to content

Commit 87db587

Browse files
Fix merge
1 parent 144eb54 commit 87db587

File tree

1 file changed

+2
-222
lines changed

1 file changed

+2
-222
lines changed

src/Symfony/Component/DependencyInjection/Tests/Compiler/AutowirePassTest.php

Lines changed: 2 additions & 222 deletions
Original file line numberDiff line numberDiff line change
@@ -211,13 +211,13 @@ public function testCreateDefinition()
211211
$pass->process($container);
212212

213213
$this->assertCount(1, $container->getDefinition('coop_tilleuls')->getArguments());
214-
$this->assertEquals('autowired.Symfony\Component\DependencyInjection\Tests\Compiler\Dunglas', $container->getDefinition('coop_tilleuls')->getArgument(0));
214+
$this->assertEquals('autowired.symfony\component\dependencyinjection\tests\compiler\dunglas', $container->getDefinition('coop_tilleuls')->getArgument(0));
215215

216216
$dunglasDefinition = $container->getDefinition('autowired.Symfony\Component\DependencyInjection\Tests\Compiler\Dunglas');
217217
$this->assertEquals(__NAMESPACE__.'\Dunglas', $dunglasDefinition->getClass());
218218
$this->assertFalse($dunglasDefinition->isPublic());
219219
$this->assertCount(1, $dunglasDefinition->getArguments());
220-
$this->assertEquals('autowired.Symfony\Component\DependencyInjection\Tests\Compiler\Lille', $dunglasDefinition->getArgument(0));
220+
$this->assertEquals('autowired.symfony\component\dependencyinjection\tests\compiler\lille', $dunglasDefinition->getArgument(0));
221221

222222
$lilleDefinition = $container->getDefinition('autowired.Symfony\Component\DependencyInjection\Tests\Compiler\Lille');
223223
$this->assertEquals(__NAMESPACE__.'\Lille', $lilleDefinition->getClass());
@@ -429,107 +429,6 @@ public function testOptionalScalarArgsNotPassedIfLast()
429429
);
430430
}
431431

432-
public function testSetterInjection()
433-
{
434-
$container = new ContainerBuilder();
435-
$container->register('app_foo', Foo::class);
436-
$container->register('app_a', A::class);
437-
$container->register('app_collision_a', CollisionA::class);
438-
$container->register('app_collision_b', CollisionB::class);
439-
440-
// manually configure *one* call, to override autowiring
441-
$container
442-
->register('setter_injection', SetterInjection::class)
443-
->setAutowiredMethods(array('__construct', 'set*'))
444-
->addMethodCall('setWithCallsConfigured', array('manual_arg1', 'manual_arg2'))
445-
;
446-
447-
$pass = new AutowirePass();
448-
$pass->process($container);
449-
450-
$methodCalls = $container->getDefinition('setter_injection')->getMethodCalls();
451-
452-
// grab the call method names
453-
$actualMethodNameCalls = array_map(function ($call) {
454-
return $call[0];
455-
}, $methodCalls);
456-
$this->assertEquals(
457-
array('setWithCallsConfigured', 'setFoo', 'setDependencies'),
458-
$actualMethodNameCalls
459-
);
460-
461-
// test setWithCallsConfigured args
462-
$this->assertEquals(
463-
array('manual_arg1', 'manual_arg2'),
464-
$methodCalls[0][1]
465-
);
466-
// test setFoo args
467-
$this->assertEquals(
468-
array(new Reference('app_foo')),
469-
$methodCalls[1][1]
470-
);
471-
}
472-
473-
public function testExplicitMethodInjection()
474-
{
475-
$container = new ContainerBuilder();
476-
$container->register('app_foo', Foo::class);
477-
$container->register('app_a', A::class);
478-
$container->register('app_collision_a', CollisionA::class);
479-
$container->register('app_collision_b', CollisionB::class);
480-
481-
$container
482-
->register('setter_injection', SetterInjection::class)
483-
->setAutowiredMethods(array('setFoo', 'notASetter'))
484-
;
485-
486-
$pass = new AutowirePass();
487-
$pass->process($container);
488-
489-
$methodCalls = $container->getDefinition('setter_injection')->getMethodCalls();
490-
491-
$actualMethodNameCalls = array_map(function ($call) {
492-
return $call[0];
493-
}, $methodCalls);
494-
$this->assertEquals(
495-
array('setFoo', 'notASetter'),
496-
$actualMethodNameCalls
497-
);
498-
}
499-
500-
/**
501-
* @dataProvider getCreateResourceTests
502-
*/
503-
public function testCreateResourceForClass($className, $isEqual)
504-
{
505-
$startingResource = AutowirePass::createResourceForClass(
506-
new \ReflectionClass(__NAMESPACE__.'\ClassForResource')
507-
);
508-
$newResource = AutowirePass::createResourceForClass(
509-
new \ReflectionClass(__NAMESPACE__.'\\'.$className)
510-
);
511-
512-
// hack so the objects don't differ by the class name
513-
$startingReflObject = new \ReflectionObject($startingResource);
514-
$reflProp = $startingReflObject->getProperty('class');
515-
$reflProp->setAccessible(true);
516-
$reflProp->setValue($startingResource, __NAMESPACE__.'\\'.$className);
517-
518-
if ($isEqual) {
519-
$this->assertEquals($startingResource, $newResource);
520-
} else {
521-
$this->assertNotEquals($startingResource, $newResource);
522-
}
523-
}
524-
525-
public function getCreateResourceTests()
526-
{
527-
return array(
528-
array('IdenticalClassResource', true),
529-
array('ClassChangedConstructorArgs', false),
530-
);
531-
}
532-
533432
public function testIgnoreServiceWithClassNotExisting()
534433
{
535434
$container = new ContainerBuilder();
@@ -544,37 +443,6 @@ public function testIgnoreServiceWithClassNotExisting()
544443

545444
$this->assertTrue($container->hasDefinition('bar'));
546445
}
547-
548-
/**
549-
* @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException
550-
* @expectedExceptionMessage Unable to autowire argument of type "Symfony\Component\DependencyInjection\Tests\Compiler\CollisionInterface" for the service "setter_injection_collision". Multiple services exist for this interface (c1, c2).
551-
* @expectedExceptionCode 1
552-
*/
553-
public function testSetterInjectionCollisionThrowsException()
554-
{
555-
$container = new ContainerBuilder();
556-
557-
$container->register('c1', CollisionA::class);
558-
$container->register('c2', CollisionB::class);
559-
$aDefinition = $container->register('setter_injection_collision', SetterInjectionCollision::class);
560-
$aDefinition->setAutowiredMethods(array('__construct', 'set*'));
561-
562-
$pass = new AutowirePass();
563-
$pass->process($container);
564-
}
565-
566-
public function testLogUnusedPatterns()
567-
{
568-
$container = new ContainerBuilder();
569-
570-
$definition = $container->register('foo', Foo::class);
571-
$definition->setAutowiredMethods(array('not', 'exist*'));
572-
573-
$pass = new AutowirePass();
574-
$pass->process($container);
575-
576-
$this->assertEquals(array(AutowirePass::class.': Autowiring\'s patterns "not", "exist*" for service "foo" don\'t match any method.'), $container->getCompiler()->getLog());
577-
}
578446
}
579447

580448
class Foo
@@ -730,91 +598,3 @@ public function __construct(A $a, $foo = 'default_val', Lille $lille)
730598
{
731599
}
732600
}
733-
734-
/*
735-
* Classes used for testing createResourceForClass
736-
*/
737-
class ClassForResource
738-
{
739-
public function __construct($foo, Bar $bar = null)
740-
{
741-
}
742-
743-
public function setBar(Bar $bar)
744-
{
745-
}
746-
}
747-
class IdenticalClassResource extends ClassForResource
748-
{
749-
}
750-
751-
class ClassChangedConstructorArgs extends ClassForResource
752-
{
753-
public function __construct($foo, Bar $bar, $baz)
754-
{
755-
}
756-
}
757-
758-
class SetterInjection
759-
{
760-
public function setFoo(Foo $foo)
761-
{
762-
// should be called
763-
}
764-
765-
public function setDependencies(Foo $foo, A $a)
766-
{
767-
// should be called
768-
}
769-
770-
public function setBar()
771-
{
772-
// should not be called
773-
}
774-
775-
public function setNotAutowireable(NotARealClass $n)
776-
{
777-
// should not be called
778-
}
779-
780-
public function setArgCannotAutowire($foo)
781-
{
782-
// should not be called
783-
}
784-
785-
public function setOptionalNotAutowireable(NotARealClass $n = null)
786-
{
787-
// should not be called
788-
}
789-
790-
public function setOptionalNoTypeHint($foo = null)
791-
{
792-
// should not be called
793-
}
794-
795-
public function setOptionalArgNoAutowireable($other = 'default_val')
796-
{
797-
// should not be called
798-
}
799-
800-
public function setWithCallsConfigured(A $a)
801-
{
802-
// this method has a calls configured on it
803-
// should not be called
804-
}
805-
806-
public function notASetter(A $a)
807-
{
808-
// should be called only when explicitly specified
809-
}
810-
}
811-
812-
class SetterInjectionCollision
813-
{
814-
public function setMultipleInstancesForOneArg(CollisionInterface $collision)
815-
{
816-
// The CollisionInterface cannot be autowired - there are multiple
817-
818-
// should throw an exception
819-
}
820-
}

0 commit comments

Comments
 (0)
0