[framework] TxCore → common-framework (ACM-FW-001)
Some checks failed
ci / test (pull_request) Failing after 6s
Some checks failed
ci / test (pull_request) Failing after 6s
This commit is contained in:
parent
cb8ea46749
commit
31de34e3d1
1 changed files with 155 additions and 0 deletions
|
|
@ -0,0 +1,155 @@
|
|||
package com.klaro.acquirecore.framework;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* Consolidated unit tests for TxCore migration framework.
|
||||
*/
|
||||
class FrameworkTest {
|
||||
|
||||
// TxContext tests
|
||||
@Test
|
||||
void testTxContextDefaultConstructor() {
|
||||
TxContext ctx = new TxContext();
|
||||
assertNotNull(ctx.getTransactionId());
|
||||
assertEquals(TxContext.TransactionStatus.INITIALIZED, ctx.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testTxContextWithServiceName() {
|
||||
TxContext ctx = new TxContext("testService");
|
||||
assertEquals("testService", ctx.getServiceName());
|
||||
}
|
||||
|
||||
// TxResult tests
|
||||
@Test
|
||||
void testTxResultSuccess() {
|
||||
TxResult<String> result = TxResult.success("data");
|
||||
assertTrue(result.isSuccess());
|
||||
assertEquals("data", result.getData());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testTxResultFailure() {
|
||||
TxResult<String> result = TxResult.failure("ERR", "message");
|
||||
assertFalse(result.isSuccess());
|
||||
assertEquals("ERR", result.getErrorCode());
|
||||
}
|
||||
|
||||
// TxServiceRegistry tests
|
||||
@Test
|
||||
void testServiceRegistryRegisterAndGet() {
|
||||
TxServiceRegistry registry = new TxServiceRegistry();
|
||||
TxService service = new DefaultTxService("svc");
|
||||
registry.registerService("svc", service);
|
||||
assertTrue(registry.hasService("svc"));
|
||||
assertEquals(service, registry.getService("svc"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testServiceRegistryUnregister() {
|
||||
TxServiceRegistry registry = new TxServiceRegistry();
|
||||
registry.registerService("svc", new DefaultTxService("svc"));
|
||||
registry.unregisterService("svc");
|
||||
assertFalse(registry.hasService("svc"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testServiceRegistryExecuteInTransaction() {
|
||||
TxServiceRegistry registry = new TxServiceRegistry();
|
||||
registry.registerService("svc", new DefaultTxService("svc"));
|
||||
TxResult<String> result = registry.executeInTransaction("svc", ctx -> "ok");
|
||||
assertTrue(result.isSuccess());
|
||||
assertEquals("ok", result.getData());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testServiceRegistryUnknownService() {
|
||||
TxServiceRegistry registry = new TxServiceRegistry();
|
||||
TxResult<String> result = registry.executeInTransaction("unknown", ctx -> "ok");
|
||||
assertFalse(result.isSuccess());
|
||||
assertEquals("SERVICE_NOT_FOUND", result.getErrorCode());
|
||||
}
|
||||
|
||||
// TxTemplate tests
|
||||
@Test
|
||||
void testTxTemplateTxBegin() {
|
||||
TxTemplate template = new TxTemplate();
|
||||
TxContext ctx = template.txBegin("svc");
|
||||
assertEquals("svc", ctx.getServiceName());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testTxTemplateTxCommit() {
|
||||
TxTemplate template = new TxTemplate();
|
||||
TxContext ctx = template.txBegin();
|
||||
TxResult<Void> result = template.txCommit(ctx);
|
||||
assertTrue(result.isSuccess());
|
||||
assertEquals(TxContext.TransactionStatus.COMMITTED, ctx.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testTxTemplateTxCommitNullContext() {
|
||||
TxTemplate template = new TxTemplate();
|
||||
TxResult<Void> result = template.txCommit(null);
|
||||
assertFalse(result.isSuccess());
|
||||
assertEquals("INVALID_CONTEXT", result.getErrorCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testTxTemplateTxRollback() {
|
||||
TxTemplate template = new TxTemplate();
|
||||
TxContext ctx = template.txBegin();
|
||||
TxResult<Void> result = template.txRollback(ctx, "reason");
|
||||
assertTrue(result.isSuccess());
|
||||
assertEquals(TxContext.TransactionStatus.ROLLED_BACK, ctx.getStatus());
|
||||
assertEquals("reason", ctx.getErrorMessage());
|
||||
}
|
||||
|
||||
// DefaultTxService tests
|
||||
@Test
|
||||
void testDefaultTxServiceName() {
|
||||
DefaultTxService svc = new DefaultTxService("myService");
|
||||
assertEquals("myService", svc.getServiceName());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDefaultTxServiceBeginTransaction() {
|
||||
DefaultTxService svc = new DefaultTxService("svc");
|
||||
TxContext ctx = svc.beginTransaction();
|
||||
assertEquals("svc", ctx.getServiceName());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDefaultTxServiceCommit() {
|
||||
DefaultTxService svc = new DefaultTxService("svc");
|
||||
TxContext ctx = svc.beginTransaction();
|
||||
TxResult<Void> result = svc.commit(ctx);
|
||||
assertTrue(result.isSuccess());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDefaultTxServiceRollback() {
|
||||
DefaultTxService svc = new DefaultTxService("svc");
|
||||
TxContext ctx = svc.beginTransaction();
|
||||
TxResult<Void> result = svc.rollback(ctx, "test");
|
||||
assertTrue(result.isSuccess());
|
||||
}
|
||||
|
||||
// TxExecutionException tests
|
||||
@Test
|
||||
void testTxExecutionExceptionMessage() {
|
||||
TxExecutionException ex = new TxExecutionException("msg");
|
||||
assertEquals("msg", ex.getMessage());
|
||||
assertNull(ex.getContext());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testTxExecutionExceptionWithContext() {
|
||||
TxContext ctx = new TxContext("svc");
|
||||
TxExecutionException ex = new TxExecutionException("msg", ctx);
|
||||
assertEquals("msg", ex.getMessage());
|
||||
assertEquals(ctx, ex.getContext());
|
||||
}
|
||||
}
|
||||
Reference in a new issue