/**
     * 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);
 }