/** * @group SetterInjection */ public function testGetWillResolveSetterInjectionDependenciesAndInstanceAreTheSame() { $di = new DependencyInjector(); $b = $di->get('ZendTest\Di\TestAsset\SetterInjection\B'); $this->assertInstanceOf('ZendTest\Di\TestAsset\SetterInjection\B', $b); $this->assertInstanceOf('ZendTest\Di\TestAsset\SetterInjection\A', $b->a); $b2 = $di->get('ZendTest\Di\TestAsset\SetterInjection\B'); $this->assertInstanceOf('ZendTest\Di\TestAsset\SetterInjection\B', $b2); $this->assertInstanceOf('ZendTest\Di\TestAsset\SetterInjection\A', $b2->a); $this->assertSame($b, $b2); $this->assertSame($b->a, $b2->a); }
/** * Fix for PHP bug in is_subclass_of * * @see https://bugs.php.net/bug.php?id=53727 */ public function testNewInstanceWillUsePreferredClassForInterfaceHints() { $di = new DependencyInjector(); $di->getInstanceManager()->addTypePreference( 'ZendTest\Di\TestAsset\PreferredImplClasses\A', 'ZendTest\Di\TestAsset\PreferredImplClasses\BofA' ); $c = $di->get('ZendTest\Di\TestAsset\PreferredImplClasses\C'); $a = $c->a; $this->assertInstanceOf('ZendTest\Di\TestAsset\PreferredImplClasses\BofA', $a); $d = $di->get('ZendTest\Di\TestAsset\PreferredImplClasses\D'); $this->assertSame($a, $d->a); }