/** * @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()); } }
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()); }
protected function generateSetter($property) { return Code::castSetter($property); }
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()); }