public async Task CaseProcessFirstWhen() { var e = new CaseStatement( B, new ElseStatement(new List <Statement> { new TextStatement(new StringSegment("y")) }), new[] { new WhenStatement(new List <Expression> { A, C }, TEXT("1")), new WhenStatement(new List <Expression> { B, C }, TEXT("2")), new WhenStatement(new List <Expression> { C }, TEXT("3")) } ); var sw = new StringWriter(); await e.WriteToAsync(sw, HtmlEncoder.Default, new TemplateContext()); Assert.Equal("2", sw.ToString()); }
public async Task CaseProcessElseWhenNoMatch() { var e = new CaseStatement( A, new ElseStatement(new[] { new TextStatement("y") }), new[] { new WhenStatement(new [] { B, C }, TEXT("x")) } ); var sw = new StringWriter(); await e.WriteToAsync(sw, HtmlEncoder.Default, new TemplateContext()); Assert.Equal("y", sw.ToString()); }
public async Task CaseCanProcessWhenMatchMultiple() { var e = new CaseStatement( A, null, new[] { new WhenStatement(new [] { A, B, C }, TEXT("x")) } ); var sw = new StringWriter(); await e.WriteToAsync(sw, HtmlEncoder.Default, new TemplateContext()); Assert.Equal("x", sw.ToString()); }
public async Task CaseProcessNoMatchWhen() { var e = new CaseStatement( A, null, new[] { new WhenStatement(new [] { B }, TEXT("2")), new WhenStatement(new [] { C }, TEXT("3")) } ); var sw = new StringWriter(); await e.WriteToAsync(sw, HtmlEncoder.Default, new TemplateContext()); Assert.Equal("", sw.ToString()); }
public async Task CaseDoesntProcessWhenNoMatch() { var e = new CaseStatement( A, null, new[] { new WhenStatement(new List <Expression> { B, C, D }, TEXT("x")) } ); var sw = new StringWriter(); await e.WriteToAsync(sw, HtmlEncoder.Default, new TemplateContext()); Assert.Equal("", sw.ToString()); }
public async Task CaseDoesntProcessElseWhenMatch() { var e = new CaseStatement( A, new ElseStatement(new List <Statement> { new TextStatement(new StringSegment("y")) }), new[] { new WhenStatement(new List <Expression> { A }, TEXT("x")) } ); var sw = new StringWriter(); await e.WriteToAsync(sw, HtmlEncoder.Default, new TemplateContext()); Assert.Equal("x", sw.ToString()); }
public async Task CaseProcessesMultipleStatements() { var e = new CaseStatement( A, null, new[] { new WhenStatement(new List <Expression> { A }, new List <Statement> { new TextStatement(new StringSegment("x")), new TextStatement(new StringSegment("y")) }) } ); var sw = new StringWriter(); await e.WriteToAsync(sw, HtmlEncoder.Default, new TemplateContext()); Assert.Equal("xy", sw.ToString()); }
public async Task CaseEvaluateMember() { var e = new CaseStatement( new MemberExpression( new IdentifierSegment("val") ), null, new[] { new WhenStatement(new List <Expression> { A }, TEXT("x")) } ); var sw = new StringWriter(); var context = new TemplateContext(); context.SetValue("val", "a"); await e.WriteToAsync(sw, HtmlEncoder.Default, context); Assert.Equal("x", sw.ToString()); }