refactor(core): migrate deprecated exceptions to new hierarchy and align tests

This commit is contained in:
2026-04-11 16:10:34 +08:00
parent b8cb2afbcf
commit 1b48e955bd
28 changed files with 414 additions and 175 deletions

View File

@@ -34,5 +34,10 @@ public class RunnerClientTest {
public void persistSerialize(MetaActionInfo metaActionInfo, ActionFileMetaData fileMetaData) {
}
@Override
public void close() {
}
}
}

View File

@@ -1,8 +1,8 @@
package work.slhaf.partner.core.action.runner.policy
import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertFalse
import org.junit.jupiter.api.Test
import work.slhaf.partner.core.action.exception.ActionInitFailedException
class BwrapPolicyProviderTest {
@@ -59,28 +59,4 @@ class BwrapPolicyProviderTest {
assertFalse(wrapped.args.contains("--unshare-net"))
}
@Test
fun `require command available throws ActionInitFailedException when command missing`() {
val exception = assertThrows(ActionInitFailedException::class.java) {
bwrapPolicyFileFacadeClass().requireCommandAvailable("definitely-not-found-bwrap-command")
}
assertTrue(exception.message!!.contains("definitely-not-found-bwrap-command"))
}
}
private fun bwrapPolicyFileFacadeClass(): Class<*> {
return Class.forName("work.slhaf.partner.core.action.runner.policy.BwrapPolicyProviderKt")
}
private fun Class<*>.requireCommandAvailable(command: String) {
val method = getDeclaredMethod("requireCommandAvailable", String::class.java)
method.isAccessible = true
try {
method.invoke(null, command)
} catch (e: java.lang.reflect.InvocationTargetException) {
throw (e.targetException as? RuntimeException)
?: (e.targetException as? Error)
?: RuntimeException(e.targetException)
}
}

View File

@@ -5,7 +5,7 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import work.slhaf.partner.core.action.ActionCapability;
import work.slhaf.partner.core.action.entity.MetaActionInfo;
import work.slhaf.partner.core.action.exception.MetaActionNotFoundException;
import work.slhaf.partner.core.action.exception.ActionLookupException;
import work.slhaf.partner.core.action.runner.RunnerClient;
import java.lang.reflect.Field;
@@ -80,14 +80,14 @@ class BuiltinActionRegistryTest {
registry.defineBuiltinAction("nil", buildMetaActionInfo("nil"), params -> null);
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()));
Assertions.assertEquals("null", registry.call("builtin::nil", Map.of()));
}
@Test
void testCallThrowsWhenMissingDefinition() {
BuiltinActionRegistry registry = new BuiltinActionRegistry();
Assertions.assertThrows(MetaActionNotFoundException.class, () -> registry.call("builtin::missing", Map.of()));
Assertions.assertThrows(ActionLookupException.class, () -> registry.call("builtin::missing", Map.of()));
}
@Test

View File

@@ -201,5 +201,10 @@ class BuiltinDynamicActionProviderTest {
public void persistSerialize(MetaActionInfo metaActionInfo, ActionFileMetaData fileMetaData) {
persistCalled = true;
}
@Override
public void close() {
}
}
}