From 2f0bf92207caca6258cdc3b7f4500e832234561f Mon Sep 17 00:00:00 2001 From: Lucas Carnevalli Date: Fri, 17 Jul 2020 12:12:54 -0300 Subject: [PATCH] Support new types mock server --- easy-cucumber-core/pom.xml | 2 +- easy-cucumber-datasource/pom.xml | 2 +- easy-cucumber-jms/pom.xml | 2 +- easy-cucumber-mock/pom.xml | 2 +- .../osvaldjr/mock/objects/StubbyRequest.java | 8 ++++- .../ExpectationRequestAssembler.java | 34 ++++++++++++++----- easy-cucumber-owasp-zap/pom.xml | 2 +- examples/complete-springboot/pom.xml | 2 +- examples/simple-springboot-activemq/pom.xml | 2 +- examples/simple-springboot-core/pom.xml | 2 +- examples/simple-springboot-datasource/pom.xml | 2 +- examples/simple-springboot-mockserver/pom.xml | 2 +- examples/simple-springboot-owaspzap/pom.xml | 2 +- examples/simple-springboot-stubby/pom.xml | 2 +- pom.xml | 2 +- 15 files changed, 46 insertions(+), 22 deletions(-) diff --git a/easy-cucumber-core/pom.xml b/easy-cucumber-core/pom.xml index dba058a..56d3f50 100644 --- a/easy-cucumber-core/pom.xml +++ b/easy-cucumber-core/pom.xml @@ -6,7 +6,7 @@ io.github.osvaldjr easy-cucumber-parent - 1.0.2 + 1.0.3 easy-cucumber-core jar diff --git a/easy-cucumber-datasource/pom.xml b/easy-cucumber-datasource/pom.xml index da76eeb..3f7ae17 100644 --- a/easy-cucumber-datasource/pom.xml +++ b/easy-cucumber-datasource/pom.xml @@ -6,7 +6,7 @@ io.github.osvaldjr easy-cucumber-parent - 1.0.2 + 1.0.3 easy-cucumber-datasource jar diff --git a/easy-cucumber-jms/pom.xml b/easy-cucumber-jms/pom.xml index 4918da3..4e1d2e9 100644 --- a/easy-cucumber-jms/pom.xml +++ b/easy-cucumber-jms/pom.xml @@ -6,7 +6,7 @@ io.github.osvaldjr easy-cucumber-parent - 1.0.2 + 1.0.3 easy-cucumber-jms jar diff --git a/easy-cucumber-mock/pom.xml b/easy-cucumber-mock/pom.xml index ef839ca..55e0223 100644 --- a/easy-cucumber-mock/pom.xml +++ b/easy-cucumber-mock/pom.xml @@ -6,7 +6,7 @@ io.github.osvaldjr easy-cucumber-parent - 1.0.2 + 1.0.3 easy-cucumber-mock jar diff --git a/easy-cucumber-mock/src/main/java/io/github/osvaldjr/mock/objects/StubbyRequest.java b/easy-cucumber-mock/src/main/java/io/github/osvaldjr/mock/objects/StubbyRequest.java index ab6f030..edd80bd 100644 --- a/easy-cucumber-mock/src/main/java/io/github/osvaldjr/mock/objects/StubbyRequest.java +++ b/easy-cucumber-mock/src/main/java/io/github/osvaldjr/mock/objects/StubbyRequest.java @@ -23,8 +23,14 @@ public class StubbyRequest implements Serializable { private ResponseBody response; public enum BodyType { + RAW, JSON, - RAW + JSON_STRICT, + JSON_ONLY_MATCHING_FIELDS, + EXACT, + REGEX, + JSON_SCHEMA, + XPATH } @Getter diff --git a/easy-cucumber-mock/src/main/java/io/github/osvaldjr/mock/utils/mockserver/assemblers/ExpectationRequestAssembler.java b/easy-cucumber-mock/src/main/java/io/github/osvaldjr/mock/utils/mockserver/assemblers/ExpectationRequestAssembler.java index 17ad416..0e89364 100644 --- a/easy-cucumber-mock/src/main/java/io/github/osvaldjr/mock/utils/mockserver/assemblers/ExpectationRequestAssembler.java +++ b/easy-cucumber-mock/src/main/java/io/github/osvaldjr/mock/utils/mockserver/assemblers/ExpectationRequestAssembler.java @@ -7,11 +7,17 @@ import java.util.List; import java.util.Map; +import org.mockserver.matchers.MatchType; import org.mockserver.mock.Expectation; import org.mockserver.model.Header; import org.mockserver.model.HttpRequest; import org.mockserver.model.HttpResponse; +import org.mockserver.model.JsonBody; +import org.mockserver.model.JsonSchemaBody; import org.mockserver.model.Parameter; +import org.mockserver.model.RegexBody; +import org.mockserver.model.StringBody; +import org.mockserver.model.XPathBody; import org.springframework.stereotype.Component; import gherkin.deps.com.google.gson.Gson; @@ -47,15 +53,27 @@ private HttpRequest getHttpRequest(StubbyRequest.RequestBody request) { .withMethod(request.getMethod()) .withPath("/" + request.getUrl()) .withHeaders(getHeaders(request.getHeaders())) - .withQueryStringParameters(getQueryParameters(request.getQueryParams())) - .withBody(getRequestBody(request)); - return httpRequest; - } + .withQueryStringParameters(getQueryParameters(request.getQueryParams())); - private String getRequestBody(StubbyRequest.RequestBody request) { - return request.getBodyType() == StubbyRequest.BodyType.RAW - ? request.getBody().toString() - : gson.toJson(request.getBody()); + if (request.getBodyType() == StubbyRequest.BodyType.RAW) { + httpRequest.withBody(request.getBody().toString()); + } else if (request.getBodyType() == StubbyRequest.BodyType.JSON_STRICT) { + httpRequest.withBody(JsonBody.json(request.getBody(), MatchType.STRICT)); + } else if (request.getBodyType() == StubbyRequest.BodyType.JSON_ONLY_MATCHING_FIELDS) { + httpRequest.withBody(JsonBody.json(request.getBody(), MatchType.ONLY_MATCHING_FIELDS)); + } else if (request.getBodyType() == StubbyRequest.BodyType.EXACT) { + httpRequest.withBody(StringBody.exact(request.getBody().toString())); + } else if (request.getBodyType() == StubbyRequest.BodyType.REGEX) { + httpRequest.withBody(RegexBody.regex(request.getBody().toString())); + } else if (request.getBodyType() == StubbyRequest.BodyType.JSON_SCHEMA) { + httpRequest.withBody(JsonSchemaBody.jsonSchema(request.getBody().toString())); + } else if (request.getBodyType() == StubbyRequest.BodyType.XPATH) { + httpRequest.withBody(XPathBody.xpath(request.getBody().toString())); + } else { + httpRequest.withBody(gson.toJson(request.getBody())); + } + + return httpRequest; } private List getQueryParameters(Map queryParams) { diff --git a/easy-cucumber-owasp-zap/pom.xml b/easy-cucumber-owasp-zap/pom.xml index 6358d72..f20ecdb 100644 --- a/easy-cucumber-owasp-zap/pom.xml +++ b/easy-cucumber-owasp-zap/pom.xml @@ -6,7 +6,7 @@ io.github.osvaldjr easy-cucumber-parent - 1.0.2 + 1.0.3 easy-cucumber-owasp-zap jar diff --git a/examples/complete-springboot/pom.xml b/examples/complete-springboot/pom.xml index 04284d7..68dfd33 100644 --- a/examples/complete-springboot/pom.xml +++ b/examples/complete-springboot/pom.xml @@ -17,7 +17,7 @@ 1.8 Greenwich.SR2 - 1.0.2 + 1.0.3 diff --git a/examples/simple-springboot-activemq/pom.xml b/examples/simple-springboot-activemq/pom.xml index 5ffe738..10227f8 100644 --- a/examples/simple-springboot-activemq/pom.xml +++ b/examples/simple-springboot-activemq/pom.xml @@ -17,7 +17,7 @@ 1.8 Greenwich.SR2 - 1.0.2 + 1.0.3 diff --git a/examples/simple-springboot-core/pom.xml b/examples/simple-springboot-core/pom.xml index e825ccf..6889dd1 100644 --- a/examples/simple-springboot-core/pom.xml +++ b/examples/simple-springboot-core/pom.xml @@ -17,7 +17,7 @@ 1.8 Greenwich.SR2 - 1.0.2 + 1.0.3 diff --git a/examples/simple-springboot-datasource/pom.xml b/examples/simple-springboot-datasource/pom.xml index daef369..2d37907 100644 --- a/examples/simple-springboot-datasource/pom.xml +++ b/examples/simple-springboot-datasource/pom.xml @@ -17,7 +17,7 @@ 1.8 Greenwich.SR2 - 1.0.2 + 1.0.3 diff --git a/examples/simple-springboot-mockserver/pom.xml b/examples/simple-springboot-mockserver/pom.xml index dd6962e..6b03846 100644 --- a/examples/simple-springboot-mockserver/pom.xml +++ b/examples/simple-springboot-mockserver/pom.xml @@ -17,7 +17,7 @@ 1.8 Greenwich.SR2 - 1.0.2 + 1.0.3 diff --git a/examples/simple-springboot-owaspzap/pom.xml b/examples/simple-springboot-owaspzap/pom.xml index 0c1fd43..84904dc 100644 --- a/examples/simple-springboot-owaspzap/pom.xml +++ b/examples/simple-springboot-owaspzap/pom.xml @@ -17,7 +17,7 @@ 1.8 Greenwich.SR2 - 1.0.2 + 1.0.3 diff --git a/examples/simple-springboot-stubby/pom.xml b/examples/simple-springboot-stubby/pom.xml index 60f47bb..f1956d9 100644 --- a/examples/simple-springboot-stubby/pom.xml +++ b/examples/simple-springboot-stubby/pom.xml @@ -17,7 +17,7 @@ 1.8 Greenwich.SR2 - 1.0.2 + 1.0.3 diff --git a/pom.xml b/pom.xml index 2307f3a..138a0a0 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ io.github.osvaldjr easy-cucumber-parent - 1.0.2 + 1.0.3 pom io.github.osvaldjr:easy-cucumber Easy Cucumber JVM Testing