public void TestExpandTemplate() { var engine = new TemplateEngine().AddFile(GetExampleFilePath("Expand.lg")); // without scope var evaled = engine.ExpandTemplate("FinalGreeting"); Assert.AreEqual(4, evaled.Count); var expectedResults = new List <string>() { "Hi Morning", "Hi Evening", "Hello Morning", "Hello Evening" }; expectedResults.ForEach(x => Assert.AreEqual(true, evaled.Contains(x))); // with scope evaled = engine.ExpandTemplate("TimeOfDayWithCondition", new { time = "evening" }); Assert.AreEqual(2, evaled.Count); expectedResults = new List <string>() { "Hi Evening", "Hello Evening" }; expectedResults.ForEach(x => Assert.AreEqual(true, evaled.Contains(x))); // with scope evaled = engine.ExpandTemplate("greetInAWeek", new { day = "Sunday" }); Assert.AreEqual(2, evaled.Count); expectedResults = new List <string>() { "Nice Sunday!", "Happy Sunday!" }; expectedResults.ForEach(x => Assert.AreEqual(true, evaled.Contains(x))); }
public void TestExpandTemplateWithStructuredLG() { var engine = new TemplateEngine().AddFile(GetExampleFilePath("StructuredTemplate.lg")); // without scope var evaled = engine.ExpandTemplate("AskForAge.prompt"); Assert.AreEqual(4, evaled.Count); var expectedResults = new List <string>() { "{\"lgType\":\"Activity\",\"text\":\"how old are you?\",\"speak\":\"how old are you?\"}", "{\"lgType\":\"Activity\",\"text\":\"how old are you?\",\"speak\":\"what's your age?\"}", "{\"lgType\":\"Activity\",\"text\":\"what's your age?\",\"speak\":\"how old are you?\"}", "{\"lgType\":\"Activity\",\"text\":\"what's your age?\",\"speak\":\"what's your age?\"}" }; expectedResults.ForEach(x => Assert.AreEqual(true, evaled.Contains(x))); evaled = engine.ExpandTemplate("ExpanderT1"); Assert.AreEqual(4, evaled.Count); expectedResults = new List <string>() { "{\"lgType\":\"MyStruct\",\"text\":\"Hi\",\"speak\":\"how old are you?\"}", "{\"lgType\":\"MyStruct\",\"text\":\"Hi\",\"speak\":\"what's your age?\"}", "{\"lgType\":\"MyStruct\",\"text\":\"Hello\",\"speak\":\"how old are you?\"}", "{\"lgType\":\"MyStruct\",\"text\":\"Hello\",\"speak\":\"what's your age?\"}" }; expectedResults.ForEach(x => Assert.AreEqual(true, evaled.Contains(x))); }
public void TestExpandTemplateWithRefInMultiLine() { var engine = new TemplateEngine().AddFile(GetExampleFilePath("Expand.lg")); var alarms = new[] { new { time = "7 am", date = "tomorrow" }, new { time = "8 pm", date = "tomorrow" } }; var evaled = engine.ExpandTemplate("ShowAlarmsWithMultiLine", new { alarms = alarms }); Assert.AreEqual(2, evaled.Count); var eval1Options = new List <string>() { "\r\nYou have 2 alarms.\r\nThey are 8 pm at tomorrow\r\n", "\nYou have 2 alarms.\nThey are 8 pm at tomorrow\n" }; var eval2Options = new List <string>() { "\r\nYou have 2 alarms.\r\nThey are 8 pm of tomorrow\r\n", "\nYou have 2 alarms.\nThey are 8 pm of tomorrow\n" }; Assert.AreEqual(true, eval1Options.Contains(evaled[0])); Assert.AreEqual(true, eval2Options.Contains(evaled[1])); }
public void TestExpandTemplateWithFunction() { var engine = new TemplateEngine().AddFile(GetExampleFilePath("Expand.lg")); var alarms = new[] { new { time = "7 am", date = "tomorrow" }, new { time = "8 pm", date = "tomorrow" } }; var evaled = engine.ExpandTemplate("ShowAlarmsWithForeach", new { alarms = alarms }); var evalOptions = new List <string>() { "You have 2 alarms, 7 am at tomorrow and 8 pm at tomorrow", "You have 2 alarms, 7 am at tomorrow and 8 pm of tomorrow", "You have 2 alarms, 7 am of tomorrow and 8 pm at tomorrow", "You have 2 alarms, 7 am of tomorrow and 8 pm of tomorrow" }; Assert.AreEqual(1, evaled.Count); Assert.AreEqual(true, evalOptions.Contains(evaled[0])); evaled = engine.ExpandTemplate("T2"); Assert.AreEqual(1, evaled.Count); Assert.AreEqual(true, evaled[0] == "3" || evaled[0] == "5"); evaled = engine.ExpandTemplate("T3"); Assert.AreEqual(1, evaled.Count); Assert.AreEqual(true, evaled[0] == "3" || evaled[0] == "5"); evaled = engine.ExpandTemplate("T4"); Assert.AreEqual(1, evaled.Count); Assert.AreEqual(true, evaled[0] == "ey" || evaled[0] == "el"); }
public void TestExpandTemplateWithRef() { var engine = new TemplateEngine().AddFile(GetExampleFilePath("Expand.lg")); var alarms = new[] { new { time = "7 am", date = "tomorrow" }, new { time = "8 pm", date = "tomorrow" } }; var evaled = engine.ExpandTemplate("ShowAlarmsWithLgTemplate", new { alarms = alarms }); Assert.AreEqual(2, evaled.Count); Assert.AreEqual("You have 2 alarms, they are 8 pm at tomorrow", evaled[0]); Assert.AreEqual("You have 2 alarms, they are 8 pm of tomorrow", evaled[1]); }