/** * @covers \DCarbone\PHPClassBuilder\Template\Structure\FunctionTemplate::compile * @covers \DCarbone\PHPClassBuilder\Template\Structure\FunctionTemplate::parseCompileOpts * @covers \DCarbone\PHPClassBuilder\Template\Structure\FunctionTemplate::_compileAsClassMethod * @covers \DCarbone\PHPClassBuilder\Template\Structure\FunctionTemplate::_buildDocBloc * @covers \DCarbone\PHPClassBuilder\Template\Structure\FunctionTemplate::_buildParameters * @covers \DCarbone\PHPClassBuilder\Template\Structure\FunctionTemplate::_buildBody * @covers \DCarbone\PHPClassBuilder\Template\Structure\FunctionTemplate::_compileBody * @covers \DCarbone\PHPClassBuilder\Template\Structure\FunctionTemplate::_buildReturnStatement * @depends testCanCompileAsClassMethod */ public function testCanCompileAsAbstractClassMethod() { $funcName = self::generateTestFunctionName(); $func = new FunctionTemplate($funcName); $func->addBodyPart('echo \'woot!\';'); $func->setAbstract(true); $output = $func->compile(array(CompileOpt::COMPILE_TYPE => FunctionTemplate::COMPILETYPE_CLASSMETHOD)); $this->assertEquals(<<<PHP abstract public function {$funcName}(); PHP , $output); }