Skip to content

Commit 82d0e2b

Browse files
author
Mike Bridge
committed
Add error examples
1 parent 9e00d85 commit 82d0e2b

File tree

2 files changed

+23
-16
lines changed

2 files changed

+23
-16
lines changed

Liquid.NET.Tests/Examples/ExampleTests.cs

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ public void Test_Simple_Template()
1818

1919
ctx.DefineLocalVariable("myvariable", LiquidString.Create("Hello World"));
2020

21-
var templateResult = LiquidTemplate.Create("<div>{{myvariable}}</div>");
21+
var parsingResult = LiquidTemplate.Create("<div>{{myvariable}}</div>");
2222

23-
Assert.That(templateResult.LiquidTemplate.Render(ctx).Result, Is.EqualTo("<div>Hello World</div>"));
23+
Assert.That(parsingResult.LiquidTemplate.Render(ctx).Result, Is.EqualTo("<div>Hello World</div>"));
2424

2525
}
2626

@@ -36,9 +36,9 @@ public void Test_Simple_Collection()
3636
LiquidNumeric.Create(6)
3737
});
3838

39-
var templateResult = LiquidTemplate.Create("<ul>{% for item in items %}<li>{{item}}</li>{% endfor %}</ul>");
39+
var parsingResult = LiquidTemplate.Create("<ul>{% for item in items %}<li>{{item}}</li>{% endfor %}</ul>");
4040

41-
Assert.That(templateResult.LiquidTemplate.Render(ctx).Result, Is.EqualTo("<ul><li>2</li><li>4</li><li>6</li></ul>"));
41+
Assert.That(parsingResult.LiquidTemplate.Render(ctx).Result, Is.EqualTo("<ul><li>2</li><li>4</li><li>6</li></ul>"));
4242

4343
}
4444

@@ -58,9 +58,9 @@ public void Test_Simple_Hash()
5858
{"name", nameHash}
5959
});
6060

61-
var templateResult = LiquidTemplate.Create("You said '{{ greeting.address }} {{ greeting.name.first }} {{ greeting.name.last }}'");
61+
var parsingResult = LiquidTemplate.Create("You said '{{ greeting.address }} {{ greeting.name.first }} {{ greeting.name.last }}'");
6262

63-
Assert.That(templateResult.LiquidTemplate.Render(ctx).Result, Is.EqualTo("You said 'Hello Tobias Lütke'"));
63+
Assert.That(parsingResult.LiquidTemplate.Render(ctx).Result, Is.EqualTo("You said 'Hello Tobias Lütke'"));
6464

6565
}
6666

@@ -72,23 +72,31 @@ public void Test_Filter()
7272
.DefineLocalVariable("resultcount", LiquidNumeric.Create(42))
7373
.DefineLocalVariable("searchterm", LiquidString.Create("MiXeDcAsE"));
7474

75-
var templateResult = LiquidTemplate.Create("{{ resultcount }} {{ resultcount | pluralize: 'item', 'items' }} were found for '{{searchterm | downcase}}'.");
75+
var parsingResult = LiquidTemplate.Create("{{ resultcount }} {{ resultcount | pluralize: 'item', 'items' }} were found for '{{searchterm | downcase}}'.");
7676

77-
Assert.That(templateResult.LiquidTemplate.Render(ctx).Result, Is.EqualTo("42 items were found for 'mixedcase'."));
77+
Assert.That(parsingResult.LiquidTemplate.Render(ctx).Result, Is.EqualTo("42 items were found for 'mixedcase'."));
7878

7979
}
8080

8181
[Test]
8282
public void Test_Parsing_Error()
8383
{
84-
ITemplateContext ctx = new TemplateContext();
85-
var templateResult = LiquidTemplate.Create("This tag delimiter is not terminated: {% .");
86-
String error = String.Join(",", templateResult.ParsingErrors.Select(x => x.Message));
87-
Console.WriteLine(error);
88-
Assert.That(error, Is.StringContaining("no viable alternative at input"));
89-
84+
var parsingResult = LiquidTemplate.Create("This filter delimiter is not terminated: {{ myfilter");
85+
String error = String.Join(",", parsingResult.ParsingErrors.Select(x => x.ToString()));
86+
Assert.That(error, Is.StringContaining("line 1:52 at <EOF>: Missing '}}'"));
9087
}
9188

9289

90+
[Test]
91+
public void Test_Rendering_Error()
92+
{
93+
ITemplateContext ctx = new TemplateContext().WithAllFilters();
94+
var parsingResult = LiquidTemplate.Create("Divide by zero result in: {{ 1 | divided_by: 0}}");
95+
var renderingResult = parsingResult.LiquidTemplate.Render(ctx);
96+
String error = String.Join(",", renderingResult.RenderingErrors.Select(x => x.Message));
97+
//Console.WriteLine("The ERROR was : " + error);
98+
//Console.WriteLine("The RESULT was : " + renderingResult.Result);
99+
Assert.That(error, Is.StringContaining("Liquid error: divided by 0"));
100+
}
93101
}
94102
}

Liquid.NET/src/LiquidTemplate.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ public class LiquidTemplate
1111

1212
public static LiquidParsingResult Create(String template)
1313
{
14-
LiquidTemplate result = null;
1514
IList<LiquidError> errors = new List<LiquidError>();
1615
var liquidAst = new LiquidASTGenerator().Generate(template, errors.Add);
1716
//if (errors.Any())
@@ -20,7 +19,7 @@ public static LiquidParsingResult Create(String template)
2019
//}
2120
//else
2221
//{
23-
result = new LiquidTemplate(liquidAst);
22+
var result = new LiquidTemplate(liquidAst);
2423
//}
2524
return LiquidParsingResult.Create(result, errors);
2625
}

0 commit comments

Comments
 (0)