diff options
3 files changed, 122 insertions, 10 deletions
diff --git a/vnfmarket-be/vnf-sdk-marketplace/pom.xml b/vnfmarket-be/vnf-sdk-marketplace/pom.xml index 85376cfa..3dcda1a9 100644 --- a/vnfmarket-be/vnf-sdk-marketplace/pom.xml +++ b/vnfmarket-be/vnf-sdk-marketplace/pom.xml @@ -251,17 +251,10 @@ due to Security Issues:- CVE-2019-10241,CVE-2019-10247,CVE-2019-10246 <version>1.8.2</version> <scope>test</scope> </dependency> - - - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-io</artifactId> - <version>1.3.2</version> - </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> - <version>2.4</version> + <version>2.7</version> </dependency> <dependency> <groupId>com.google.guava</groupId> 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 |