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 <[email protected]>
AuthorDate: Tue Jan 23 16:58:09 2018 +0800

    SCB-237 filled car & hotel services testing steps
    
    Signed-off-by: seanyinx <[email protected]>
---
 .../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
[email protected].

Reply via email to