build-flow.api/tests/BuildFlow.Platform.Tests/Menus/MenuRuntimeViewModeValidatorTests.cs
xiangning 3b13099378 refactor(domain): 重构领域实体结构并更新枚举命名
- 将通用 Entities 命名空间拆分为具体业务实体子目录
- 更新所有实体类型引用为具体的 Entity 后缀类型
- 将 ModelType、ModelProvider、GroupMemberRole 等枚举重命名为 Enum 后缀
- 重构 AiModel 相关配置和映射逻辑适配新的实体结构
- 更新测试代码中的实体类型引用和枚举使用
- 调整应用层处理器中的实体创建和查询逻辑
- 修改 appsettings.json 中的基础设施主机配置为动态占位符模式
2026-07-19 14:02:32 +08:00

55 lines
1.9 KiB
C#

using BuildFlow.Platform.Application.Menus.Commands;
using BuildFlow.Platform.Application.Menus.Validators;
using BuildFlow.Platform.Domain.Enums;
using FluentAssertions;
using Xunit;
namespace BuildFlow.Platform.Tests.Menus;
/// <summary>
/// 菜单运行时形态校验测试。BuildFlow 自定义菜单当前只支持列表和表单两种形态。
/// </summary>
public class MenuRuntimeViewModeValidatorTests
{
[Fact]
public void CreateMenuCommand_ShouldRejectDetailRuntimeViewMode()
{
var validator = new CreateMenuCommandValidator();
var result = validator.Validate(new CreateMenuCommand
{
Code = "buildflow.form.expense.detail",
FormDefinitionId = Guid.NewGuid(),
Name = "BuildFlowFormExpenseDetail",
Path = "/buildflow/runtime/forms/expense/detail",
RenderType = MenuRenderTypeEnum.BuildFlowForm,
RuntimeViewMode = MenuRuntimeViewModeEnum.Detail,
Title = "费用申请详情",
});
result.IsValid.Should().BeFalse();
result.Errors.Should().Contain(x =>
x.PropertyName == nameof(CreateMenuCommand.RuntimeViewMode) &&
x.ErrorMessage == "自定义表单菜单运行形态只支持列表和表单");
}
[Fact]
public void UpdateMenuCommand_ShouldRejectDetailRuntimeViewMode()
{
var validator = new UpdateMenuCommandValidator();
var result = validator.Validate(new UpdateMenuCommand
{
Id = 100,
FormDefinitionId = Guid.NewGuid(),
RenderType = MenuRenderTypeEnum.BuildFlowForm,
RuntimeViewMode = MenuRuntimeViewModeEnum.Detail,
});
result.IsValid.Should().BeFalse();
result.Errors.Should().Contain(x =>
x.PropertyName == nameof(UpdateMenuCommand.RuntimeViewMode) &&
x.ErrorMessage == "自定义表单菜单运行形态只支持列表和表单");
}
}