Exemplo n.º 1
0
 public function testCanCreateInjectionMethodsAndPopulateFromFluentInterface()
 {
     $builder = new BuilderDefinition();
     $foo = $builder->createClass('Foo');
     $foo->setName('Foo');
     $foo->createInjectionMethod('setBar')->addParameter('bar', 'Bar');
     $foo->createInjectionMethod('setConfig')->addParameter('config', null);
     $this->assertTrue($builder->hasClass('Foo'));
     $this->assertTrue($builder->hasInjectionMethod('Foo', 'setBar'));
     $this->assertTrue($builder->hasInjectionMethod('Foo', 'setConfig'));
     $this->assertEquals(array('bar' => array('Bar', false, true)), $builder->getInjectionMethodParameters('Foo', 'setBar'));
     $this->assertEquals(array('config' => array(null, false, null)), $builder->getInjectionMethodParameters('Foo', 'setConfig'));
 }
Exemplo n.º 2
0
 public function testBuilderCanBuildClassWithMethods()
 {
     $class = new Builder\PhpClass();
     $class->setName('Foo');
     $class->addSuperType('Parent');
     
     $injectionMethod = new Builder\InjectionMethod();
     $injectionMethod->setName('injectBar');
     $injectionMethod->addParameter('bar', 'Bar');
     
     $class->addInjectionMethod($injectionMethod);
     
     $definition = new BuilderDefinition();
     $definition->addClass($class);
     
     $this->assertTrue($definition->hasClass('Foo'));
     $this->assertEquals('__construct', $definition->getInstantiator('Foo'));
     $this->assertContains('Parent', $definition->getClassSupertypes('Foo'));
     $this->assertTrue($definition->hasInjectionMethods('Foo'));
     $this->assertTrue($definition->hasInjectionMethod('Foo', 'injectBar'));
     $this->assertContains('injectBar', $definition->getInjectionMethods('Foo'));
     $this->assertEquals(array('bar' => 'Bar'), $definition->getInjectionMethodParameters('Foo', 'injectBar'));
 }