예제 #1
0
        public void TestCustomFunction()
        {
            var engine = new ExpressionEngine((string func) =>
            {
                if (func == "custom")
                {
                    return(ExpressionFunctions.Numeric("custom", (args) => args[0] + args[1]));
                }
                else
                {
                    return(ExpressionFunctions.Lookup(func));
                }
            });
            var lgFile = LGParser.ParseFile(GetExampleFilePath("CustomFunction.lg"), null, engine);
            var evaled = lgFile.EvaluateTemplate("template");

            Assert.AreEqual(3, evaled);
        }
예제 #2
0
        public void TestCustomFunction()
        {
            var parser = new ExpressionParser((string func) =>
            {
                if (func == "custom")
                {
                    return(ExpressionFunctions.Numeric("custom", (args) => args[0] + args[1]));
                }
                else
                {
                    return(Expression.Lookup(func));
                }
            });
            var templates = Templates.ParseFile(GetExampleFilePath("CustomFunction.lg"), null, parser);
            var evaled    = templates.Evaluate("template");

            Assert.AreEqual(3, evaled);
            evaled = templates.Evaluate("callRef");
            Assert.AreEqual(12, evaled);
        }