VTP API Enhancements: Support Profile 19/111319/3
authorjitendra007 <jitendra.sharma1@huawei.com>
Mon, 17 Aug 2020 12:36:36 +0000 (18:06 +0530)
committerjitendra007 <jitendra.sharma1@huawei.com>
Wed, 26 Aug 2020 13:01:04 +0000 (18:31 +0530)
Issue-ID: VNFSDK-533

Signed-off-by: jitendra007 <jitendra.sharma1@huawei.com>
Change-Id: I769c60e65d82d798a7b87f724624519d258240c5

vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/profile/VTPProfileResource.java
vnfmarket-be/vnf-sdk-marketplace/src/test/java/org/onap/vtp/profile/VTPProfileResourceTest.java [new file with mode: 0644]

index 880bfef..a5c601d 100644 (file)
@@ -67,7 +67,7 @@ public class VTPProfileResource extends VTPResource {
                 "--product", "open-cli", "profile-list", "--format", "json"
                 }));
 
-        JsonObject results = this.makeRpcAndGetJson(args).getAsJsonObject();
+        JsonArray results = this.makeRpcAndGetJson(args).getAsJsonArray();
 
         VTPTestProfileList list = new VTPTestProfileList();
 
@@ -100,7 +100,7 @@ public class VTPProfileResource extends VTPResource {
         args.addAll(Arrays.asList(new String[] {
                  "--product", "open-cli", "profile-show", "--profile", profileName, "--format", "json"
                 }));
-        JsonObject results = this.makeRpcAndGetJson(args).getAsJsonObject();
+        JsonArray results = this.makeRpcAndGetJson(args).getAsJsonArray();
 
         VTPTestProfile profile = new VTPTestProfile();
         profile.setName(profileName);
diff --git a/vnfmarket-be/vnf-sdk-marketplace/src/test/java/org/onap/vtp/profile/VTPProfileResourceTest.java b/vnfmarket-be/vnf-sdk-marketplace/src/test/java/org/onap/vtp/profile/VTPProfileResourceTest.java
new file mode 100644 (file)
index 0000000..662e6bb
--- /dev/null
@@ -0,0 +1,119 @@
+/**
+ * Copyright 2020 Huawei Technologies Co., Ltd.
+ *
+ * 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
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onap.vtp.profile;
+
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParser;
+import mockit.Expectations;
+import mockit.Mock;
+import mockit.MockUp;
+import mockit.Mocked;
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.vtp.VTPResource;
+import org.onap.vtp.error.VTPError;
+
+import javax.servlet.ReadListener;
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.core.Response;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.List;
+import org.eclipse.jetty.http.HttpStatus;
+
+import static org.junit.Assert.assertEquals;
+
+
+public class VTPProfileResourceTest {
+
+    VTPProfileResource vtpProfileResource;
+    @Before
+    public void setUp() {
+        vtpProfileResource=new VTPProfileResource();
+    }
+
+    private void mockVTPResource(String jsonValue){
+        new MockUp<VTPResource>() {
+            @Mock
+            protected JsonElement makeRpcAndGetJson(List<String> args, int timeout) throws VTPError.VTPException, IOException {
+                JsonElement jsonNode = new JsonParser().parse(jsonValue);
+                return jsonNode;
+            }
+        };
+    }
+
+    private void mockGetInputStream(HttpServletRequest request) throws IOException {
+        new Expectations(){{
+            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
+                    ("{\"name\":\"https\",\"properties\":[{\"testCaseName\":\"weather-report\"," +
+                            " \"testSuiteName\":\"tutorial\", \"scenario\":\"learning\"," +
+                            " \"inputParameterName\":\"zipcod\",\"value\":\"412\"}]}").getBytes());
+            request.getInputStream();
+            result =  new ServletInputStream(){
+                public int read() throws IOException {
+                    return byteArrayInputStream.read();
+                }
+                @Override
+                public boolean isFinished() {
+                    return true;
+                }
+                @Override
+                public boolean isReady() {
+                    return true;
+                }
+                @Override
+                public void setReadListener(ReadListener arg0) {
+                }
+            };
+        }};
+    }
+
+    @Test
+    public void testListTestProfiles() throws IOException, VTPError.VTPException {
+        String jsonValue = "[{\"profile\":\"https\"}]";
+        mockVTPResource(jsonValue);
+        assertEquals(HttpStatus.OK_200,vtpProfileResource.listTestProfiles().getStatus());
+    }
+
+    @Test
+    public void testGetTestProfile() throws IOException, VTPError.VTPException {
+        String jsonValue = "[{\"profile\":\"https\",\"parameter\":\"tutorial\"," +
+                "\"value\":\"value\",\"service\":\"service\",\"command\":\"command\"" +
+                ",\"product\":\"product\"}]";
+        mockVTPResource(jsonValue);
+        assertEquals(HttpStatus.OK_200,vtpProfileResource.getTestProfile("https").getStatus());
+    }
+
+    @Test
+    public void testCreateProfile(@Mocked HttpServletRequest request) throws IOException, VTPError.VTPException {
+        mockGetInputStream(request);
+        mockVTPResource("[]");
+        Response response= vtpProfileResource.createProfile(request);
+        assertEquals(HttpStatus.OK_200,response.getStatus());
+    }
+
+    @Test(expected = VTPError.VTPException.class)
+    public void testCreateProfile2(@Mocked HttpServletRequest request) throws IOException, VTPError.VTPException {
+        String jsonValue = "[{\"profile\":\"https\"}]";
+        mockGetInputStream(request);
+        mockVTPResource(jsonValue);
+        vtpProfileResource.createProfile(request);
+    }
+
+}
\ No newline at end of file