build-flow.api/tests/BuildFlow.Workflow.Tests/BuildFlow/ExecuteBuildFlowButtonCommandHandlerTests.cs
xiangning 7479521546 feat(rag): 实现RAG模块的Hybrid检索和向量索引优化
- 添加HNSW向量索引提升检索性能
- 实现Hybrid检索模式支持向量和关键词双路召回
- 采用RRF算法融合多路召回结果
- 支持ParentChild分块模式的上下文回填
- 优化向量写入采用批量SQL操作提升性能
- 添加RAG PostgreSQL连接字符串配置
- 更新部署脚本增加PGVector集成测试
- 修正表名引用从document_chunks到b_document_chunks
- 重构RagRetrievalService实现完整的检索流程
- 增加重排策略支持关键词和LLM重排
- 修改服务器部署地址配置
2026-08-11 10:59:09 +08:00

31 lines
1.2 KiB
C#

using FluentAssertions;
using NSubstitute;
using Scripting.Application.DTOs;
using Workflow.Application.BuildFlow.Buttons.Commands;
using Workflow.Application.BuildFlow.Buttons.DTOs;
using Workflow.Application.BuildFlow.Buttons.Handlers;
using Workflow.Application.BuildFlow.Buttons.Services;
using Xunit;
namespace BuildFlow.Workflow.Tests.BuildFlow;
public class ExecuteBuildFlowButtonCommandHandlerTests
{
[Fact]
public async Task ExecuteBuildFlowButton_DelegatesToExecutor()
{
var executor = Substitute.For<IBuildFlowButtonActionExecutor>();
executor.ExecuteAsync(Arg.Any<Guid>(), Arg.Any<string>(), Arg.Any<CancellationToken>())
.Returns(new BuildFlowButtonActionResult(true, new List<ScriptExecutionResult>()));
var handler = new ExecuteBuildFlowButtonCommandHandler(executor);
var command = new ExecuteBuildFlowButtonCommand(Guid.NewGuid(), "{\"x\":1}");
var result = await handler.Handle(command, CancellationToken.None);
result.Should().NotBeNull();
result.Success.Should().BeTrue();
await executor.Received(1).ExecuteAsync(command.ButtonId, command.InputJson, Arg.Any<CancellationToken>());
}
}