protected function setUp()
 {
     $this->containerName = 'PdTests_MakeTests_BuilderTest';
     $this->className = 'PdTests_stubs_Dummy';
     $container = Pd_Container::get($this->containerName);
     // the map
     $map = new Pd_Map();
     $item = new Pd_Map_Item();
     $item->setDependencyName('Apple');
     $item->setInjectAs('setApple');
     $item->setInjectWith('method');
     $map->add($item);
     $item = new Pd_Map_Item();
     $item->setDependencyName('Banana');
     $item->setInjectWith('constructor');
     $map->add($item);
     $container->maps()->set($this->className, $map);
     // the dependencies
     $container->dependencies()->set('Apple', 'red');
     $container->dependencies()->set('Banana', 'it was built!');
     // construct it
     $this->builder = new Pd_Make_Constructor();
     $this->builder->setContainer($container);
     $this->builder->setClassName($this->className);
 }
Exemple #2
0
 public function testItemsFor()
 {
     $item = new Pd_Map_Item();
     $item->setDependencyName('abc');
     $item->setInjectAs('abc');
     $item->setInjectWith('test');
     $this->map->add($item);
     $items = $this->map->itemsFor('test');
     $this->assertEquals($items[0]->dependencyName(), 'abc');
 }
Exemple #3
0
 /**
  * Creates a Map Item based off options array
  *
  * @param array $options
  * @return Pd_Map_Item
  */
 protected function _makeItemFromOptions($options)
 {
     $defaults = array('dependencyName' => null, 'injectWith' => null, 'injectAs' => null, 'force' => false, 'newClass' => null);
     $options = array_merge($defaults, $options);
     $item = new Pd_Map_Item();
     $item->setDependencyName($options['dependencyName']);
     $item->setInjectWith($options['injectWith']);
     $item->setInjectAs($options['injectAs']);
     $item->setForce($options['force']);
     $item->setNewClass($options['newClass']);
     return $item;
 }
Exemple #4
0
 public function testNewClass()
 {
     $this->assertEquals('New_Class', $this->item->newClass());
 }
Exemple #5
0
 /**
  * Finds the dependency, new class or pulls from container, based
  * on item.
  *
  * @param Pd_Map_Item $item
  * @return mixed dependency
  */
 protected function getDependencyForItem($item)
 {
     if ($item->newClass()) {
         $dependency = Pd_Make::name($item->newClass(), $this->_container->name());
     } else {
         $dependency = $this->_container->dependencies()->get($item->dependencyName());
     }
     return $dependency;
 }