[framework] TxCore → common-framework (ACM-FW-001)

This commit is contained in:
forge-bot 2026-07-18 11:11:58 +00:00
parent 3491780f0a
commit bcc27280dc

View file

@ -0,0 +1,75 @@
package com.klaro.acquirecore.framework;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class TxServiceRegistryTest {
private TxServiceRegistry registry;
@BeforeEach
void setUp() {
registry = new TxServiceRegistry();
registry.init();
}
@Test
void registerAndLookupService() {
TxService service = (ctx, input) -> "result";
registry.registerService("testService", service);
assertTrue(registry.isRegistered("testService"));
assertEquals(service, registry.lookupService("testService"));
}
@Test
void lookupUnregisteredServiceReturnsNull() {
assertNull(registry.lookupService("nonExistent"));
assertFalse(registry.isRegistered("nonExistent"));
}
@Test
void unregisterService() {
TxService service = (ctx, input) -> "result";
registry.registerService("toRemove", service);
registry.unregisterService("toRemove");
assertFalse(registry.isRegistered("toRemove"));
}
@Test
void dispatchExecutesRegisteredService() {
TxService service = (ctx, input) -> "processed: " + input;
registry.registerService("echo", service);
TxContext ctx = new TxContext("echo");
TxResult<String> result = registry.dispatch("echo", ctx, "hello");
assertTrue(result.isSuccess());
assertEquals("processed: hello", result.getData());
}
@Test
void dispatchFailsForUnregisteredService() {
TxContext ctx = new TxContext("unknown");
TxResult<?> result = registry.dispatch("unknown", ctx, null);
assertFalse(result.isSuccess());
assertEquals("SERVICE_NOT_FOUND", result.getErrorCode());
}
@Test
void dispatchHandlesServiceException() {
TxService failingService = (ctx, input) -> { throw new RuntimeException("Service error"); };
registry.registerService("failing", failingService);
TxContext ctx = new TxContext("failing");
TxResult<?> result = registry.dispatch("failing", ctx, null);
assertFalse(result.isSuccess());
assertEquals("EXECUTION_FAILED", result.getErrorCode());
}
@Test
void getServiceCount() {
assertEquals(0, registry.getServiceCount());
registry.registerService("s1", (ctx, input) -> null);
registry.registerService("s2", (ctx, input) -> null);
assertEquals(2, registry.getServiceCount());
}
}