This is an automated email from the ASF dual-hosted git repository. ppalaga pushed a commit to branch 1.0.x in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 69e038b8e852361e10528677545a3d69f3dc23e8 Author: Lukas Lowinger <llowi...@redhat.com> AuthorDate: Tue Aug 25 10:55:48 2020 +0200 Fix servicenow itest to clean resources --- .../servicenow/it/ServicenowResource.java | 47 ++++++++++++++++++++-- .../component/servicenow/it/ServicenowTest.java | 27 ++++++++++++- 2 files changed, 70 insertions(+), 4 deletions(-) diff --git a/integration-tests/servicenow/src/main/java/org/apache/camel/quarkus/component/servicenow/it/ServicenowResource.java b/integration-tests/servicenow/src/main/java/org/apache/camel/quarkus/component/servicenow/it/ServicenowResource.java index b59b21c..d280741 100644 --- a/integration-tests/servicenow/src/main/java/org/apache/camel/quarkus/component/servicenow/it/ServicenowResource.java +++ b/integration-tests/servicenow/src/main/java/org/apache/camel/quarkus/component/servicenow/it/ServicenowResource.java @@ -23,9 +23,12 @@ import java.util.Map; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @@ -70,13 +73,51 @@ public class ServicenowResource { LOG.infof("Sending to servicenow: %s", message); final JsonNode response = producerTemplate.requestBodyAndHeaders( "servicenow:" + instance, incident, headers, JsonNode.class); - - String number = response.findPath("number").textValue(); + String sysId = response.findPath("sys_id").textValue(); LOG.infof("Got response from servicenow: %s", response); return Response .created(new URI("https://camel.apache.org/")) - .entity(number) + .entity(sysId) .build(); } + + @Path("/get") + @GET + @Produces(MediaType.TEXT_PLAIN) + public Response get(@QueryParam("incidentSysId") String incidentSysId) { + + Map<String, Object> headers = new HashMap<>(); + headers.put(ServiceNowConstants.RESOURCE, ServiceNowConstants.RESOURCE_TABLE); + headers.put(ServiceNowConstants.API_VERSION, "v1"); + headers.put(ServiceNowConstants.ACTION, ServiceNowConstants.ACTION_RETRIEVE); + headers.put(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), "incident"); + headers.put(ServiceNowParams.PARAM_SYS_ID.getHeader(), incidentSysId); + headers.put(ServiceNowConstants.RESPONSE_MODEL, JsonNode.class); + + try { + final JsonNode response = producerTemplate.requestBodyAndHeaders("servicenow:" + instance, null, headers, + JsonNode.class); + LOG.infof("Got response from servicenow: %s", response); + String number = response.findPath("number").textValue(); + return Response.ok(number).build(); + } catch (Exception e) { + LOG.error(e); + return Response.status(Response.Status.NOT_FOUND).build(); + } + } + + @Path("/delete") + @DELETE + public Response delete(@QueryParam("incidentSysId") String incidentSysId) { + Map<String, Object> headers = new HashMap<>(); + headers.put(ServiceNowConstants.RESOURCE, ServiceNowConstants.RESOURCE_TABLE); + headers.put(ServiceNowConstants.API_VERSION, "v1"); + headers.put(ServiceNowConstants.ACTION, ServiceNowConstants.ACTION_DELETE); + headers.put(ServiceNowParams.PARAM_TABLE_NAME.getHeader(), "incident"); + headers.put(ServiceNowParams.PARAM_SYS_ID.getHeader(), incidentSysId); + + producerTemplate.requestBodyAndHeaders("servicenow:" + instance, null, headers); + return Response.status(Response.Status.NO_CONTENT).build(); + } } diff --git a/integration-tests/servicenow/src/test/java/org/apache/camel/quarkus/component/servicenow/it/ServicenowTest.java b/integration-tests/servicenow/src/test/java/org/apache/camel/quarkus/component/servicenow/it/ServicenowTest.java index 8168518..7b88a56 100644 --- a/integration-tests/servicenow/src/test/java/org/apache/camel/quarkus/component/servicenow/it/ServicenowTest.java +++ b/integration-tests/servicenow/src/test/java/org/apache/camel/quarkus/component/servicenow/it/ServicenowTest.java @@ -32,12 +32,37 @@ class ServicenowTest { @Test public void test() { - RestAssured.given() + // Create incident + final String incidentSysId = RestAssured.given() .contentType(ContentType.TEXT) .body("Demo incident") .post("/servicenow/post") .then() .statusCode(201) + .extract().body().asString(); + + // Retrieve incident + RestAssured.given() + .contentType(ContentType.TEXT) + .queryParam("incidentSysId", incidentSysId) + .get("/servicenow/get") + .then() + .statusCode(200) .body(matchesPattern("INC[0-9]+")); + + // Delete incident + RestAssured.given() + .queryParam("incidentSysId", incidentSysId) + .delete("/servicenow/delete") + .then() + .statusCode(204); + + // Check it is deleted + RestAssured.given() + .contentType(ContentType.TEXT) + .queryParam("incidentSysId", incidentSysId) + .get("/servicenow/get") + .then() + .statusCode(404); } }