public async Task I_can_render_a_template_that_puts_text_inside_of_an_HTML_attribute() { // Arrange using var engine = new MiniRazorTemplateEngine(); var template = engine.Compile("<div class=\"xyz @Model.Foo\">fff</div>"); // Act var result = await template.RenderAsync(new { Foo = "bar" }); // Assert result.Should().Be("<div class=\"xyz bar\">fff</div>"); }
public async Task I_can_render_a_template_that_contains_HTML_tokens_and_they_do_not_get_encoded() { // Arrange using var engine = new MiniRazorTemplateEngine(); var template = engine.Compile("<div id=\"zzz\">@Model.Foo</div>"); // Act var result = await template.RenderAsync(new { Foo = "bar" }); // Assert result.Should().Be("<div id=\"zzz\">bar</div>"); }
public async Task I_can_render_a_template_that_puts_text_containing_HTML_tokens_and_it_gets_encoded() { // Arrange using var engine = new MiniRazorTemplateEngine(); var template = engine.Compile("@(\"<div id='foo'>bar</div>\")"); // Act var result = await template.RenderAsync(); // Assert result.Should().Be("<div id='foo'>bar</div>"); }
public async Task I_can_render_a_template_that_puts_text_containing_HTML_tokens_and_disable_encoding() { // Arrange using var engine = new MiniRazorTemplateEngine(); var template = engine.Compile("@Raw(\"<div id='foo'>bar</div>\")"); // Act var result = await template.RenderAsync(); // Assert result.Should().Be("<div id='foo'>bar</div>"); }
public async Task I_can_render_a_template_with_an_anonymous_model() { // Arrange using var engine = new MiniRazorTemplateEngine(); var template = engine.Compile("Hello, @Model.Foo!"); // Act var result = await template.RenderAsync(new { Foo = "World" }); // Assert result.Should().Be("Hello, World!"); }
public async Task I_can_render_a_template_which_calls_a_locally_defined_method() { // Arrange using var engine = new MiniRazorTemplateEngine(); var template = engine.Compile("@{ int GetNumber() => 42; }@GetNumber()"); // Act var result = await template.RenderAsync(); // Assert result.Should().Be("42"); }
public async Task I_can_render_a_template_which_calls_async_methods_on_a_model() { // Arrange using var engine = new MiniRazorTemplateEngine(); var template = engine.Compile("@await Model.GetSumAsync()"); // Act var result = await template.RenderAsync(new TestModelWithAsyncMethod(2, 5)); // Assert result.Should().Be("7"); }
public async Task I_can_render_a_template_with_an_internal_model() { // Arrange using var engine = new MiniRazorTemplateEngine(); var template = engine.Compile("@Model.Foo", "FriendlyAssemblyName"); // Act var result = await template.RenderAsync(new TestInternalModel("bar")); // Assert result.Should().Be("bar"); }
public async Task I_can_render_a_template_with_a_model() { // Arrange using var engine = new MiniRazorTemplateEngine(); var template = engine.Compile("@Model.Foo & @Model.Number"); // Act var result = await template.RenderAsync(new TestModel("bar", 42)); // Assert result.Should().Be("bar & 42"); }
public async Task I_can_render_a_template_multiple_times_without_recompiling() { // Arrange using var engine = new MiniRazorTemplateEngine(); var template = engine.Compile("Hello, @Model.Foo!"); // Act var results = await Task.WhenAll( Enumerable.Range(0, 5).Select(async _ => await template.RenderAsync(new { Foo = "World" })) ); // Assert results.Distinct().Should().ContainSingle(); }
public async Task I_can_render_a_template_with_an_anonymous_model_that_contains_nested_anonymous_objects() { // Arrange using var engine = new MiniRazorTemplateEngine(); var template = engine.Compile("@Model.Foo, @Model.Bar.X, @Model.Bar.Y"); // Act var result = await template.RenderAsync(new { Foo = "xxx", Bar = new { X = 42, Y = 13 } }); // Assert result.Should().Be("xxx, 42, 13"); }