public function testTagGettersAndSetters() { $paramTag = new Tag\ParamTag(); $paramTag->setDatatype('string'); $returnTag = new Tag\ReturnTag(); $returnTag->setDatatype('int'); $this->docBlockGenerator->setTag(array('name' => 'blah')); $this->docBlockGenerator->setTag($paramTag); $this->docBlockGenerator->setTag($returnTag); $this->assertEquals(3, count($this->docBlockGenerator->getTags())); $target = <<<EOS /** * @blah * @param string * @return int */ EOS; $this->assertEquals($target, $this->docBlockGenerator->generate()); }
public function testReturnProducesCorrectDocBlockLine() { $this->tag->setDatatype('string'); $this->tag->setDescription('bar bar bar'); $this->assertEquals('@return string bar bar bar', $this->tag->generate()); }
protected function generateDocblock($requestTypeName, $requestType, $returnType) { $docblock = $this->getDocblockGenerator(); $scalarTypes = $this->getScalarTypes(); $isScalarReturn = false; if (isset($scalarTypes[$returnType])) { $returnType = $scalarTypes[$returnType]; $isScalarReturn = true; } if ($requestNamespace = $this->getRequestNamespace()) { $requestType = Soap::REQUEST_NAMESPACE_ALIAS . '\\' . $requestType; if (!$isScalarReturn) { $returnType = Soap::RESPONSE_NAMESPACE_ALIAS . '\\' . $returnType; } } $apiTag = new CodeGenerator\DocBlock\Tag(); $apiTag->setName('api'); $docblock->setTag($apiTag); $parameterTag = new CodeGenerator\DocBlock\Tag\ParamTag(); $parameterTag->setDataType($requestType); $parameterTag->setParamName(lcfirst($requestTypeName)); $docblock->setTag($parameterTag); $returnTag = new CodeGenerator\DocBlock\Tag\ReturnTag(); $returnTag->setDataType($returnType); $docblock->setTag($returnTag); return $docblock; }
private function handleAdder(Generator\ClassGenerator $generator, PHPProperty $prop, PHPClass $class) { $type = $prop->getType(); $propName = $type->getArg()->getName(); $docblock = new DocBlockGenerator(); $docblock->setShortDescription("Adds as {$propName}"); if ($prop->getDoc()) { $docblock->setLongDescription($prop->getDoc()); } $return = new ReturnTag(); $return->setTypes("self"); $docblock->setTag($return); $patramTag = new ParamTag($propName, $this->getPhpType($type->getArg()->getType())); $docblock->setTag($patramTag); $method = new MethodGenerator("addTo" . Inflector::classify($prop->getName())); $parameter = new ParameterGenerator($propName); $tt = $type->getArg()->getType(); if (!$this->isNativeType($tt)) { if ($p = $this->isOneType($tt)) { if ($t = $p->getType()) { $patramTag->setTypes($this->getPhpType($t)); if (!$this->isNativeType($t)) { $parameter->setType($this->getPhpType($t)); } } } elseif (!$this->isNativeType($tt)) { $parameter->setType($this->getPhpType($tt)); } } $methodBody = "\$this->" . $prop->getName() . "[] = \$" . $propName . ";" . PHP_EOL; $methodBody .= "return \$this;"; $method->setBody($methodBody); $method->setDocBlock($docblock); $method->setParameter($parameter); $generator->addMethodFromGenerator($method); }