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 );
}
}