Files
Util/test/Util.Ui.Tests/Razor/PartViewPathResolverTest.cs
utilcore 66926b2a36 1. 代码生成器客户端配置新增 Microfrontend 属性,用于控制是否启用微前端模板.
2. 随机数辅助操作类 Util.Helpers.Random 新增 GetValues 方法, 用于从集合中随机获取指定数量子集.
3. 新增Razor页面监听服务 IRazorWatchService 及相关类型,用于监视Razor页面更改时自动生成Html文件.
4. 修复表格组件复选框,单选框,序号在有合并表头的情况下显示不正确的错误.
2024-03-24 11:58:27 +08:00

61 lines
2.0 KiB
C#

using System.Text;
using Moq;
using Util.Ui.Razor.Internal;
using Xunit;
namespace Util.Ui.Tests.Razor;
/// <summary>
/// 分部视图路径解析器测试
/// </summary>
public class PartViewPathResolverTest {
/// <summary>
/// 分部视图路径解析器
/// </summary>
private readonly PartViewPathResolver _resolver;
/// <summary>
/// 测试初始化
/// </summary>
public PartViewPathResolverTest() {
var mockFinder = new Mock<IPartViewPathFinder>();
mockFinder.Setup( t => t.Find( It.IsAny<string>(), It.IsAny<string>() ) ).Returns<string, string>( ( _, partName ) => partName );
_resolver = new PartViewPathResolver( mockFinder.Object );
}
/// <summary>
/// 测试解析分部视图路径 - 解析空值
/// </summary>
[Fact]
public void TestResolve_1() {
Assert.Empty( _resolver.Resolve( null, "a" ) );
Assert.Empty( _resolver.Resolve( "a", null ) );
Assert.Empty( _resolver.Resolve( "a", "" ) );
Assert.Empty( _resolver.Resolve( "a", " " ) );
Assert.Empty( _resolver.Resolve( "a", "a" ) );
}
/// <summary>
/// 测试解析分部视图路径 - 包含1个分部视图
/// </summary>
[Fact]
public void TestResolve_2() {
var result = _resolver.Resolve( "Views/Home", "@page\r\n\r\ntest\r\n\r\n\r\n\r\n <partial name=\"Part\"/> abc" );
Assert.Single( result );
Assert.Equal( "Part", result[0] );
}
/// <summary>
/// 测试解析分部视图路径 - 包含2个分部视图
/// </summary>
[Fact]
public void TestResolve_3() {
var content = new StringBuilder();
content.AppendLine( " @page\r\n\r\ntest\r\n\r\n\r\n\r\n <partial name=\"Part\"/> abc " );
content.AppendLine( "r\ntest\r\n\r\n\r\n\r\n < partial name = \"Part2\" / > bbb " );
var result = _resolver.Resolve( "Views/Home", content.ToString() );
Assert.Equal( 2, result.Count );
Assert.Equal( "Part", result[0] );
Assert.Equal( "Part2", result[1] );
}
}