This commit is contained in:
2025-08-27 19:58:12 +08:00
parent f6ffbdb5fd
commit f4cd2c3119

View File

@@ -0,0 +1,67 @@
package com.agentsflex.core.test.chain;
import com.agentsflex.core.chain.*;
import com.agentsflex.core.chain.listener.ChainSuspendListener;
import com.agentsflex.core.util.Maps;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
public class ChainHolderTest {
@Test
public void test() {
Chain chain = new Chain();
TestNode a = new TestNode();
a.setId("a");
chain.addNode(a);
TestNode b = new TestNode();
b.setId("b");
b.addInputParameter(new Parameter("p1", true));
chain.addNode(b);
TestNode c = new TestNode();
c.setId("c");
chain.addNode(c);
ChainEdge ab = new ChainEdge();
ab.setSource("a");
ab.setTarget("b");
chain.addEdge(ab);
ChainEdge ac = new ChainEdge();
ac.setSource("b");
ac.setTarget("c");
chain.addEdge(ac);
final String[] holder = {null};
chain.addSuspendListener(new ChainSuspendListener() {
@Override
public void onSuspend(Chain chain) {
System.out.println("Suspend0");
holder[0] = ChainHolder.fromChain(chain).toJSON();
}
});
// A→B→C
Map<String, Object> result = chain.executeForResult(new HashMap<>(),true);
System.out.println(result);
if (holder[0] != null){
Chain chain1 = ChainHolder.fromJSON(holder[0]).toChain();
chain1.addSuspendListener(new ChainSuspendListener() {
@Override
public void onSuspend(Chain chain) {
System.out.println("Suspend1");
}
});
System.out.println(chain1.executeForResult(Maps.of(),true));
System.out.println(chain1.executeForResult(Maps.of("p1","v1"),true));
}
}
}