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);
     }
 }

Reply via email to