From 48ec8d53763fcb9b3b3573095592ee796215a5eb Mon Sep 17 00:00:00 2001 From: 0007 <0007@qq.com> Date: Wed, 27 Aug 2025 19:58:13 +0800 Subject: [PATCH] Add File --- .../core/test/chain/ChainConditionTest.java | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 agents-flex-core/src/test/java/com/agentsflex/core/test/chain/ChainConditionTest.java diff --git a/agents-flex-core/src/test/java/com/agentsflex/core/test/chain/ChainConditionTest.java b/agents-flex-core/src/test/java/com/agentsflex/core/test/chain/ChainConditionTest.java new file mode 100644 index 0000000..c35802d --- /dev/null +++ b/agents-flex-core/src/test/java/com/agentsflex/core/test/chain/ChainConditionTest.java @@ -0,0 +1,90 @@ +package com.agentsflex.core.test.chain; + +import com.agentsflex.core.chain.*; +import com.agentsflex.core.util.Maps; +import org.junit.Test; + +import java.util.HashMap; +import java.util.Map; + +public class ChainConditionTest { + + @Test + public void test() { + + Chain chain = new Chain(); + + ChainNode a = new ChainNode() { + @Override + protected Map execute(Chain chain) { + return Maps.of(); + } + }; + a.setId("a"); + chain.addNode(a); + + ChainNode b = new ChainNode() { + @Override + protected Map execute(Chain chain) { + setNodeStatus(ChainNodeStatus.FINISHED_NORMAL); + return Maps.of(); + } + }; + b.setId("b"); + chain.addNode(b); + + ChainNode c = new ChainNode() { + @Override + protected Map execute(Chain chain) { + setNodeStatus(ChainNodeStatus.FINISHED_NORMAL); + return Maps.of(); + } + }; + c.setId("c"); + chain.addNode(c); + + ChainNode d = new ChainNode() { + @Override + protected Map execute(Chain chain) { + System.out.println("聚合"); + return Maps.of(); + } + }; + d.setId("d"); + d.setCondition(new NodeCondition() { + @Override + public boolean check(Chain chain, NodeContext context, Map executeResult) { + System.out.println("check!!!"); + return context.isUpstreamFullyExecuted(); + } + }); + chain.addNode(d); + + ChainEdge ab = new ChainEdge(); + ab.setSource("a"); + ab.setTarget("b"); + chain.addEdge(ab); + + ChainEdge ac = new ChainEdge(); + ac.setSource("a"); + ac.setTarget("c"); + chain.addEdge(ac); + + + ChainEdge bd = new ChainEdge(); + bd.setSource("b"); + bd.setTarget("d"); + chain.addEdge(bd); + + ChainEdge cd = new ChainEdge(); + cd.setSource("c"); + cd.setTarget("d"); + chain.addEdge(cd); + + + // A→B→D + // ↘C↗ + chain.executeForResult(new HashMap<>()); + + } +}