/**
     * @test
     */
    public function useDocComment()
    {
        $className = 'ExampleForDocComment';
        $docComment = "A tests class for DocComment.\n\n@package    example\n@copyright  2009 Foo Bar <*****@*****.**>";
        $formatedDocComment = "/**\n * A tests class for DocComment.\n *\n * @package    example\n * @copyright  2009 Foo Bar <*****@*****.**>\n */";
        $result = <<<EOF
/**
 * A tests class for DocComment.
 *
 * @package    example
 * @copyright  2009 Foo Bar <*****@*****.**>
 */
class ExampleForDocComment
{
}

EOF;
        $class = new Stagehand_PHP_Class($className);
        $class->setDocComment($docComment);
        $this->assertEquals($class->getDocComment(), $formatedDocComment);
        $this->assertEquals($class->render(), $result);
        $class->setDocComment($formatedDocComment, true);
        $this->assertEquals($class->getDocComment(), $formatedDocComment);
        $this->assertEquals($class->render(), $result);
        $class->defineFinal();
        $class->setParentClass('Foo');
        $result = <<<EOF
/**
 * A tests class for DocComment.
 *
 * @package    example
 * @copyright  2009 Foo Bar <*****@*****.**>
 */
final class ExampleForDocComment extends Foo
{
}

EOF;
        $this->assertEquals($class->render(), $result);
    }
Exemple #2
0
 /**
  * unticked_class_declaration_statement_1
  *    class_entry_type T_STRING extends_from implements_list '{' class_statement_list '}'
  */
 protected function unticked_class_declaration_statement_1($params)
 {
     $className = $params[1]->getValue();
     $class = new Stagehand_PHP_Class($className);
     if ($params[0] === 'abstract') {
         $class->defineAbstract();
     } elseif ($params[0] === 'final') {
         $class->defineFinal();
     }
     if ($params[2]) {
         $class->setParentClass($params[2]);
     }
     if ($params[3] && is_array($params[3])) {
         foreach ($params[3] as $interface) {
             $class->addInterface($interface);
         }
     }
     $this->_declarClass($class);
     return parent::execute(__FUNCTION__, $params);
 }
 /**
  * @test
  */
 public function generateClassCodeWithParentClassAndSomeInterface()
 {
     $parentClassName = 'ExampleForClassGenerationParentClass';
     $interfaceA = 'ExampleForClassGenerationInterfaceA';
     $interfaceB = 'ExampleForClassGenerationInterfaceB';
     $className = 'ExampleForClassGenerationWithParentClassAndSomeInterface';
     $class = new Stagehand_PHP_Class($className);
     $parentClass = new Stagehand_PHP_Class($parentClassName);
     $classInterfaceA = new Stagehand_PHP_Class($interfaceA);
     $classInterfaceB = new Stagehand_PHP_Class($interfaceB);
     $class->setParentClass($parentClass);
     $class->addInterface($classInterfaceA);
     $class->addInterface($classInterfaceB);
     $generator = new Stagehand_PHP_Class_CodeGenerator_Class($class);
     $code = $generator->generate();
     $this->assertRegExp("/^class {$className} extends {$parentClassName} implements {$interfaceA}, {$interfaceB}/", $code);
     $class = new Stagehand_PHP_Class($className);
     $class->setParentClass($parentClassName);
     $class->addInterface($interfaceA);
     $class->addInterface($interfaceB);
     $generator = new Stagehand_PHP_Class_CodeGenerator_Class($class);
     $code = $generator->generate();
     $this->assertRegExp("/^class {$className} extends {$parentClassName} implements {$interfaceA}, {$interfaceB}/", $code);
 }