refactor(framework): add Result chain APIs and align runtime exception handling

This commit is contained in:
2026-04-12 16:58:36 +08:00
parent 94d91d9746
commit 19f56d11f0
14 changed files with 274 additions and 190 deletions

View File

@@ -8,6 +8,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import work.slhaf.partner.core.action.entity.*;
import work.slhaf.partner.core.action.exception.ActionLookupException;
import work.slhaf.partner.framework.agent.exception.AgentRuntimeException;
import work.slhaf.partner.framework.agent.support.Result;
import work.slhaf.partner.module.action.executor.entity.HistoryAction;
@@ -350,15 +351,12 @@ class ActionCoreTest {
actionCore.registerMetaActions(Map.of("builtin::demo", metaActionInfo));
Result<MetaAction> success = actionCore.loadMetaAction("builtin::demo");
assertTrue(success.isSuccess());
assertEquals("demo", success.getOrNull().getName());
assertEquals("demo", success.fold(MetaAction::getName, ex -> fail(ex.getMessage())));
Result<MetaAction> failure = actionCore.loadMetaAction("builtin::missing");
assertTrue(failure.isFailure());
assertInstanceOf(ActionLookupException.class, failure.exceptionOrNull());
assertInstanceOf(ActionLookupException.class, assertThrows(AgentRuntimeException.class, failure::getOrThrow));
Result<MetaActionInfo> infoFailure = actionCore.loadMetaActionInfo("builtin::missing");
assertTrue(infoFailure.isFailure());
assertInstanceOf(ActionLookupException.class, infoFailure.exceptionOrNull());
assertInstanceOf(ActionLookupException.class, assertThrows(AgentRuntimeException.class, infoFailure::getOrThrow));
}
}