Esempio n. 1
0
    public function testCompilerCompilesAgainstConstructorInjectionAssets()
    {
        $definition = new CompilerDefinition;
        $definition->addDirectory(__DIR__ . '/../TestAsset/CompilerClasses');
        $definition->compile();
        
        $this->assertTrue($definition->hasClass('ZendTest\Di\TestAsset\CompilerClasses\A'));
        
        $assertClasses = array(
            'ZendTest\Di\TestAsset\CompilerClasses\A',
            'ZendTest\Di\TestAsset\CompilerClasses\B',
            'ZendTest\Di\TestAsset\CompilerClasses\C',
            'ZendTest\Di\TestAsset\CompilerClasses\D',
        );
        $classes = $definition->getClasses();
        foreach ($assertClasses as $assertClass) {
            $this->assertContains($assertClass, $classes);
        }

        // @todo this needs to be resolved, not the short name
        // $this->assertContains('ZendTest\Di\TestAsset\CompilerClasses\C', $definition->getClassSupertypes('ZendTest\Di\TestAsset\CompilerClasses\D'));
        
        $this->assertEquals('__construct', $definition->getInstantiator('ZendTest\Di\TestAsset\CompilerClasses\A'));
        $this->assertTrue($definition->hasMethods('ZendTest\Di\TestAsset\CompilerClasses\C'));
        

        $this->assertArrayHasKey('setB', $definition->getMethods('ZendTest\Di\TestAsset\CompilerClasses\C'));
        $this->assertTrue($definition->hasMethod('ZendTest\Di\TestAsset\CompilerClasses\C', 'setB'));
        
        $this->assertEquals(
            array('ZendTest\Di\TestAsset\CompilerClasses\C::setB:0' => array('b', 'ZendTest\Di\TestAsset\CompilerClasses\B', true)),
            $definition->getMethodParameters('ZendTest\Di\TestAsset\CompilerClasses\C', 'setB')
        );
    }
Esempio n. 2
0
 /**
  * @group ZF2-308
  */
 public function testStaticMethodsNotIncludedInDefinitions()
 {
     $definition = new CompilerDefinition();
     $definition->addDirectory(__DIR__ . '/../TestAsset/SetterInjection');
     $definition->compile();
     $this->assertTrue($definition->hasMethod('ZendTest\\Di\\TestAsset\\SetterInjection\\StaticSetter', 'setFoo'));
     $this->assertFalse($definition->hasMethod('ZendTest\\Di\\TestAsset\\SetterInjection\\StaticSetter', 'setName'));
 }
Esempio n. 3
0
 /**
  * Test if methods from aware interfaces without params are excluded
  */
 public function testExcludeAwareMethodsWithoutParameters()
 {
     $definition = new CompilerDefinition();
     $definition->addDirectory(__DIR__ . '/../TestAsset/AwareClasses');
     $definition->compile();
     $this->assertTrue($definition->hasMethod('ZendTest\\Di\\TestAsset\\AwareClasses\\B', 'setSomething'));
     $this->assertFalse($definition->hasMethod('ZendTest\\Di\\TestAsset\\AwareClasses\\B', 'getSomething'));
 }