Пример #1
0
        public void ElseTrue()
        {
            TemplateEngine engine = new TemplateEngine();
            RootTemplate templateItem = engine.BuildTemplate("#if(true) indeed #else no #end");

            EvaluationContext context = new EvaluationContext(new Dictionary<string, object>()
            {
            }, null);

            string result = templateItem.Evaluate(context);
            Assert.AreEqual(" indeed ", result);
        }
Пример #2
0
        public void ComplexConditions()
        {
            TemplateEngine engine = new TemplateEngine();
            RootTemplate templateItem = engine.BuildTemplate(@"
            #if(false)
            #elseif(false)
            #elseif(true)
                #if(false)
                #elseif(false)
                    faky
                #elseif(true)
                    #if(false)
                    #elseif(false)
                    #elseif(true)
                        #if(false)
                        #else
                            indeed
                        #end
                    #elseif(false)
                    #else
                    #end
                #elseif(false)
                    test
                #else
                #end
            #elseif(false)
            #else
                some
            #end");

            EvaluationContext context = new EvaluationContext(new Dictionary<string, object>()
            {
            }, null);

            string result = templateItem.Evaluate(context);
            Assert.AreEqual("indeed", result.Trim());
        }
Пример #3
0
        public void ForeachWithMultipleElements()
        {
            TemplateEngine engine = new TemplateEngine();
            RootTemplate templateItem = engine.BuildTemplate("#foreach(${person} in ${persons})${person}#end");

            EvaluationContext context = new EvaluationContext(new Dictionary<string, object>() {
                {"persons", new List<string>(){
                    "one",
                    "two",
                    "three"
                }}
            },
            null);

            string result = templateItem.Evaluate(context);
            Assert.AreEqual("onetwothree", result);
        }
Пример #4
0
        public void Text()
        {
            TemplateEngine engine = new TemplateEngine();
            RootTemplate templateItem = engine.BuildTemplate("a$toprint}a");

            EvaluationContext context = new EvaluationContext(new Dictionary<string, object>() {
                {"toprint", "this"}
            }, null);

            string result = templateItem.Evaluate(context);
            Assert.AreEqual("a$toprint}a", result);
        }
Пример #5
0
        public void SingleLineCommentWithoutLineEnding()
        {
            TemplateEngine engine = new TemplateEngine();
            RootTemplate templateItem = engine.BuildTemplate("test##aaa${test}aaa#end#foreacg#if###");

            EvaluationContext context = new EvaluationContext(new Dictionary<string, object>() { }, null);

            string result = templateItem.Evaluate(context);
            Assert.AreEqual("test", result);
        }
Пример #6
0
 public void OneEndTooMany()
 {
     TemplateEngine engine = new TemplateEngine();
     RootTemplate templateItem = engine.BuildTemplate("#comment a #end #end");
 }
Пример #7
0
        public void MultiLineCommentInOneLine()
        {
            TemplateEngine engine = new TemplateEngine();
            RootTemplate templateItem = engine.BuildTemplate("#*#foreach(${person} in ${persons})${person}#end*#");

            EvaluationContext context = new EvaluationContext(new Dictionary<string, object>() { }, null);

            string result = templateItem.Evaluate(context);
            Assert.AreEqual(string.Empty, result);
        }
Пример #8
0
 public void MultiLineCommentInMultipleLinesWithoutEnding()
 {
     TemplateEngine engine = new TemplateEngine();
     RootTemplate templateItem = engine.BuildTemplate("\n\n\r\tq#*#foreach(\r${person} in ${persons})${pe\nrson}#end\na");
 }
Пример #9
0
        public void MultiLineCommentInMultipleLines()
        {
            TemplateEngine engine = new TemplateEngine();
            RootTemplate templateItem = engine.BuildTemplate("\r\tq#*#foreach(\r${person} in ${persons})${pe\nrson}#end*#\na");

            EvaluationContext context = new EvaluationContext(new Dictionary<string, object>() { }, null);

            string result = templateItem.Evaluate(context);
            Assert.AreEqual("\r\tqa", result);
        }
Пример #10
0
        public void LongElseElseIfElse()
        {
            TemplateEngine engine = new TemplateEngine();
            RootTemplate templateItem = engine.BuildTemplate(@"
            #if(false)
            #elseif(false)
            #elseif(false)
            #elseif(false)
            #else
                indeed
            #end");

            EvaluationContext context = new EvaluationContext(new Dictionary<string, object>()
            {
            }, null);

            string result = templateItem.Evaluate(context);
            Assert.IsTrue(result.Contains("indeed"));
        }
Пример #11
0
        public void LongElseElseIf()
        {
            TemplateEngine engine = new TemplateEngine();
            RootTemplate templateItem = engine.BuildTemplate(@"
            #if(false)
            #elseif(false)
            #elseif(false)
            #elseif(false)
            #else
            #end");

            EvaluationContext context = new EvaluationContext(new Dictionary<string, object>()
            {
            }, null);

            string result = templateItem.Evaluate(context);
            Assert.AreEqual(string.Empty, result.Trim());
        }
Пример #12
0
 public void InvalidIfStart()
 {
     TemplateEngine engine = new TemplateEngine();
     RootTemplate templateItem = engine.BuildTemplate("#if (true) #end");
 }
Пример #13
0
 public void InvalidIfPrintStatement()
 {
     TemplateEngine engine = new TemplateEngine();
     RootTemplate templateItem = engine.BuildTemplate("test${asddsa\na}");
 }
Пример #14
0
 public void InvalidForeachStart()
 {
     TemplateEngine engine = new TemplateEngine();
     RootTemplate templateItem = engine.BuildTemplate("#foreach (${person} in ${persons})${person}#end");
 }
Пример #15
0
        public void IfFalse()
        {
            TemplateEngine engine = new TemplateEngine();
            RootTemplate templateItem = engine.BuildTemplate("#if(false)no#end");

            EvaluationContext context = new EvaluationContext(new Dictionary<string, object>()
            {
            }, null);

            string result = templateItem.Evaluate(context);
            Assert.AreEqual(string.Empty, result);
        }