refactor restAdaptor and add test for HTTP-PUT 49/63749/3
authorGanesh Chandrasekaran <ganesh.c@samsung.com>
Thu, 30 Aug 2018 08:55:34 +0000 (17:55 +0900)
committerTakamune Cho <tc012c@att.com>
Wed, 5 Sep 2018 17:52:13 +0000 (17:52 +0000)
Issue-ID: APPC-1181

Change-Id: Ibd70b03db906343c5e9c27439e2da541a54672e2
Signed-off-by: Ganesh Chandrasekaran <ganesh.c@samsung.com>
appc-adapters/appc-rest-adapter/appc-rest-adapter-bundle/src/main/java/org/onap/appc/adapter/rest/impl/RestAdapterImpl.java
appc-adapters/appc-rest-adapter/appc-rest-adapter-bundle/src/test/java/org/onap/appc/adapter/rest/impl/TestRestAdapterImpl.java
appc-core/appc-common-bundle/src/main/java/org/onap/appc/Constants.java

index 7f9f843..39fdb1b 100644 (file)
@@ -6,6 +6,8 @@
  * ================================================================================
  * Copyright (C) 2017 Amdocs
  * =============================================================================
+ * Modifications Copyright (C) 2018 Samsung
+ * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
@@ -156,8 +158,8 @@ public class RestAdapterImpl implements RestAdapter {
         svcLogic.setStatus(OUTCOME_FAILURE);
         svcLogic.setAttribute(Constants.ATTRIBUTE_ERROR_CODE, status);
         svcLogic.setAttribute(Constants.ATTRIBUTE_ERROR_MESSAGE, msg);
-        svcLogic.setAttribute("org.openecomp.rest.result.code", status);
-        svcLogic.setAttribute("org.openecomp.rest.result.message", msg);
+        svcLogic.setAttribute(Constants.CONTEXT_ERROR_CODE, status);
+        svcLogic.setAttribute(Constants.CONTEXT_ERROR_MESSAGE, msg);
     }
 
 
@@ -170,9 +172,9 @@ public class RestAdapterImpl implements RestAdapter {
         svcLogic.setStatus(OUTCOME_SUCCESS);
         svcLogic.setAttribute(Constants.ATTRIBUTE_ERROR_CODE, Integer.toString(HttpStatus.OK_200.getStatusCode()));
         svcLogic.setAttribute(Constants.ATTRIBUTE_ERROR_MESSAGE, message);
-        svcLogic.setAttribute("org.openecomp.rest.agent.result.code", Integer.toString(code));
-        svcLogic.setAttribute("org.openecomp.rest.agent.result.message", message);
-        svcLogic.setAttribute("org.openecomp.rest.result.code", Integer.toString(HttpStatus.OK_200.getStatusCode()));
+        svcLogic.setAttribute(Constants.CONTEXT_AGENT_ERROR_CODE, Integer.toString(code));
+        svcLogic.setAttribute(Constants.CONTEXT_AGENT_ERROR_MESSAGE, message);
+        svcLogic.setAttribute(Constants.CONTEXT_ERROR_CODE, Integer.toString(HttpStatus.OK_200.getStatusCode()));
     }
 
     private void executeHttpRequest(HttpRequestBase httpRequest, RequestContext rc) {
index ca5a898..e0fdd79 100644 (file)
@@ -8,6 +8,8 @@
  * =============================================================================
  * Copyright (C) 2017 Intel Corp.
  * =============================================================================
+ * Modifications Copyright (C) 2018 Samsung
+ * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
@@ -111,7 +113,40 @@ public class TestRestAdapterImpl {
         assertEquals("http://example.com:8081/puttest", httpPut.getURI().toURL().toString());
         assertEquals("{\"name\":\"MyNode2\", \"width\":300, \"height\":300}", EntityUtils.toString(httpPut.getEntity()));
     }
-    
+
+    @Test
+    public void testCreateRequestNoParamPut() throws IOException, IllegalStateException, IllegalArgumentException,
+            ZoneException, APPCException {
+
+        SvcLogicContext ctx = new SvcLogicContext();
+        Map<String, String> params = new HashMap<>();
+
+        adapter.commonPut(params, ctx);
+
+        assertEquals("failure", ctx.getStatus());
+        assertEquals("500", ctx.getAttribute("org.openecomp.rest.result.code"));
+        assertEquals("java.lang.IllegalArgumentException: HTTP request may not be null",
+                     ctx.getAttribute("org.openecomp.rest.result.message"));
+    }
+
+    @Test
+    public void testCreateRequestInvalidParamPut() throws IOException, IllegalStateException, IllegalArgumentException,
+            ZoneException, APPCException {
+
+        SvcLogicContext ctx = new SvcLogicContext();
+        Map<String, String> params = new HashMap<>();
+        params.put("org.onap.appc.instance.URI", "boo");
+        params.put("org.onap.appc.instance.haveHeader","false");
+        params.put("org.onap.appc.instance.requestBody", "{\"name\":\"MyNode2\", \"width\":300, \"height\":300}");
+
+        adapter.commonPut(params, ctx);
+
+        assertEquals("failure", ctx.getStatus());
+        assertEquals("500", ctx.getAttribute("org.openecomp.rest.result.code"));
+        assertEquals("org.apache.http.client.ClientProtocolException",
+                     ctx.getAttribute("org.openecomp.rest.result.message"));
+    }
+
     @Test
     public void testCreateHttpRequestDelete() throws IOException, IllegalStateException, IllegalArgumentException,
         ZoneException, APPCException {    
index c1a306a..5fab6bb 100644 (file)
@@ -6,6 +6,8 @@
  * ================================================================================
  * Copyright (C) 2017 Amdocs
  * =============================================================================
+ * Modifications Copyright (C) 2018 Samsung
+ * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
@@ -52,6 +54,24 @@ public final class Constants {
     @SuppressWarnings("nls")
     public static final String ATTRIBUTE_ERROR_MESSAGE = "error-message";
 
+    /**     
+     * The name for the error message  to be set in the context
+     */
+    @SuppressWarnings("nls")
+    public static final String CONTEXT_ERROR_MESSAGE = "org.openecomp.rest.result.message";
+
+    @SuppressWarnings("nls")
+    public static final String CONTEXT_AGENT_ERROR_MESSAGE = "org.openecomp.rest.agent.result.message";
+
+    /**
+     * The name for the error code  to be set in the context
+     */
+    @SuppressWarnings("nls")
+    public static final String CONTEXT_ERROR_CODE = "org.openecomp.rest.result.code";
+
+    @SuppressWarnings("nls")
+    public static final String CONTEXT_AGENT_ERROR_CODE = "org.openecomp.rest.agent.result.code";
+
     /**
      * The name for the success message attribute to be set in the context
      */