This is an automated email from the ASF dual-hosted git repository. ppalaga pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push: new 021ed03 [#3028] Increase test coverage of a binding mode of camel-rest component 021ed03 is described below commit 021ed03b8b2e3e57e8228415af1a7120df325706 Author: Vratislav Hais <vh...@redhat.com> AuthorDate: Mon Aug 30 05:04:02 2021 +0200 [#3028] Increase test coverage of a binding mode of camel-rest component --- .../camel/quarkus/component/rest/it/Person.java | 9 +++++ .../quarkus/component/rest/it/RestResource.java | 22 +++++++++++++ .../quarkus/component/rest/it/RestRoutes.java | 12 +++++++ .../camel/quarkus/component/rest/it/RestTest.java | 38 ++++++++++++++++------ 4 files changed, 71 insertions(+), 10 deletions(-) diff --git a/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/Person.java b/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/Person.java index 563feed..b168210 100644 --- a/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/Person.java +++ b/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/Person.java @@ -30,6 +30,15 @@ import io.quarkus.runtime.annotations.RegisterForReflection; @XmlAccessorType(XmlAccessType.FIELD) public class Person { + public Person() { + } + + public Person(String firstName, String lastName, int age) { + this.firstName = firstName; + this.lastName = lastName; + this.age = age; + } + @XmlAttribute private String firstName; diff --git a/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/RestResource.java b/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/RestResource.java index 751c8e8..fb221a7 100644 --- a/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/RestResource.java +++ b/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/RestResource.java @@ -68,4 +68,26 @@ public class RestResource { return producerTemplate.requestBodyAndHeaders( "rest:get:/rest/template/{messageStart}/{messageEnd}?host=localhost:" + port, null, headers, String.class); } + + @Path("/producer/binding/mode/json") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Person restProducerBindingModeJson(@QueryParam("port") int port) { + String query = "rest:get:/rest/binding/json/producer" + + "?bindingMode=json" + + "&outType=org.apache.camel.quarkus.component.rest.it.Person" + + "&host=localhost:" + port; + return producerTemplate.requestBody(query, null, Person.class); + } + + @Path("/producer/binding/mode/xml") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Person restProducerBindingModeXml(@QueryParam("port") int port) { + String query = "rest:get:/rest/binding/xml/producer" + + "?bindingMode=xml" + + "&outType=org.apache.camel.quarkus.component.rest.it.Person" + + "&host=localhost:" + port; + return producerTemplate.requestBody(query, null, Person.class); + } } diff --git a/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/RestRoutes.java b/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/RestRoutes.java index dc2c079..88189f2 100644 --- a/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/RestRoutes.java +++ b/integration-tests/rest/src/main/java/org/apache/camel/quarkus/component/rest/it/RestRoutes.java @@ -27,6 +27,8 @@ public class RestRoutes extends RouteBuilder { @Override public void configure() { + final String personJson = "{\"firstName\": \"John\", \"lastName\": \"Doe\", \"age\": 64}"; + final String personXml = "<person firstName=\"John\" lastName=\"Doe\" age=\"64\"/>"; restConfiguration() .enableCORS(true) .corsAllowCredentials(true) @@ -68,6 +70,11 @@ public class RestRoutes extends RouteBuilder { .setHeader(Exchange.CONTENT_TYPE, constant("text/plain")) .endRest() + .get("/binding/json/producer") + .route() + .setBody(constant(personJson)) + .endRest() + .post("/pojo/binding/xml") .bindingMode(RestBindingMode.xml) .type(Person.class) @@ -77,6 +84,11 @@ public class RestRoutes extends RouteBuilder { .setHeader(Exchange.CONTENT_TYPE, constant("text/plain")) .endRest() + .get("/binding/xml/producer") + .route() + .setBody(constant(personXml)) + .endRest() + .post("/log") .route() .log("Hello ${body}") diff --git a/integration-tests/rest/src/test/java/org/apache/camel/quarkus/component/rest/it/RestTest.java b/integration-tests/rest/src/test/java/org/apache/camel/quarkus/component/rest/it/RestTest.java index 7104371..be25dca 100644 --- a/integration-tests/rest/src/test/java/org/apache/camel/quarkus/component/rest/it/RestTest.java +++ b/integration-tests/rest/src/test/java/org/apache/camel/quarkus/component/rest/it/RestTest.java @@ -25,9 +25,11 @@ import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.matchesPattern; +import static org.junit.jupiter.api.Assertions.assertEquals; @QuarkusTest class RestTest { + private static final Person person = new Person("John", "Doe", 64); @Test public void inspectConfiguration() { @@ -107,11 +109,6 @@ class RestTest { @Test public void jsonBinding() { - Person person = new Person(); - person.setFirstName("John"); - person.setLastName("Doe"); - person.setAge(64); - String result = String.format( "Name: %s %s, Age: %d", person.getFirstName(), @@ -128,12 +125,20 @@ class RestTest { } @Test - public void xmlBinding() { - Person person = new Person(); - person.setFirstName("John"); - person.setLastName("Doe"); - person.setAge(64); + public void jsonBindingProducer() { + Person respondPerson = RestAssured.given() + .queryParam("port", RestAssured.port) + .get("/rest/producer/binding/mode/json") + .then() + .statusCode(200) + .extract() + .body() + .as(Person.class); + assertEquals(respondPerson, person); + } + @Test + public void xmlBinding() { String result = String.format( "Name: %s %s, Age: %d", person.getFirstName(), @@ -150,6 +155,19 @@ class RestTest { } @Test + public void xmlBindingProducer() { + Person respondPerson = RestAssured.given() + .queryParam("port", RestAssured.port) + .get("/rest/producer/binding/mode/xml") + .then() + .statusCode(200) + .extract() + .body() + .as(Person.class); + assertEquals(respondPerson, person); + } + + @Test public void testRestProducer() { RestAssured.given() .queryParam("port", RestAssured.port)