public function testGenerateIsCorrect() { $parameterGenerator = new ParameterGenerator(); $parameterGenerator->setType('Foo'); $parameterGenerator->setName('bar'); $parameterGenerator->setDefaultValue(15); $this->assertEquals('Foo $bar = 15', $parameterGenerator->generate()); $parameterGenerator->setDefaultValue('foo'); $this->assertEquals('Foo $bar = \'foo\'', $parameterGenerator->generate()); }
protected function getMethods() { $methods = [$this->getConstructor()]; foreach ($this->properties as $propertyName) { $setterParam = new ParameterGenerator($propertyName); $methodGenerator = new MethodGenerator('set' . ucfirst($propertyName), [$setterParam]); $methodGenerator->setBody('$this->' . $propertyName . ' = ' . $setterParam->generate() . ';' . PHP_EOL . PHP_EOL . 'return $this;'); $methods[] = $methodGenerator; $methodGenerator = new MethodGenerator('get' . ucfirst($propertyName)); $methodGenerator->setBody('return $this->' . $propertyName . ';'); $methods[] = $methodGenerator; } foreach ($this->edgeProperties as $edgeCollection => $targetCollection) { $setterParam = new ParameterGenerator(lcfirst($edgeCollection)); $methodGenerator = new MethodGenerator('add' . $edgeCollection, [$setterParam]); $methodGenerator->setBody('$this->lazyAddNeighbor($this, \'' . $edgeCollection . '\', ' . $setterParam->generate() . ');'); $methods[] = $methodGenerator; $setterParam = new ParameterGenerator(lcfirst($edgeCollection)); $methodGenerator = new MethodGenerator('remove' . $edgeCollection, [$setterParam]); $methodGenerator->setBody('$this->lazyRemoveNeighbor($this, \'' . $edgeCollection . '\', ' . $setterParam->generate() . ');'); $methods[] = $methodGenerator; $setterParam = new ParameterGenerator(lcfirst($edgeCollection)); $methodGenerator = new MethodGenerator('set' . $edgeCollection, [$setterParam]); $methodGenerator->setBody('$this->lazySetNeighbor($this, \'' . $edgeCollection . '\', ' . $setterParam->generate() . ');'); $methods[] = $methodGenerator; $defaultValue = new ValueGenerator([], ValueGenerator::TYPE_ARRAY); $setterParam = new ParameterGenerator('filter', null, $defaultValue); $methodGenerator = new MethodGenerator('get' . $edgeCollection, [$setterParam]); $methodGenerator->setBody('return $this->lazyGetNeighbor(\'' . $edgeCollection . '\', \'' . $targetCollection . '\', $filter);'); $methods[] = $methodGenerator; } return $methods; }
/** * @group 6023 * * @coversNothing */ public function testGeneratedParametersHaveEscapedDefaultValues() { $parameter = new ParameterGenerator(); $parameter->setName('foo'); $parameter->setDefaultValue("\\'"); $parameter->setType('stdClass'); $this->assertSame("stdClass \$foo = '\\\\\\''", $parameter->generate()); }