This is an automated email from the ASF dual-hosted git repository. seanyinx pushed a commit to branch SCB-152_compensated_event in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-saga.git
commit 606f0280eef2e73eceb6386423cebaa98de5c34f Author: seanyinx <[email protected]> AuthorDate: Tue Jan 2 15:13:56 2018 +0800 SCB-152 sent tx compensated event on compensation completed Signed-off-by: seanyinx <[email protected]> --- .../saga/omega/context/OmegaContext.java | 2 +- .../spring/TransactionAspectConfig.java | 7 ++ .../spring/TransactionInterceptionTest.java | 102 ++++++++------------- .../saga/omega/transaction/spring/User.java | 8 ++ ...ceptor.java => CompensationMessageHandler.java} | 21 ++--- .../transaction/FailedTransactionInterceptor.java | 11 +-- .../saga/omega/transaction/MessageHandler.java | 2 +- .../saga/omega/transaction/TxAbortedEvent.java | 15 ++- .../{TxEndedEvent.java => TxCompensatedEvent.java} | 4 +- .../saga/omega/transaction/TxEndedEvent.java | 4 +- .../saga/omega/transaction/TxEvent.java | 13 +++ .../saga/omega/transaction/TxStartedEvent.java | 4 +- ...st.java => CompensationMessageHandlerTest.java} | 38 +++++--- .../PostTransactionInterceptorTest.java | 1 + .../transaction/PreTransactionInterceptorTest.java | 1 + 15 files changed, 122 insertions(+), 111 deletions(-) diff --git a/omega/omega-context/src/main/java/io/servicecomb/saga/omega/context/OmegaContext.java b/omega/omega-context/src/main/java/io/servicecomb/saga/omega/context/OmegaContext.java index ccc3738..705e74e 100644 --- a/omega/omega-context/src/main/java/io/servicecomb/saga/omega/context/OmegaContext.java +++ b/omega/omega-context/src/main/java/io/servicecomb/saga/omega/context/OmegaContext.java @@ -82,7 +82,7 @@ public class OmegaContext { compensationContexts.put(compensationMethod.toString(), new CompensationContext(target, compensationMethod)); } - public void compensate(String globalTxId, String localTxId, String compensationMethod, Object[] payloads) { + public void compensate(String globalTxId, String localTxId, String compensationMethod, Object... payloads) { CompensationContext compensationContext = compensationContexts.get(compensationMethod); try { diff --git a/omega/omega-spring-tx/src/main/java/io/servicecomb/saga/omega/transaction/spring/TransactionAspectConfig.java b/omega/omega-spring-tx/src/main/java/io/servicecomb/saga/omega/transaction/spring/TransactionAspectConfig.java index 5982109..da9f3f8 100644 --- a/omega/omega-spring-tx/src/main/java/io/servicecomb/saga/omega/transaction/spring/TransactionAspectConfig.java +++ b/omega/omega-spring-tx/src/main/java/io/servicecomb/saga/omega/transaction/spring/TransactionAspectConfig.java @@ -22,6 +22,8 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; import io.servicecomb.saga.omega.context.OmegaContext; +import io.servicecomb.saga.omega.transaction.CompensationMessageHandler; +import io.servicecomb.saga.omega.transaction.MessageHandler; import io.servicecomb.saga.omega.transaction.MessageSender; import io.servicecomb.saga.omega.transaction.TransactionAspect; @@ -30,6 +32,11 @@ import io.servicecomb.saga.omega.transaction.TransactionAspect; public class TransactionAspectConfig { @Bean + MessageHandler messageHandler(MessageSender sender, OmegaContext context) { + return new CompensationMessageHandler(sender, context); + } + + @Bean TransactionAspect transactionAspect(MessageSender sender, OmegaContext context) { return new TransactionAspect(sender, context); } diff --git a/omega/omega-spring-tx/src/test/java/io/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java b/omega/omega-spring-tx/src/test/java/io/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java index 4ffd546..7efa304 100644 --- a/omega/omega-spring-tx/src/test/java/io/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java +++ b/omega/omega-spring-tx/src/test/java/io/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java @@ -20,16 +20,14 @@ package io.servicecomb.saga.omega.transaction.spring; import static com.seanyinx.github.unit.scaffolding.AssertUtils.expectFailing; import static com.seanyinx.github.unit.scaffolding.Randomness.uniquify; import static io.servicecomb.saga.omega.transaction.spring.TransactionalUserService.ILLEGAL_USER; -import static java.util.Arrays.asList; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertThat; import java.util.ArrayList; import java.util.List; import java.util.UUID; -import java.util.stream.Collectors; import org.junit.After; import org.junit.Before; @@ -46,7 +44,10 @@ import io.servicecomb.saga.omega.context.OmegaContext; import io.servicecomb.saga.omega.context.UniqueIdGenerator; import io.servicecomb.saga.omega.transaction.MessageHandler; import io.servicecomb.saga.omega.transaction.MessageSender; -import io.servicecomb.saga.omega.transaction.TxEvent; +import io.servicecomb.saga.omega.transaction.TxAbortedEvent; +import io.servicecomb.saga.omega.transaction.TxCompensatedEvent; +import io.servicecomb.saga.omega.transaction.TxEndedEvent; +import io.servicecomb.saga.omega.transaction.TxStartedEvent; import io.servicecomb.saga.omega.transaction.spring.TransactionInterceptionTest.MessageConfig; @RunWith(SpringRunner.class) @@ -62,7 +63,7 @@ public class TransactionInterceptionTest { private final String email = uniquify("email"); @Autowired - private List<byte[]> messages; + private List<String> messages; @Autowired private TransactionalUserService userService; @@ -94,11 +95,11 @@ public class TransactionInterceptionTest { String compensationMethod = TransactionalUserService.class.getDeclaredMethod("delete", User.class).toString(); - assertEquals( - asList( - txStartedEvent(globalTxId, localTxId, parentTxId, compensationMethod, username, email), - txEndedEvent(globalTxId, localTxId, parentTxId, compensationMethod)), - toString(messages) + assertArrayEquals( + new String[]{ + new TxStartedEvent(globalTxId, localTxId, parentTxId, compensationMethod, user).toString(), + new TxEndedEvent(globalTxId, localTxId, parentTxId, compensationMethod).toString()}, + toArray(messages) ); User actual = userRepository.findOne(user.id()); @@ -107,19 +108,22 @@ public class TransactionInterceptionTest { @Test public void sendsAbortEvent_OnSubTransactionFailure() throws Exception { + Throwable throwable = null; + User user = new User(ILLEGAL_USER, email); try { - userService.add(new User(ILLEGAL_USER, email)); + userService.add(user); expectFailing(IllegalArgumentException.class); } catch (IllegalArgumentException ignored) { + throwable = ignored; } String compensationMethod = TransactionalUserService.class.getDeclaredMethod("delete", User.class).toString(); - assertEquals( - asList( - txStartedEvent(globalTxId, localTxId, parentTxId, compensationMethod, ILLEGAL_USER, email), - txAbortedEvent(globalTxId, localTxId, parentTxId, compensationMethod)), - toString(messages) + assertArrayEquals( + new String[]{ + new TxStartedEvent(globalTxId, localTxId, parentTxId, compensationMethod, user).toString(), + new TxAbortedEvent(globalTxId, localTxId, parentTxId, compensationMethod, throwable).toString()}, + toArray(messages) ); } @@ -133,22 +137,32 @@ public class TransactionInterceptionTest { String compensationMethod = TransactionalUserService.class.getDeclaredMethod("delete", User.class).toString(); - messageHandler.onReceive(globalTxId, this.localTxId, compensationMethod, user); - messageHandler.onReceive(globalTxId, localTxId, compensationMethod, anotherUser); + messageHandler.onReceive(globalTxId, this.localTxId, parentTxId, compensationMethod, user); + messageHandler.onReceive(globalTxId, localTxId, parentTxId, compensationMethod, anotherUser); assertThat(userRepository.findOne(user.id()), is(nullValue())); assertThat(userRepository.findOne(anotherUser.id()), is(nullValue())); + + assertArrayEquals( + new String[]{ + new TxStartedEvent(globalTxId, this.localTxId, parentTxId, compensationMethod, user).toString(), + new TxEndedEvent(globalTxId, this.localTxId, parentTxId, compensationMethod).toString(), + new TxStartedEvent(globalTxId, localTxId, parentTxId, compensationMethod, anotherUser).toString(), + new TxEndedEvent(globalTxId, localTxId, parentTxId, compensationMethod).toString(), + new TxCompensatedEvent(globalTxId, this.localTxId, parentTxId, compensationMethod).toString(), + new TxCompensatedEvent(globalTxId, localTxId, parentTxId, compensationMethod).toString() + }, + toArray(messages) + ); } - private List<String> toString(List<byte[]> messages) { - return messages.stream() - .map(String::new) - .collect(Collectors.toList()); + private String[] toArray(List<String> messages) { + return messages.toArray(new String[messages.size()]); } @Configuration static class MessageConfig { - private final List<byte[]> messages = new ArrayList<>(); + private final List<String> messages = new ArrayList<>(); @Bean OmegaContext omegaContext() { @@ -156,51 +170,13 @@ public class TransactionInterceptionTest { } @Bean - List<byte[]> messages() { + List<String> messages() { return messages; } @Bean MessageSender sender() { - return (event) -> messages.add(serialize(event)); - } - - private byte[] serialize(TxEvent event) { - if (TX_STARTED_EVENT.equals(event.type())) { - User user = ((User) event.payloads()[0]); - return txStartedEvent(event.globalTxId(), - event.localTxId(), - event.parentTxId(), - event.compensationMethod(), - user.username(), - user.email()).getBytes(); - } - return txEndedEvent(event.globalTxId(), - event.localTxId(), - event.parentTxId(), - event.compensationMethod()).getBytes(); - } - - @Bean - MessageHandler handler(OmegaContext omegaContext) { - return omegaContext::compensate; + return (event) -> messages.add(event.toString()); } } - - private static String txStartedEvent(String globalTxId, - String localTxId, - String parentTxId, - String compensationMethod, - String username, - String email) { - return globalTxId + ":" + localTxId + ":" + parentTxId + ":" + compensationMethod + ":" + TX_STARTED_EVENT + ":" + username + ":" + email; - } - - private static String txEndedEvent(String globalTxId, String localTxId, String parentTxId, String compensationMethod) { - return globalTxId + ":" + localTxId + ":" + parentTxId + ":" + compensationMethod + ":" + TX_ENDED_EVENT; - } - - private static String txAbortedEvent(String globalTxId, String localTxId, String parentTxId, String compensationMethod) { - return globalTxId + ":" + localTxId + ":" + parentTxId + ":" + compensationMethod + ":" + TX_ENDED_EVENT; - } } diff --git a/omega/omega-spring-tx/src/test/java/io/servicecomb/saga/omega/transaction/spring/User.java b/omega/omega-spring-tx/src/test/java/io/servicecomb/saga/omega/transaction/spring/User.java index 6b2e55f..5af25e4 100644 --- a/omega/omega-spring-tx/src/test/java/io/servicecomb/saga/omega/transaction/spring/User.java +++ b/omega/omega-spring-tx/src/test/java/io/servicecomb/saga/omega/transaction/spring/User.java @@ -70,4 +70,12 @@ public class User { public int hashCode() { return Objects.hash(id, username, email); } + + @Override + public String toString() { + return "User{" + + "username='" + username + '\'' + + ", email='" + email + '\'' + + '}'; + } } diff --git a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/FailedTransactionInterceptor.java b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/CompensationMessageHandler.java similarity index 60% copy from omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/FailedTransactionInterceptor.java copy to omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/CompensationMessageHandler.java index 6cbd8af..edc3243 100644 --- a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/FailedTransactionInterceptor.java +++ b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/CompensationMessageHandler.java @@ -17,23 +17,20 @@ package io.servicecomb.saga.omega.transaction; -import java.io.PrintWriter; -import java.io.StringWriter; +import io.servicecomb.saga.omega.context.OmegaContext; -class FailedTransactionInterceptor { +public class CompensationMessageHandler implements MessageHandler { private final MessageSender sender; + private final OmegaContext omegaContext; - FailedTransactionInterceptor(MessageSender sender) { + public CompensationMessageHandler(MessageSender sender, OmegaContext omegaContext) { this.sender = sender; + this.omegaContext = omegaContext; } - void intercept(String globalTxId, String localTxId, String parentTxId, String compensationMethod, Throwable throwable) { - sender.send(new TxAbortedEvent(globalTxId, localTxId, parentTxId, compensationMethod, stackTrace(throwable))); - } - - private String stackTrace(Throwable e) { - StringWriter writer = new StringWriter(); - e.printStackTrace(new PrintWriter(writer)); - return writer.toString(); + @Override + public void onReceive(String globalTxId, String localTxId, String parentTxId, String compensationMethod, Object... payloads) { + omegaContext.compensate(globalTxId, localTxId, compensationMethod, payloads); + sender.send(new TxCompensatedEvent(globalTxId, localTxId, parentTxId, compensationMethod)); } } diff --git a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/FailedTransactionInterceptor.java b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/FailedTransactionInterceptor.java index 6cbd8af..9c164dd 100644 --- a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/FailedTransactionInterceptor.java +++ b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/FailedTransactionInterceptor.java @@ -17,9 +17,6 @@ package io.servicecomb.saga.omega.transaction; -import java.io.PrintWriter; -import java.io.StringWriter; - class FailedTransactionInterceptor { private final MessageSender sender; @@ -28,12 +25,6 @@ class FailedTransactionInterceptor { } void intercept(String globalTxId, String localTxId, String parentTxId, String compensationMethod, Throwable throwable) { - sender.send(new TxAbortedEvent(globalTxId, localTxId, parentTxId, compensationMethod, stackTrace(throwable))); - } - - private String stackTrace(Throwable e) { - StringWriter writer = new StringWriter(); - e.printStackTrace(new PrintWriter(writer)); - return writer.toString(); + sender.send(new TxAbortedEvent(globalTxId, localTxId, parentTxId, compensationMethod, throwable)); } } diff --git a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/MessageHandler.java b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/MessageHandler.java index caf2da8..d867085 100644 --- a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/MessageHandler.java +++ b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/MessageHandler.java @@ -18,5 +18,5 @@ package io.servicecomb.saga.omega.transaction; public interface MessageHandler { - void onReceive(String globalTxId, String localTxId, String compensationMethod, Object... payloads); + void onReceive(String globalTxId, String localTxId, String parentTxId, String compensationMethod, Object... payloads); } diff --git a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxAbortedEvent.java b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxAbortedEvent.java index 2d04a7d..0d7e5ba 100644 --- a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxAbortedEvent.java +++ b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxAbortedEvent.java @@ -17,8 +17,17 @@ package io.servicecomb.saga.omega.transaction; -class TxAbortedEvent extends TxEvent { - TxAbortedEvent(String globalTxId, String localTxId, String parentTxId, String compensationMethod, String stackTrace) { - super(globalTxId, localTxId, parentTxId, compensationMethod, stackTrace); +import java.io.PrintWriter; +import java.io.StringWriter; + +public class TxAbortedEvent extends TxEvent { + public TxAbortedEvent(String globalTxId, String localTxId, String parentTxId, String compensationMethod, Throwable throwable) { + super(globalTxId, localTxId, parentTxId, compensationMethod, stackTrace(throwable)); + } + + private static String stackTrace(Throwable e) { + StringWriter writer = new StringWriter(); + e.printStackTrace(new PrintWriter(writer)); + return writer.toString(); } } diff --git a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxEndedEvent.java b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxCompensatedEvent.java similarity index 85% copy from omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxEndedEvent.java copy to omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxCompensatedEvent.java index 2836948..8d518d6 100644 --- a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxEndedEvent.java +++ b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxCompensatedEvent.java @@ -17,8 +17,8 @@ package io.servicecomb.saga.omega.transaction; -class TxEndedEvent extends TxEvent { - TxEndedEvent(String globalTxId, String localTxId, String parentTxId, String compensationMethod) { +public class TxCompensatedEvent extends TxEvent { + public TxCompensatedEvent(String globalTxId, String localTxId, String parentTxId, String compensationMethod) { super(globalTxId, localTxId, parentTxId, compensationMethod); } } diff --git a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxEndedEvent.java b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxEndedEvent.java index 2836948..6922f29 100644 --- a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxEndedEvent.java +++ b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxEndedEvent.java @@ -17,8 +17,8 @@ package io.servicecomb.saga.omega.transaction; -class TxEndedEvent extends TxEvent { - TxEndedEvent(String globalTxId, String localTxId, String parentTxId, String compensationMethod) { +public class TxEndedEvent extends TxEvent { + public TxEndedEvent(String globalTxId, String localTxId, String parentTxId, String compensationMethod) { super(globalTxId, localTxId, parentTxId, compensationMethod); } } diff --git a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxEvent.java b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxEvent.java index 1616f69..a11a9ad 100644 --- a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxEvent.java +++ b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxEvent.java @@ -17,6 +17,8 @@ package io.servicecomb.saga.omega.transaction; +import java.util.Arrays; + public class TxEvent { private final long timestamp; private final String globalTxId; @@ -61,4 +63,15 @@ public class TxEvent { public String compensationMethod() { return compensationMethod; } + + @Override + public String toString() { + return "TxEvent{" + + "globalTxId='" + globalTxId + '\'' + + ", localTxId='" + localTxId + '\'' + + ", parentTxId='" + parentTxId + '\'' + + ", compensationMethod='" + compensationMethod + '\'' + + ", payloads=" + Arrays.toString(payloads) + + '}'; + } } diff --git a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxStartedEvent.java b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxStartedEvent.java index 7ef3089..13534ac 100644 --- a/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxStartedEvent.java +++ b/omega/omega-transaction/src/main/java/io/servicecomb/saga/omega/transaction/TxStartedEvent.java @@ -17,9 +17,9 @@ package io.servicecomb.saga.omega.transaction; -class TxStartedEvent extends TxEvent { +public class TxStartedEvent extends TxEvent { - TxStartedEvent(String globalTxId, String localTxId, String parentTxId, String compensationMethod, Object[] payloads) { + public TxStartedEvent(String globalTxId, String localTxId, String parentTxId, String compensationMethod, Object... payloads) { super(globalTxId, localTxId, parentTxId, compensationMethod, payloads); } } diff --git a/omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/PreTransactionInterceptorTest.java b/omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/CompensationMessageHandlerTest.java similarity index 52% copy from omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/PreTransactionInterceptorTest.java copy to omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/CompensationMessageHandlerTest.java index b7b2ec0..1070e59 100644 --- a/omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/PreTransactionInterceptorTest.java +++ b/omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/CompensationMessageHandlerTest.java @@ -18,38 +18,46 @@ package io.servicecomb.saga.omega.transaction; import static com.seanyinx.github.unit.scaffolding.Randomness.uniquify; -import static java.util.Arrays.asList; -import static org.hamcrest.Matchers.contains; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; import java.util.ArrayList; import java.util.List; -import java.util.UUID; import org.junit.Test; -public class PreTransactionInterceptorTest { - private final List<TxEvent> messages = new ArrayList<>(); - private final String globalTxId = UUID.randomUUID().toString(); - private final String localTxId = UUID.randomUUID().toString(); - private final String parentTxId = UUID.randomUUID().toString(); +import io.servicecomb.saga.omega.context.OmegaContext; - private final MessageSender sender = messages::add; +public class CompensationMessageHandlerTest { - private final String message = uniquify("message"); - private final PreTransactionInterceptor interceptor = new PreTransactionInterceptor(sender); + private final List<TxEvent> events = new ArrayList<>(); + private final MessageSender sender = events::add; + + private final String globalTxId = uniquify("globalTxId"); + private final String localTxId = uniquify("localTxId"); + private final String parentTxId = uniquify("parentTxId"); + private final String compensationMethod = getClass().getCanonicalName(); + private final String payload = uniquify("blah"); + + private final OmegaContext omegaContext = mock(OmegaContext.class); + private final CompensationMessageHandler handler = new CompensationMessageHandler(sender, omegaContext); @Test - public void sendsTxStartedEvent() throws Exception { - interceptor.intercept(globalTxId, localTxId, parentTxId, getClass().getCanonicalName(), message); + public void sendsEventOnCompensationCompleted() throws Exception { + handler.onReceive(globalTxId, localTxId, parentTxId, compensationMethod, payload); - TxEvent event = messages.get(0); + assertThat(events.size(), is(1)); + TxEvent event = events.get(0); assertThat(event.globalTxId(), is(globalTxId)); assertThat(event.localTxId(), is(localTxId)); assertThat(event.parentTxId(), is(parentTxId)); + assertThat(event.type(), is("TxCompensatedEvent")); assertThat(event.compensationMethod(), is(getClass().getCanonicalName())); - assertThat(asList(event.payloads()), contains(message)); + assertThat(event.payloads().length, is(0)); + + verify(omegaContext).compensate(globalTxId, localTxId, compensationMethod, payload); } } diff --git a/omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/PostTransactionInterceptorTest.java b/omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/PostTransactionInterceptorTest.java index 86a671f..b2e18ab 100644 --- a/omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/PostTransactionInterceptorTest.java +++ b/omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/PostTransactionInterceptorTest.java @@ -46,6 +46,7 @@ public class PostTransactionInterceptorTest { assertThat(event.globalTxId(), is(globalTxId)); assertThat(event.localTxId(), is(localTxId)); assertThat(event.parentTxId(), is(parentTxId)); + assertThat(event.type(), is("TxEndedEvent")); assertThat(event.compensationMethod(), is(getClass().getCanonicalName())); assertThat(event.payloads().length, is(0)); } diff --git a/omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/PreTransactionInterceptorTest.java b/omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/PreTransactionInterceptorTest.java index b7b2ec0..5d5d832 100644 --- a/omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/PreTransactionInterceptorTest.java +++ b/omega/omega-transaction/src/test/java/io/servicecomb/saga/omega/transaction/PreTransactionInterceptorTest.java @@ -49,6 +49,7 @@ public class PreTransactionInterceptorTest { assertThat(event.globalTxId(), is(globalTxId)); assertThat(event.localTxId(), is(localTxId)); assertThat(event.parentTxId(), is(parentTxId)); + assertThat(event.type(), is("TxStartedEvent")); assertThat(event.compensationMethod(), is(getClass().getCanonicalName())); assertThat(asList(event.payloads()), contains(message)); } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
