Example #1
0
    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());

    }
Example #2
0
 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;
 }
Example #4
0
 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);
 }