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.