Example #1
0
        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>");
        }
Example #2
0
        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>");
        }
Example #3
0
        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("&lt;div id=&#39;foo&#39;&gt;bar&lt;/div&gt;");
        }
Example #4
0
        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>");
        }
Example #5
0
        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!");
        }
Example #6
0
        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");
        }
Example #7
0
        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");
        }
Example #8
0
        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");
        }
Example #9
0
        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");
        }
Example #10
0
        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();
        }
Example #11
0
        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");
        }