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/24 15:12:49 UTC

[incubator-servicecomb-saga] 03/07: SCB-237 filled car & hotel services testing steps

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 09301acf729d9422107eb38569c598ca81c6955d
Author: seanyinx <se...@huawei.com>
AuthorDate: Tue Jan 23 16:58:09 2018 +0800

    SCB-237 filled car & hotel services testing steps
    
    Signed-off-by: seanyinx <se...@huawei.com>
---
 .../org/apache/servicecomb/saga/PackStepdefs.java  | 43 ++++++++++++++++++++++
 acceptance-tests/pom.xml                           |  5 +++
 2 files changed, 48 insertions(+)

diff --git a/acceptance-tests/acceptance-pack/src/test/java/org/apache/servicecomb/saga/PackStepdefs.java b/acceptance-tests/acceptance-pack/src/test/java/org/apache/servicecomb/saga/PackStepdefs.java
index 71c0887..0cd13a9 100644
--- a/acceptance-tests/acceptance-pack/src/test/java/org/apache/servicecomb/saga/PackStepdefs.java
+++ b/acceptance-tests/acceptance-pack/src/test/java/org/apache/servicecomb/saga/PackStepdefs.java
@@ -17,9 +17,14 @@
 
 package org.apache.servicecomb.saga;
 
+import static io.restassured.RestAssured.given;
+import static org.hamcrest.core.Is.is;
+
 import java.lang.invoke.MethodHandles;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -32,13 +37,24 @@ public class PackStepdefs implements En {
 
   public PackStepdefs() {
     Given("^Car Service is up and running$", () -> {
+      probe(System.getProperty("car.service.address"));
     });
 
     And("^Hotel Service is up and running$", () -> {
+      probe(System.getProperty("hotel.service.address"));
     });
 
     When("^User ([A-Za-z]+) requests to book ([0-9]+) cars and ([0-9]+) rooms$", (username, cars, rooms) -> {
       log.info("Received request from user {} to book {} cars and {} rooms", username, cars, rooms);
+
+      given()
+          .pathParam("name", username)
+          .pathParam("rooms", rooms)
+          .pathParam("cars", cars)
+          .when()
+          .post(System.getProperty("booking.service.address") + "/booking/{name}/{rooms}/{cars}")
+          .then()
+          .statusCode(is(200));
     });
 
     Then("^Alpha records the following events$", (DataTable dataTable) -> {
@@ -49,10 +65,37 @@ public class PackStepdefs implements En {
     And("^Car Service contains the following booking orders$", (DataTable dataTable) -> {
       List<Map<String, String>> maps = dataTable.asMaps(String.class, String.class);
       log.info("car orders {}", maps);
+
+      bookingsMatches(dataTable, "car.service.address");
     });
+
     And("^Hotel Service contains the following booking orders$", (DataTable dataTable) -> {
       List<Map<String, String>> maps = dataTable.asMaps(String.class, String.class);
       log.info("hotel orders {}", maps);
+
+      bookingsMatches(dataTable, "hotel.service.address");
     });
   }
+
+  @SuppressWarnings("unchecked")
+  private void bookingsMatches(DataTable dataTable, String address) {
+    Map<String, String>[] bookings = given()
+        .when()
+        .post(System.getProperty(address) + "/bookings")
+        .then()
+        .statusCode(is(200))
+        .extract()
+        .body()
+        .as(Map[].class);
+
+    dataTable.diff(Arrays.stream(bookings).collect(Collectors.toList()));
+  }
+
+  private void probe(String address) {
+    given()
+        .when()
+        .post(address + "/info")
+        .then()
+        .statusCode(is(200));
+  }
 }
diff --git a/acceptance-tests/pom.xml b/acceptance-tests/pom.xml
index 2a5f12b..7e1ebbf 100644
--- a/acceptance-tests/pom.xml
+++ b/acceptance-tests/pom.xml
@@ -54,6 +54,11 @@
       <artifactId>junit</artifactId>
     </dependency>
     <dependency>
+      <groupId>io.rest-assured</groupId>
+      <artifactId>rest-assured</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <scope>test</scope>

-- 
To stop receiving notification emails like this one, please contact
ningjiang@apache.org.