/** * @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); }
/** * 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 generateFinalClassCode() { $className = 'ExampleForFinalClassGeneration'; $class = new Stagehand_PHP_Class($className); $class->defineFinal(); $generator = new Stagehand_PHP_Class_CodeGenerator_Class($class); $code = $generator->generate(); $this->assertRegExp("/^final class {$className}/", $code); }