/** * Test for Circular Dependencies (case 2) * * C->D, D->E, E->C * @group CircurlarDependencyCheck */ public function testNewInstanceThrowsExceptionWhenEnteringInMiddleOfCircularDependency() { $di = new DependencyInjector(); $this->setExpectedException( 'Zend\Di\Exception\CircularDependencyException', 'Circular dependency detected: ZendTest\Di\TestAsset\CircularClasses\C depends on ZendTest\Di\TestAsset\CircularClasses\D and viceversa' ); $di->newInstance('ZendTest\Di\TestAsset\CircularClasses\D'); }
public function testNewInstanceWillRunArbitraryMethodsAccordingToConfiguration() { $di = new DependencyInjector(); $im = $di->getInstanceManager(); $im->setMethods('ZendTest\Di\TestAsset\ConfigParameter\A', array( 'setSomeInt' => array('value' => 5), 'injectM' => array('m' => 10) )); $b = $di->newInstance('ZendTest\Di\TestAsset\ConfigParameter\B'); $this->assertEquals(5, $b->a->someInt); $this->assertEquals(10, $b->a->m); }