From d47c57cd6118189b065467807890069571e19d0c Mon Sep 17 00:00:00 2001 From: Michael Schiller Date: Wed, 22 Jan 2014 17:44:54 +0100 Subject: [PATCH 1/3] [BUGFIX] DI fails with CompilerDefinition; solves zendframework/zf2#5738 - Test --- test/Definition/CompilerDefinitionTest.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/Definition/CompilerDefinitionTest.php b/test/Definition/CompilerDefinitionTest.php index 4b9d54f0..59d3e7ad 100644 --- a/test/Definition/CompilerDefinitionTest.php +++ b/test/Definition/CompilerDefinitionTest.php @@ -131,4 +131,16 @@ public function testExcludeAwareMethodsWithoutParameters() $this->assertTrue($definition->hasMethod('ZendTest\Di\TestAsset\AwareClasses\B', 'setSomething')); $this->assertFalse($definition->hasMethod('ZendTest\Di\TestAsset\AwareClasses\B', 'getSomething')); } + + public function testHasMethodParameters() + { + $definition = new CompilerDefinition(); + $definition->addDirectory(__DIR__ . '/../TestAsset/ConstructorInjection'); + $definition->addDirectory(__DIR__ . '/../TestAsset/SetterInjection'); + $definition->addDirectory(__DIR__ . '/../TestAsset/CompilerClasses'); + $definition->compile(); + $this->assertTrue($definition->hasMethodParameters('ZendTest\Di\TestAsset\ConstructorInjection\B', '__construct')); + $this->assertTrue($definition->hasMethodParameters('ZendTest\Di\TestAsset\SetterInjection\B', 'setA')); + $this->assertTrue($definition->hasMethodParameters('ZendTest\Di\TestAsset\CompilerClasses\D', 'setB')); + } } From 2d62d4b44b57784e91159895773bdb3fa635968a Mon Sep 17 00:00:00 2001 From: Michael Schiller Date: Wed, 22 Jan 2014 18:29:52 +0100 Subject: [PATCH 2/3] [BUGFIX] DI fails with CompilerDefinition; solves zendframework/zf2#5738 - Test - trailing spaces removed --- test/Definition/CompilerDefinitionTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Definition/CompilerDefinitionTest.php b/test/Definition/CompilerDefinitionTest.php index 59d3e7ad..0579eabf 100644 --- a/test/Definition/CompilerDefinitionTest.php +++ b/test/Definition/CompilerDefinitionTest.php @@ -131,7 +131,7 @@ public function testExcludeAwareMethodsWithoutParameters() $this->assertTrue($definition->hasMethod('ZendTest\Di\TestAsset\AwareClasses\B', 'setSomething')); $this->assertFalse($definition->hasMethod('ZendTest\Di\TestAsset\AwareClasses\B', 'getSomething')); } - + public function testHasMethodParameters() { $definition = new CompilerDefinition(); From a53cf8147280d4ad88b88b0fdaa6383c49b56460 Mon Sep 17 00:00:00 2001 From: Michael Schiller Date: Fri, 28 Feb 2014 13:52:50 +0100 Subject: [PATCH 3/3] [BUGFIX] DI fails with CompilerDefinition; solves zendframework/zf2#5738 - Test - assertions on false added --- test/Definition/CompilerDefinitionTest.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/Definition/CompilerDefinitionTest.php b/test/Definition/CompilerDefinitionTest.php index 0579eabf..fa92195a 100644 --- a/test/Definition/CompilerDefinitionTest.php +++ b/test/Definition/CompilerDefinitionTest.php @@ -139,8 +139,18 @@ public function testHasMethodParameters() $definition->addDirectory(__DIR__ . '/../TestAsset/SetterInjection'); $definition->addDirectory(__DIR__ . '/../TestAsset/CompilerClasses'); $definition->compile(); + + // constructor injection $this->assertTrue($definition->hasMethodParameters('ZendTest\Di\TestAsset\ConstructorInjection\B', '__construct')); + // setter injection $this->assertTrue($definition->hasMethodParameters('ZendTest\Di\TestAsset\SetterInjection\B', 'setA')); + // setter injection with method from derived class $this->assertTrue($definition->hasMethodParameters('ZendTest\Di\TestAsset\CompilerClasses\D', 'setB')); + // class does not exist + $this->assertFalse($definition->hasMethodParameters('ZendTest\Di\TestAsset\ConstructorInjection\BB', '__construct')); + // method not existing + $this->assertFalse($definition->hasMethodParameters('ZendTest\Di\TestAsset\SetterInjection\B', 'setB')); + // method exists but has no parameters + $this->assertFalse($definition->hasMethodParameters('ZendTest\Di\TestAsset\SetterInjection\StaticSetter', 'setFoo')); } }