From 08ba0d894882fa8778e5187ac508d1f3f938358b Mon Sep 17 00:00:00 2001 From: Frank Liepert Date: Sat, 17 Oct 2015 22:53:29 +0200 Subject: [PATCH] Add unit test for static factory method --- tests/DependencyInjection/ContainerTest.php | 14 ++++++++++++++ tests/DependencyInjection/Fixtures/FooFactory.php | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/tests/DependencyInjection/ContainerTest.php b/tests/DependencyInjection/ContainerTest.php index e4891bf..e4c2d35 100644 --- a/tests/DependencyInjection/ContainerTest.php +++ b/tests/DependencyInjection/ContainerTest.php @@ -176,6 +176,20 @@ public function testGetWithParametersViaFactory() $this->assertInstanceOf('VisionTest\DependencyInjection\Fixtures\Foo', $foo); } + public function testGetWithParametersViaFactoryStatic() + { + $param1 = 'foo'; + + $container = new Container; + $container->register('VisionTest\DependencyInjection\Fixtures\Foo', 'Foo') + ->factory('VisionTest\DependencyInjection\Fixtures\FooFactory', 'createViaStaticMethod', [$param1]); + + $foo = $container->get('Foo'); + + $this->assertSame($param1, $foo->param1); + $this->assertInstanceOf('VisionTest\DependencyInjection\Fixtures\Foo', $foo); + } + public function testDependentClass() { $container = new Container; diff --git a/tests/DependencyInjection/Fixtures/FooFactory.php b/tests/DependencyInjection/Fixtures/FooFactory.php index c634d89..91fd87c 100644 --- a/tests/DependencyInjection/Fixtures/FooFactory.php +++ b/tests/DependencyInjection/Fixtures/FooFactory.php @@ -11,4 +11,8 @@ public function getInstance() public function getInstanceWithParameters($param1) { return new Foo($param1); } + + public static function createViaStaticMethod($param1) { + return new Foo($param1); + } }