You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/01/05 01:15:52 UTC

[incubator-servicecomb-saga] 02/08: SCB-100 added context checking on reactive

This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-saga.git

commit 22f2150c0ca759fa44e73db57c6ee42faf7b5db9
Author: seanyinx <se...@huawei.com>
AuthorDate: Wed Jan 3 11:38:21 2018 +0800

    SCB-100 added context checking on reactive
    
    Signed-off-by: seanyinx <se...@huawei.com>
---
 omega/omega-spring-tx/pom.xml                      |  6 ++++++
 .../spring/TransactionInterceptionTest.java        | 24 ++++++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/omega/omega-spring-tx/pom.xml b/omega/omega-spring-tx/pom.xml
index 21661bb..815e080 100644
--- a/omega/omega-spring-tx/pom.xml
+++ b/omega/omega-spring-tx/pom.xml
@@ -76,6 +76,12 @@
       <groupId>org.awaitility</groupId>
       <artifactId>awaitility</artifactId>
     </dependency>
+    <dependency>
+      <groupId>io.reactivex.rxjava2</groupId>
+      <artifactId>rxjava</artifactId>
+      <version>2.1.8</version>
+      <scope>test</scope>
+    </dependency>
 
   </dependencies>
 
diff --git a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java
index 9ace53f..6dee1d8 100644
--- a/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java
+++ b/omega/omega-spring-tx/src/test/java/org/apache/servicecomb/saga/omega/transaction/spring/TransactionInterceptionTest.java
@@ -54,6 +54,9 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import io.reactivex.Flowable;
+import io.reactivex.schedulers.Schedulers;
+
 @RunWith(SpringRunner.class)
 @SpringBootTest(classes = {TransactionTestMain.class, MessageConfig.class})
 @AutoConfigureMockMvc
@@ -191,6 +194,27 @@ public class TransactionInterceptionTest {
     );
   }
 
+  @Test
+  public void passesOmegaContextThroughReactiveX() throws Exception {
+    User user = new User(username, email);
+
+    Flowable.just(user)
+        .parallel()
+        .runOn(Schedulers.io())
+        .doOnNext(userService::add)
+        .sequential()
+        .subscribe();
+
+    await().atMost(500, MILLISECONDS).until(() -> userRepository.findByUsername(username) != null);
+
+    assertArrayEquals(
+        new String[]{
+            new TxStartedEvent(globalTxId, localTxId, parentTxId, compensationMethod, user).toString(),
+            new TxEndedEvent(globalTxId, localTxId, parentTxId, compensationMethod).toString()},
+        toArray(messages)
+    );
+  }
+
   private String[] toArray(List<String> messages) {
     return messages.toArray(new String[messages.size()]);
   }

-- 
To stop receiving notification emails like this one, please contact
"commits@servicecomb.apache.org" <co...@servicecomb.apache.org>.