public void TestHtmlOptionsWithInvalidData() { PropertyBag bag = new PropertyBag(); bag.Add("SelectedValue", new { Age = new { Value = 2 } }); bag.Add("Values", new[] { new SimpleObject { Age = 1, Name = "One" }, new SimpleObject { Age = 2, Name = "Two" }, new SimpleObject { Age = 3, Name = "Three" }, new SimpleObject { Age = 4, Name = "Four" }, new SimpleObject { Age = 5, Name = "Five" } }); string select = ImpressionEngine.Create(bag).RunString("<select>{{Valuesx|html_options(xyz,abc,def)}}</select>"); }
public void TestForEachWithNoItems() { PropertyBag bag = new PropertyBag(); bag["y"] = new int[0]; string result = ImpressionEngine.Create(bag).RunString("<!-- #FOREACH {{ x in y }} -->{{x.Position}}<!-- #NEXT -->"); }
public void TestHtmlOptions() { PropertyBag bag = new PropertyBag(); bag.Add("SelectedValue", new { Age = new { Value = 2 } }); bag.Add("Values", new[] { new SimpleObject { Age = 1, Name = "One" }, new SimpleObject { Age = 2, Name = "Two" }, new SimpleObject { Age = 3, Name = "Three" }, new SimpleObject { Age = 4, Name = "Four" }, new SimpleObject { Age = 5, Name = "Five" } }); string select = ImpressionEngine.Create(bag).RunString("<select>{{Values|html_options(Name,Age,SelectedValue.Age.Value)}}</select>"); Assert.AreEqual("<select><option value=\"1\">One</option><option value=\"2\" selected=\"true\">Two</option><option value=\"3\">Three</option><option value=\"4\">Four</option><option value=\"5\">Five</option></select>", select); }
public void Test2DeepExpression() { PropertyBag bag = new PropertyBag(); var o1 = new SimpleObject { Age = 1, Children = new List <SimpleObject> { new SimpleObject { Age = 2, Children = new List <SimpleObject> { new SimpleObject { Age = 3 } } } } }; bag.Add("Value", o1); var imp = ImpressionEngine.Create(bag); var result = imp.RunString("{{value.firstchild.firstchild.age}}"); Assert.AreEqual("3", result); }
public void TestNestedForLoops() { PropertyBag bag = new PropertyBag(); var items = new List <SimpleObject> { new SimpleObject { Name = "Item 1" }, new SimpleObject { Name = "Item 2", Children = new List <SimpleObject> { new SimpleObject { Name = "Item 2-1" }, new SimpleObject { Name = "Item 2-2" } } } }; bag["Items"] = items; string result = ImpressionEngine.Create(bag).RunString( "<!-- #FOREACH {{ item in items }} -->{{item.Name}}<!-- #FOREACH {{ subitem in item.children }} -->{{subitem.name}}<!-- #NEXT --><!-- #NEXT -->" ); Assert.IsNotNull(result); Assert.AreEqual("Item 1Item 2Item 2-1Item 2-2", result); }
public void TestObjectPropertiesAreCaseInsensitive() { PropertyBag bag = new PropertyBag(); bag.Add("UPPERCASE", new SimpleObject() { Name = "Name" }); bag.Add("lowercase", new SimpleObject() { Field = "Name" }); bag.Add("camelCase", new SimpleObject() { Property = "Name" }); bag.Add("PascalCase", new Dictionary <string, string> { { "Key", "Name" } }); ImpressionEngine ie = ImpressionEngine.Create(bag); string result = ie.RunString("{{uppercase.NAME}},{{LOWERCASE.field}},{{CAMELcase.PROPERTy}},{{pascalCASE.kEY}}"); Assert.AreEqual( "Name,Name,Name,Name", result ); }
public void TestShuffle() { PropertyBag bag = new PropertyBag(); bag.Add("Values", new[] { new SimpleObject { Age = 1, Name = "One" }, new SimpleObject { Age = 2, Name = "Two" }, new SimpleObject { Age = 3, Name = "Three" }, new SimpleObject { Age = 4, Name = "Four" }, new SimpleObject { Age = 5, Name = "Five" } }); string result = ImpressionEngine.Create(bag).RunString("<!-- #FOREACH {{ x in Values | shuffle }} -->{{x.Name}}<!-- #NEXT -->"); Assert.AreNotEqual("OneTwoThreeFourFive", result); string result2 = ImpressionEngine.Create(bag).RunString("<!-- #FOREACH {{ x in Values | shuffle }} -->{{x.Name}}<!-- #NEXT -->"); Assert.AreNotEqual(result, result2); }
public override void Setup() { base.Setup(); _now = DateTime.Now; Bag.Add("now", _now); Engine = ImpressionEngine.Create(Bag); }
public void TestNullReturns0() { Bag.Add("en", null); Engine = ImpressionEngine.Create(Bag); var result = Engine.RunString("{{en|count}}"); Assert.AreEqual("0", result); }
public void TestEmptyEnumerableReturns0() { Bag.Add("en", new int[0]); Engine = ImpressionEngine.Create(Bag); var result = Engine.RunString("{{en|count}}"); Assert.AreEqual("0", result); }
public void TestEnumerableWith1ItemReturns1() { Bag.Add("en", new [] { 1 }); Engine = ImpressionEngine.Create(Bag); var result = Engine.RunString("{{en|count}}"); Assert.AreEqual("1", result); }
public void DummyTemplateTest_BadlyFormedTemplate() { string currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory); string templatePath = Path.Combine(currentFolder, "../templates/badlyformed.htm"); ImpressionEngine ie = ImpressionEngine.Create(templatePath); string result = ie.Run(); Assert.IsNotNull(result); }
public void TestIFAttribute() { PropertyBag bag = new PropertyBag(); bag.Add("TrueValue", true); bag.Add("FalseValue", false); string result = ImpressionEngine.Create(bag).RunString("<h1 style=\"{{TrueValue|if('','display:none')}}\">Heading</h1>"); }
public void TestBasicExtends() { string currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory); string templatePath = Path.Combine(currentFolder, "../templates/extends-content.htm"); ImpressionEngine ie = ImpressionEngine.Create(templatePath); string result = ie.Run(); Assert.AreEqual("\r\nEXTENDED\r\n\r\nLayout Content\r\n\r\n\t<h3>EXTENDED</h3>\r\n\r\nMore Layout Content\r\n\r\n<div id=\"footer\">Layout Footer</div>\r\n\r\n", result); }
public void DummyTemplateTest_SimpleSSI() { string currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory); string templatePath = Path.Combine(currentFolder, "../templates/simplessi.htm"); ImpressionEngine ie = ImpressionEngine.Create(templatePath); string result = ie.Run(); Assert.AreEqual("This page will load SSI Content", result); }
public void ForEachWithPositionTest() { PropertyBag bag = new PropertyBag(); bag.Add("strings", new[] { "One", "Two", "Three" }); ImpressionEngine ie = ImpressionEngine.Create(bag); string s = ie.RunString("<!-- #FOREACH {{string in strings}} -->{{string.Position}}={{string}}<!-- #NEXT -->"); Assert.AreEqual(s, "1=One2=Two3=Three"); }
public void TestEnumerableWith5ItemsReturns5() { var obj = new [] { 1, 2, 3, 4, 5 }; Bag.Add("en", obj); Engine = ImpressionEngine.Create(Bag); var result = Engine.RunString("{{en|count}}"); Assert.AreEqual("5", result); }
public void CanParseVarTags() { IPropertyBag bag = new PropertyBag(); bag.Add("list", new [] { "Tom", "Dick", "Harry" }); ImpressionEngine ie = ImpressionEngine.Create(bag); var result = ie.RunString("<!-- #VAR {{ list2 = list }} -->{{list2}}"); Assert.AreEqual(bag["list"].GetType().ToString(), result); }
public void DummyTemplateTest_SimpleIfElseIfElseEndIf() { string currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory); string templatePath = Path.Combine(currentFolder, "../templates/simpleifelseifelseendif.htm"); ImpressionEngine ie = ImpressionEngine.Create(templatePath); ie.AddItem("TrueValue", true); string result = ie.Run(); Assert.AreEqual("TrueValue", result); }
public void DummyTemplateTest_SimpleForEach() { string currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory); string templatePath = Path.Combine(currentFolder, "../templates/SimpleForEach.htm"); ImpressionEngine ie = ImpressionEngine.Create(templatePath); ie.AddItem("Numbers", new [] { 1, 2, 3, 4, 5 }); string result = ie.Run(); Assert.AreEqual("12345", result); }
public void TestSpacingWithFilters() { PropertyBag bag = new PropertyBag(); ImpressionEngine ie = ImpressionEngine.Create(bag); string result = ie.RunString("{{ truevalue | default('true') }}"); Assert.AreEqual("true", result); result = ie.RunString("{{truevalue|default('true')}}"); Assert.AreEqual("true", result); }
public void DummyTemplateTest_DefaultFormatter() { PropertyBag bag = new PropertyBag(); bag.Add("DefaultValue", 1234); ImpressionEngine ie = ImpressionEngine.Create(bag); string result = ie.RunString("{{ InvalidField | default(DefaultValue) }}"); Assert.IsNotNull(result); Assert.AreEqual("1234", result); }
public void DummyTemplateTest_HtmlCheckedFormatter() { PropertyBag bag = new PropertyBag(); bag.Add("TrueValue", true); bag.Add("FalseValue", false); ImpressionEngine ie = ImpressionEngine.Create(bag); Assert.AreEqual("checked=\"checked\"", ie.RunString("{{ TrueValue | html_checked }}")); Assert.AreEqual("", ie.RunString("{{ FalseValue | html_checked }}")); }
public void TestNotEnumerableReturns1() { Bag.Add("en", new DateTime()); Engine = ImpressionEngine.Create(Bag); var result = Engine.RunString("{{en|count}}"); Assert.AreEqual("1", result); Bag.Add("en", 5); Engine = ImpressionEngine.Create(Bag); result = Engine.RunString("{{en|count}}"); Assert.AreEqual("1", result); }
private void LoadMeUp1() { PropertyBag bag = new PropertyBag(); bag.Add("One", 1); bag.Add("Two", 2); bag.Add("Three", 3); bag.Add("Four", 4); bag.Add("Five", 5); string currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory); string templatePath = Path.Combine(currentFolder, "../templates/SimpleIfElseIfElseEndIf.htm"); ImpressionEngine.Create(bag).Run(templatePath); count--; }
public void TestObjectNameIsCaseInsensitive() { PropertyBag bag = new PropertyBag(); bag.Add("UPPERCASE", "UPPERCASE"); bag.Add("lowercase", "LOWERCASE"); bag.Add("camelCase", "CAMELCASE"); bag.Add("PascalCase", "PASCALCASE"); ImpressionEngine ie = ImpressionEngine.Create(bag); string result = ie.RunString("{{uppercase}},{{LOWERCASE}},{{CAMELcase}},{{pascalCASE}}"); Assert.AreEqual( "UPPERCASE,LOWERCASE,CAMELCASE,PASCALCASE", result ); }
public void TestHtmlCheckbox() { PropertyBag bag = new PropertyBag(); bag.Add("TrueValue", true); bag.Add("FalseValue", false); string result = ImpressionEngine.Create(bag).RunString("<input type=\"checkbox\" {{TrueValue|html_checked}} />"); Assert.AreEqual("<input type=\"checkbox\" checked=\"checked\" />", result); result = ImpressionEngine.Create(bag).RunString("<input type=\"checkbox\" {{FalseValue|html_checked}} />"); Assert.AreEqual("<input type=\"checkbox\" />", result); result = ImpressionEngine.Create(bag).RunString("<input type=\"checkbox\" {{UnknownValue|html_checked}} />"); Assert.AreEqual("<input type=\"checkbox\" />", result); result = ImpressionEngine.Create(bag).RunString("<input type=\"checkbox\" {{UnknownValue|not|html_checked}} />"); Assert.AreEqual("<input type=\"checkbox\" checked=\"checked\" />", result); result = ImpressionEngine.Create(bag).RunString("<input type=\"checkbox\" {{UnknownValue|default('true')|html_checked}} />"); Assert.AreEqual("<input type=\"checkbox\" checked=\"checked\" />", result); }
private long RunStressTests(ITemplateCache templateCache) { long started = DateTime.Now.Ticks; string currentFolder = Path.GetDirectoryName(Environment.CurrentDirectory); string templatePath = Path.Combine(currentFolder, "../hbmx/storefront.template.html"); ImpressionEngine ie = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache); templatePath = Path.Combine(currentFolder, "../hbmx/contact.template.html"); ie = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache); templatePath = Path.Combine(currentFolder, "../hbmx/account.template.html"); ie = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache); templatePath = Path.Combine(currentFolder, "../hbmx/productlist-category.template.html"); ie = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache); templatePath = Path.Combine(currentFolder, "../hbmx/custompage.template.html"); ie = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache); templatePath = Path.Combine(currentFolder, "../hbmx/product.template.html"); ie = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache); templatePath = Path.Combine(currentFolder, "../hbmx/cart.template.html"); ie = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache); templatePath = Path.Combine(currentFolder, "../hbmx/yourinfo.template.html"); ie = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache); templatePath = Path.Combine(currentFolder, "../hbmx/payment.template.html"); ie = ImpressionEngine.Create(templatePath, new PropertyBag(), templateCache); long elapsed = DateTime.Now.Ticks - started; return(elapsed); }
public virtual void Setup() { Bag = new PropertyBag(); Engine = ImpressionEngine.Create(Bag); }
virtual public void Setup() { Bag = new PropertyBag(); Engine = ImpressionEngine.Create(Bag); }
public void ConstructorTest_InvalidTemplatePathExpectArgumentException() { ImpressionEngine ie = ImpressionEngine.Create("xxxx"); }