示例#1
0
 /**
  * @dataProvider provideMockCollections
  */
 public function testSetMockCollection($colls)
 {
     $entity = $this->createTestEntity();
     foreach ($colls as $coll) {
         $set = \Psc\Code\Code::castSetter($coll);
         $this->assertChainable($set($this->emm, array($entity)));
         $this->assertEquals(array($entity), $this->emm->getMockCollection($coll)->toArray());
     }
 }
示例#2
0
 protected function doExecute($input, $output)
 {
     $extensionGClass = $this->parseExtensionGClass($input);
     $inputParams = $this->parseParams($input);
     $constructParams = array();
     foreach ($this->getConstructorFields($extensionGClass) as $name) {
         if (array_key_exists($name, $inputParams)) {
             $constructParams[] = $inputParams[$name];
             unset($inputParams[$name]);
         }
     }
     $extension = $extensionGClass->newInstance($constructParams);
     foreach ($inputParams as $name => $value) {
         $set = Code::castSetter($name);
         $set($extension, $value);
     }
     $compiler = $this->getCompiler();
     $compiler->addExtension($extension);
     $compiler->compile($this->getOutFile());
 }
示例#3
0
 protected function generateSetter($property)
 {
     return Code::castSetter($property);
 }
示例#4
0
 public function testCastSetter()
 {
     $object = new TestingClass('v1', 'v2');
     // pre
     $this->assertEquals('v1', $object->getProp1());
     $this->assertEquals('v2', $object->getProp2());
     // test
     $setter = Code::castSetter('prop1');
     $setter($object, 'setv1');
     $this->assertEquals('setv1', $object->getProp1());
     $setter = Code::castSetter('prop2');
     $setter($object, 'setv2');
     $this->assertEquals('setv2', $object->getProp2());
     $setter = Code::castSetter('setProp1');
     $setter($object, 'setv1');
     $this->assertEquals('setv1', $object->getProp1());
     $setter = Code::castSetter('setProp2');
     $setter($object, 'setv2');
     $this->assertEquals('setv2', $object->getProp2());
 }