public void ShouldParseFunctionCall() { var options = new FluidParserOptions { AllowFunctions = true }; #if COMPILED var _parser = new FluidParser(options).Compile(); #else var _parser = new FluidParser(options); #endif _parser.TryParse("{{ a() }}", out var template, out var errors); var statements = ((FluidTemplate)template).Statements; Assert.Single(statements); var outputStatement = statements[0] as OutputStatement; Assert.NotNull(outputStatement); var memberExpression = outputStatement.Expression as MemberExpression; Assert.Equal(2, memberExpression.Segments.Count); Assert.IsType <IdentifierSegment>(memberExpression.Segments[0]); Assert.IsType <FunctionCallSegment>(memberExpression.Segments[1]); }
public CustomFluidViewParser(FluidParserOptions options) : base(options) { RegisterEmptyTag("mytag", static async(w, e, c) => { await w.WriteAsync("Hello from MyTag"); return(Completion.Normal); }); }
public void ShouldNotParseFunctionCall() { var options = new FluidParserOptions { AllowFunctions = false }; #if COMPILED var parser = new FluidParser(options).Compile(); #else var parser = new FluidParser(options); #endif Assert.False(parser.TryParse("{{ a() }}", out var template, out var errors)); Assert.Contains(ErrorMessages.FunctionsNotAllowed, errors); }