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].
