using System.Threading.Tasks; using Util.Templates.HandlebarsDotNet; using Xunit; namespace Util.Templates.Handlebars.Tests.Integration; /// /// Razor模板引擎测试 - 渲染模板字符串 /// public class HandlebarsTemplateEngineTest { /// /// Razor模板引擎 /// private readonly IHandlebarsTemplateEngine _templateEngine; /// /// 测试初始化 /// public HandlebarsTemplateEngineTest( IHandlebarsTemplateEngine templateEngine ) { _templateEngine = templateEngine; } /// /// 测试渲染模板 - 渲染没有数据的模板 /// [Fact] public void TestRender_1() { var result = _templateEngine.Render( "a" ); Assert.Equal( "a", result ); } /// /// 测试渲染模板 - 渲染带变量模板,使用匿名对象传递数据 /// [Fact] public void TestRender_2() { var result = _templateEngine.Render( "hello {{Name}}", new { Name = "util" } ); Assert.Equal( "hello util", result ); } /// /// 测试渲染模板 - 中文编码 /// [Fact] public void TestRender_3() { var source = "
{{Text}} {}
"; var value = new { Text = "<你好>" }; var actual2 = _templateEngine.Render( source, value ); Assert.Equal( "
<你好> {}
", actual2 ); } /// /// 测试渲染模板 - Html编码器 /// [Fact] public void TestHtmlEncoder() { var source = "
{{Text2}} {}
"; var value = new { Text2 = "<你好>" }; var actual2 = _templateEngine.HtmlEncoder().Render( source, value ); Assert.Equal( "
<你好> {}
", actual2 ); } /// /// 测试异步渲染模板 /// [Fact] public async Task TestRenderAsync() { var result = await _templateEngine.RenderAsync( "a" ); Assert.Equal( "a", result ); } /// /// 测试渲染模板 - 渲染带变量模板,使用匿名对象传递数据 /// [Fact] public async Task TestRenderAsync_2() { var result = await _templateEngine.RenderAsync( "hello {{Name}}", new { Name = "util" } ); Assert.Equal( "hello util", result ); } }