public void AnalyzerThrowExceptionTest(string input, string templateName) { var isFail = false; var errorMessage = string.Empty; TemplateEngine engine = null; try { engine = new TemplateEngine().AddFile(GetExampleFilePath(input)); } catch (Exception) { isFail = true; errorMessage = "error occurs when parsing file"; } if (!isFail) { try { engine.AnalyzeTemplate(templateName); isFail = true; errorMessage = "No exception is thrown."; } catch (Exception e) { TestContext.WriteLine(e.Message); } } if (isFail) { Assert.Fail(errorMessage); } }
public void TestAnalyzer() { var testData = new object[] { new { name = "orderReadOut", variableOptions = new string[] { "orderType", "userName", "base", "topping", "bread", "meat" }, templateRefOptions = new string[] { "wPhrase", "pizzaOrderConfirmation", "sandwichOrderConfirmation" } }, new { name = "sandwichOrderConfirmation", variableOptions = new string[] { "bread", "meat" }, templateRefOptions = new string[] { } }, new { name = "template1", // TODO: input.property should really be: customer.property but analyzer needs to be variableOptions = new string[] { "alarms", "customer", "tasks[0]", "age", "city" }, templateRefOptions = new string[] { "template2", "template3", "template4", "template5", "template6" } }, new { name = "coffee-to-go-order", variableOptions = new string[] { "coffee", "userName", "size", "price" }, templateRefOptions = new string[] { "wPhrase", "LatteOrderConfirmation", "MochaOrderConfirmation", "CuppuccinoOrderConfirmation" } }, new { name = "structureTemplate", variableOptions = new string[] { "text", "newText" }, templateRefOptions = new string[] { "ST2" } }, }; foreach (var testItem in testData) { var engine = new TemplateEngine().AddFile(GetExampleFilePath("analyzer.lg")); var evaled1 = engine.AnalyzeTemplate(testItem.GetType().GetProperty("name").GetValue(testItem).ToString()); var variableEvaled = evaled1.Variables; var variableEvaledOptions = testItem.GetType().GetProperty("variableOptions").GetValue(testItem) as string[]; Assert.AreEqual(variableEvaledOptions.Length, variableEvaled.Count); variableEvaledOptions.ToList().ForEach(element => Assert.AreEqual(variableEvaled.Contains(element), true)); var templateEvaled = evaled1.TemplateReferences; var templateEvaledOptions = testItem.GetType().GetProperty("templateRefOptions").GetValue(testItem) as string[]; Assert.AreEqual(templateEvaledOptions.Length, templateEvaled.Count); templateEvaledOptions.ToList().ForEach(element => Assert.AreEqual(templateEvaled.Contains(element), true)); } }
public void TestAnalyzelgTemplateFunction() { var engine = new TemplateEngine().AddFile(GetExampleFilePath("lgTemplate.lg")); var evaled = engine.AnalyzeTemplate("TemplateD"); var variableEvaled = evaled.Variables; var options = new List <string>() { "b" }; Assert.AreEqual(variableEvaled.Count, options.Count); options.ForEach(e => Assert.AreEqual(variableEvaled.Contains(e), true)); }