- 将通用 Entities 命名空间拆分为具体业务实体子目录 - 更新所有实体类型引用为具体的 Entity 后缀类型 - 将 ModelType、ModelProvider、GroupMemberRole 等枚举重命名为 Enum 后缀 - 重构 AiModel 相关配置和映射逻辑适配新的实体结构 - 更新测试代码中的实体类型引用和枚举使用 - 调整应用层处理器中的实体创建和查询逻辑 - 修改 appsettings.json 中的基础设施主机配置为动态占位符模式
55 lines
1.9 KiB
C#
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 == "自定义表单菜单运行形态只支持列表和表单");
|
|
}
|
|
}
|