mirror of
https://github.com/slhaf/Partner.git
synced 2026-05-12 16:53:04 +08:00
refactor(runner): remove unused static method definition in BuiltinActionRegistry
This commit is contained in:
@@ -24,11 +24,6 @@ public class BuiltinActionRegistry extends AbstractAgentModule.Standalone {
|
|||||||
@InjectCapability
|
@InjectCapability
|
||||||
private ActionCapability actionCapability;
|
private ActionCapability actionCapability;
|
||||||
|
|
||||||
public static BuiltinActionDefinition definition(String name, MetaActionInfo metaActionInfo,
|
|
||||||
Function<Map<String, Object>, Object> invoker) {
|
|
||||||
return new BuiltinActionDefinition(BUILTIN_LOCATION + "::" + name, metaActionInfo, invoker);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Init
|
@Init
|
||||||
public void init() {
|
public void init() {
|
||||||
definitions.clear();
|
definitions.clear();
|
||||||
@@ -44,7 +39,7 @@ public class BuiltinActionRegistry extends AbstractAgentModule.Standalone {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void defineBuiltinAction(String name, MetaActionInfo metaActionInfo, Function<Map<String, Object>, Object> invoker) {
|
public void defineBuiltinAction(String name, MetaActionInfo metaActionInfo, Function<Map<String, Object>, Object> invoker) {
|
||||||
BuiltinActionDefinition definition = new BuiltinActionDefinition(name, metaActionInfo, invoker);
|
BuiltinActionDefinition definition = new BuiltinActionDefinition(BUILTIN_LOCATION + "::" + name, metaActionInfo, invoker);
|
||||||
definitions.put(definition.actionKey(), definition);
|
definitions.put(definition.actionKey(), definition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -888,19 +888,9 @@ public class LocalRunnerClientTest {
|
|||||||
ConcurrentHashMap<String, MetaActionInfo> existedMetaActions = new ConcurrentHashMap<>();
|
ConcurrentHashMap<String, MetaActionInfo> existedMetaActions = new ConcurrentHashMap<>();
|
||||||
ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();
|
ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();
|
||||||
LocalRunnerClient client = new LocalRunnerClient(existedMetaActions, executor, tempDir.toString());
|
LocalRunnerClient client = new LocalRunnerClient(existedMetaActions, executor, tempDir.toString());
|
||||||
BuiltinActionRegistry registry = new BuiltinActionRegistry() {
|
BuiltinActionRegistry registry = new BuiltinActionRegistry();
|
||||||
@Override
|
|
||||||
protected List<BuiltinActionDefinition> buildDefaultActionDefinitions() {
|
|
||||||
return List.of(
|
|
||||||
definition("echo", buildMetaActionInfo("echo"), params -> params.get("value"))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
client.setBuiltinActionRegistry(registry);
|
client.setBuiltinActionRegistry(registry);
|
||||||
registry.getDefinitions().put(
|
registry.defineBuiltinAction("echo", buildMetaActionInfo("echo"), params -> params.get("value"));
|
||||||
"builtin::echo",
|
|
||||||
BuiltinActionRegistry.definition("echo", buildMetaActionInfo("echo"), params -> params.get("value"))
|
|
||||||
);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
MetaAction metaAction = buildMetaAction(MetaAction.Type.BUILTIN, "builtin", "echo", Map.of("value", "ok"));
|
MetaAction metaAction = buildMetaAction(MetaAction.Type.BUILTIN, "builtin", "echo", Map.of("value", "ok"));
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSONObject;
|
|||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import work.slhaf.partner.core.action.ActionCapability;
|
import work.slhaf.partner.core.action.ActionCapability;
|
||||||
import work.slhaf.partner.core.action.ActionCore;
|
|
||||||
import work.slhaf.partner.core.action.entity.MetaActionInfo;
|
import work.slhaf.partner.core.action.entity.MetaActionInfo;
|
||||||
import work.slhaf.partner.core.action.exception.MetaActionNotFoundException;
|
import work.slhaf.partner.core.action.exception.MetaActionNotFoundException;
|
||||||
import work.slhaf.partner.core.action.runner.RunnerClient;
|
import work.slhaf.partner.core.action.runner.RunnerClient;
|
||||||
@@ -16,6 +15,7 @@ import java.util.Map;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import static org.mockito.Mockito.*;
|
import static org.mockito.Mockito.*;
|
||||||
|
import static work.slhaf.partner.core.action.ActionCore.BUILTIN_LOCATION;
|
||||||
|
|
||||||
class BuiltinActionRegistryTest {
|
class BuiltinActionRegistryTest {
|
||||||
|
|
||||||
@@ -25,16 +25,6 @@ class BuiltinActionRegistryTest {
|
|||||||
field.set(registry, actionCapability);
|
field.set(registry, actionCapability);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Map<String, BuiltinActionRegistry.BuiltinActionDefinition> indexDefinitions(
|
|
||||||
List<BuiltinActionRegistry.BuiltinActionDefinition> definitions
|
|
||||||
) {
|
|
||||||
Map<String, BuiltinActionRegistry.BuiltinActionDefinition> map = new HashMap<>();
|
|
||||||
for (BuiltinActionRegistry.BuiltinActionDefinition definition : definitions) {
|
|
||||||
map.put(definition.actionKey(), definition);
|
|
||||||
}
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static MetaActionInfo buildMetaActionInfo(String description) {
|
private static MetaActionInfo buildMetaActionInfo(String description) {
|
||||||
return new MetaActionInfo(
|
return new MetaActionInfo(
|
||||||
false,
|
false,
|
||||||
@@ -49,15 +39,28 @@ class BuiltinActionRegistryTest {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static BuiltinActionRegistry.BuiltinActionDefinition buildDefinition(
|
||||||
|
String name,
|
||||||
|
MetaActionInfo metaActionInfo,
|
||||||
|
java.util.function.Function<Map<String, Object>, Object> invoker
|
||||||
|
) {
|
||||||
|
return new BuiltinActionRegistry.BuiltinActionDefinition(
|
||||||
|
BUILTIN_LOCATION + "::" + name,
|
||||||
|
metaActionInfo,
|
||||||
|
invoker
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testInitRegistersMetaActionsAndMountsRunner() throws Exception {
|
void testInitRegistersMetaActionsAndMountsRunner() throws Exception {
|
||||||
ActionCapability actionCapability = mock(ActionCapability.class);
|
ActionCapability actionCapability = mock(ActionCapability.class);
|
||||||
RunnerClient runnerClient = mock(RunnerClient.class);
|
RunnerClient runnerClient = mock(RunnerClient.class);
|
||||||
when(actionCapability.runnerClient()).thenReturn(runnerClient);
|
when(actionCapability.runnerClient()).thenReturn(runnerClient);
|
||||||
|
|
||||||
BuiltinActionRegistry registry = new TestRegistry(List.of(
|
BuiltinActionRegistry registry = spy(new BuiltinActionRegistry());
|
||||||
BuiltinActionRegistry.definition("echo", buildMetaActionInfo("echo"), params -> params.get("value"))
|
doReturn(List.of(
|
||||||
));
|
buildDefinition("echo", buildMetaActionInfo("echo"), params -> params.get("value"))
|
||||||
|
)).when(registry).buildDefaultActionDefinitions();
|
||||||
injectActionCapability(registry, actionCapability);
|
injectActionCapability(registry, actionCapability);
|
||||||
|
|
||||||
registry.init();
|
registry.init();
|
||||||
@@ -71,13 +74,10 @@ class BuiltinActionRegistryTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testCallReturnsStringifiedResults() {
|
void testCallReturnsStringifiedResults() {
|
||||||
BuiltinActionRegistry registry = new TestRegistry(List.of(
|
BuiltinActionRegistry registry = new BuiltinActionRegistry();
|
||||||
BuiltinActionRegistry.definition("echo", buildMetaActionInfo("echo"), params -> params.get("value")),
|
registry.defineBuiltinAction("echo", buildMetaActionInfo("echo"), params -> params.get("value"));
|
||||||
BuiltinActionRegistry.definition("json", buildMetaActionInfo("json"), params -> Map.of("ok", true)),
|
registry.defineBuiltinAction("json", buildMetaActionInfo("json"), params -> Map.of("ok", true));
|
||||||
BuiltinActionRegistry.definition("nil", buildMetaActionInfo("nil"), params -> null)
|
registry.defineBuiltinAction("nil", buildMetaActionInfo("nil"), params -> null);
|
||||||
));
|
|
||||||
|
|
||||||
registry.getDefinitions().putAll(indexDefinitions(registry.buildDefaultActionDefinitions()));
|
|
||||||
|
|
||||||
Assertions.assertEquals("hello", registry.call("builtin::echo", Map.of("value", "hello")));
|
Assertions.assertEquals("hello", registry.call("builtin::echo", Map.of("value", "hello")));
|
||||||
Assertions.assertEquals("{\"ok\":true}", registry.call("builtin::json", Map.of()));
|
Assertions.assertEquals("{\"ok\":true}", registry.call("builtin::json", Map.of()));
|
||||||
@@ -86,50 +86,20 @@ class BuiltinActionRegistryTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testCallThrowsWhenMissingDefinition() {
|
void testCallThrowsWhenMissingDefinition() {
|
||||||
BuiltinActionRegistry registry = new TestRegistry(List.of());
|
BuiltinActionRegistry registry = new BuiltinActionRegistry();
|
||||||
Assertions.assertThrows(MetaActionNotFoundException.class, () -> registry.call("builtin::missing", Map.of()));
|
Assertions.assertThrows(MetaActionNotFoundException.class, () -> registry.call("builtin::missing", Map.of()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testCallPropagatesInvokerFailure() {
|
void testCallPropagatesInvokerFailure() {
|
||||||
BuiltinActionRegistry registry = new TestRegistry(List.of(
|
BuiltinActionRegistry registry = new BuiltinActionRegistry();
|
||||||
BuiltinActionRegistry.definition("boom", buildMetaActionInfo("boom"), params -> {
|
registry.defineBuiltinAction("boom", buildMetaActionInfo("boom"), params -> {
|
||||||
throw new IllegalStateException("boom");
|
throw new IllegalStateException("boom");
|
||||||
})
|
});
|
||||||
));
|
|
||||||
registry.getDefinitions().putAll(indexDefinitions(registry.buildDefaultActionDefinitions()));
|
|
||||||
|
|
||||||
IllegalStateException exception = Assertions.assertThrows(IllegalStateException.class,
|
IllegalStateException exception = Assertions.assertThrows(IllegalStateException.class,
|
||||||
() -> registry.call("builtin::boom", Map.of()));
|
() -> registry.call("builtin::boom", Map.of()));
|
||||||
Assertions.assertEquals("boom", exception.getMessage());
|
Assertions.assertEquals("boom", exception.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
void testActionCoreLoadsBuiltinMetaAction() throws Exception {
|
|
||||||
ActionCore actionCore = new ActionCore();
|
|
||||||
try {
|
|
||||||
actionCore.registerMetaActions(Map.of("builtin::echo", buildMetaActionInfo("echo")));
|
|
||||||
|
|
||||||
Assertions.assertTrue(actionCore.listAvailableMetaActions().containsKey("builtin::echo"));
|
|
||||||
Assertions.assertEquals("echo", actionCore.loadMetaActionInfo("builtin::echo").getDescription());
|
|
||||||
Assertions.assertEquals("builtin::echo", actionCore.loadMetaAction("builtin::echo").getKey());
|
|
||||||
Assertions.assertEquals(ActionCore.BUILTIN_LOCATION, actionCore.loadMetaAction("builtin::echo").getLocation());
|
|
||||||
} finally {
|
|
||||||
actionCore.getExecutor(ActionCore.ExecutorType.PLATFORM).shutdownNow();
|
|
||||||
actionCore.getExecutor(ActionCore.ExecutorType.VIRTUAL).shutdownNow();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class TestRegistry extends BuiltinActionRegistry {
|
|
||||||
private final List<BuiltinActionDefinition> definitions;
|
|
||||||
|
|
||||||
private TestRegistry(List<BuiltinActionDefinition> definitions) {
|
|
||||||
this.definitions = definitions;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected List<BuiltinActionDefinition> buildDefaultActionDefinitions() {
|
|
||||||
return definitions;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user