/**
     * @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 testCanCompileAsStaticMethod()
    {
        $funcName = self::generateTestFunctionName();
        $func = new FunctionTemplate($funcName);
        $func->addBodyPart('echo \'woot!\';');
        $func->setStatic(true);
        $output = $func->compile(array(CompileOpt::COMPILE_TYPE => FunctionTemplate::COMPILETYPE_CLASSMETHOD));
        $this->assertEquals(<<<PHP
static public function {$funcName}()
{
    echo 'woot!';

}


PHP
, $output);
    }