Exemple #1
0
        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);
            });
        }
Exemple #3
0
        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);
        }