[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