aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjitendra007 <jitendra.sharma1@huawei.com>2020-08-17 18:06:36 +0530
committerjitendra007 <jitendra.sharma1@huawei.com>2020-08-26 18:31:04 +0530
commit54850b63ac75b8240561da80b82d172495098d4d (patch)
treefa2c4cc743f4f82a5ce4c4e623f68065e5ef21cb
parent1b847c8df05fe0e8be28e115a6953c0b18eaf053 (diff)
VTP API Enhancements: Support Profile
Issue-ID: VNFSDK-533 Signed-off-by: jitendra007 <jitendra.sharma1@huawei.com> Change-Id: I769c60e65d82d798a7b87f724624519d258240c5
-rw-r--r--vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/profile/VTPProfileResource.java4
-rw-r--r--vnfmarket-be/vnf-sdk-marketplace/src/test/java/org/onap/vtp/profile/VTPProfileResourceTest.java119
2 files changed, 121 insertions, 2 deletions
diff --git a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/profile/VTPProfileResource.java b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/profile/VTPProfileResource.java
index 880bfefa..a5c601da 100644
--- a/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/profile/VTPProfileResource.java
+++ b/vnfmarket-be/vnf-sdk-marketplace/src/main/java/org/onap/vtp/profile/VTPProfileResource.java
@@ -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
index 00000000..662e6bb9
--- /dev/null
+++ b/vnfmarket-be/vnf-sdk-marketplace/src/test/java/org/onap/vtp/profile/VTPProfileResourceTest.java
@@ -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