From 543949bcd29eac657be456a1427dc3d6fcd35ff2 Mon Sep 17 00:00:00 2001 From: 0007 <0007@qq.com> Date: Wed, 27 Aug 2025 19:58:12 +0800 Subject: [PATCH] Add File --- .../core/test/chain/ChainNodeLoopTest.java | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 agents-flex-core/src/test/java/com/agentsflex/core/test/chain/ChainNodeLoopTest.java diff --git a/agents-flex-core/src/test/java/com/agentsflex/core/test/chain/ChainNodeLoopTest.java b/agents-flex-core/src/test/java/com/agentsflex/core/test/chain/ChainNodeLoopTest.java new file mode 100644 index 0000000..7adbbdb --- /dev/null +++ b/agents-flex-core/src/test/java/com/agentsflex/core/test/chain/ChainNodeLoopTest.java @@ -0,0 +1,93 @@ +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 ChainNodeLoopTest { + + @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); + System.out.println("b>>> execute!"); + return Maps.of(); + } + }; + b.setId("b"); + b.setLoopEnable(true); + b.setMaxLoopCount(5); + chain.addNode(b); + + ChainNode c = new ChainNode() { + @Override + protected Map execute(Chain chain) { + System.out.println("c>>> execute!"); + return Maps.of(); + } + }; + c.setId("c"); + chain.addNode(c); + + ChainNode d = new ChainNode() { + @Override + protected Map execute(Chain chain) { + System.out.println("d>>> execute!"); + return Maps.of(); + } + }; + d.setId("d"); + d.setCondition(new NodeCondition() { + @Override + public boolean check(Chain chain, NodeContext context, Map executeResult) { + System.out.println("d check >>>> " + context.isUpstreamFullyExecuted()); + 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<>()); + + } +}