diff options
author | Norm Traxler <normant@amdocs.com> | 2019-01-21 21:03:59 +0000 |
---|---|---|
committer | Norm Traxler <normant@amdocs.com> | 2019-01-22 14:23:19 +0000 |
commit | 5c07f0088fd71e30bfd8dc92b870f604b4297420 (patch) | |
tree | 8f4fca51f25c591888b6dad00c6b94ee0db6a1ce /src/test/java | |
parent | cdad28821c2ac6834e284aae72f10ad2d0529147 (diff) |
NetworkDiscCtxBuilder error handling
Issue-ID: LOG-938
Change-Id: I20e8592efe5f1ca8960f228041303c8d25628018
Signed-off-by: Norm Traxler <normant@amdocs.com>
Diffstat (limited to 'src/test/java')
3 files changed, 110 insertions, 205 deletions
diff --git a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/test/NetworkDiscoveryRspInfoTest.java b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/test/NetworkDiscoveryRspInfoTest.java deleted file mode 100644 index af2ba01..0000000 --- a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/test/NetworkDiscoveryRspInfoTest.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * ============LICENSE_START=================================================== - * Copyright (c) 2018 Amdocs - * ============================================================================ - * 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. - * ============LICENSE_END===================================================== - */ - -package org.onap.pomba.contextbuilder.networkdiscovery.test; - -import static org.junit.Assert.assertEquals; - -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.CountDownLatch; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.pomba.contextbuilder.networkdiscovery.model.NetworkDiscoveryRspInfo; -import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.NetworkDiscoveryNotification; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.web.WebAppConfiguration; - -@RunWith(SpringJUnit4ClassRunner.class) -@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class }) -@WebAppConfiguration -@SpringBootTest -@TestPropertySource(properties = { "enricher.url=http://localhost:9505", "serviceDecomposition.host=localhost", - "networkDiscoveryMicroService.host=localhost", - "networkDiscoveryMicroService.responseTimeOutInMilliseconds=1000" }) -public class NetworkDiscoveryRspInfoTest { - NetworkDiscoveryRspInfo networkDiscoveryRspInfo = new NetworkDiscoveryRspInfo(); - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testGetRequestId() throws Exception { - String requestId = "2123"; - networkDiscoveryRspInfo.setRequestId(requestId); - assertEquals(requestId, networkDiscoveryRspInfo.getRequestId()); - } - - @Test - public void testGetResourceType() throws Exception { - String resourceType = "vserver"; - networkDiscoveryRspInfo.setResourceType(resourceType); - assertEquals(resourceType, networkDiscoveryRspInfo.getResourceType()); - } - - @Test - public void testGetResourceId() throws Exception { - String resourceId = "2123"; - networkDiscoveryRspInfo.setResourceId(resourceId); - assertEquals(resourceId, networkDiscoveryRspInfo.getResourceId()); - } - - @Test - public void testGetLatchSignal() throws Exception { - CountDownLatch latchSignal = new CountDownLatch(5); - networkDiscoveryRspInfo.setLatchSignal(latchSignal); - assertEquals(latchSignal, networkDiscoveryRspInfo.getLatchSignal()); - } - - @Test - public void testGetNetworkDiscoveryNotificationList() throws Exception { - NetworkDiscoveryNotification tmpNof = new NetworkDiscoveryNotification(); - List<NetworkDiscoveryNotification> myList = Arrays.asList(tmpNof); - - networkDiscoveryRspInfo.setNetworkDiscoveryNotificationList(myList); - networkDiscoveryRspInfo.toString(); - assertEquals(myList, networkDiscoveryRspInfo.getNetworkDiscoveryNotificationList()); - } - - @Test - public void testGetRelatedRequestIdList() throws Exception { - List<String> myList = Arrays.asList("myTest123"); - - networkDiscoveryRspInfo.setRelatedRequestIdList(myList); - assertEquals(myList, networkDiscoveryRspInfo.getRelatedRequestIdList()); - } -} diff --git a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/test/jolt/TransformationTest.java b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/test/jolt/TransformationTest.java index 7518591..29a4a6f 100644 --- a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/test/jolt/TransformationTest.java +++ b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/test/jolt/TransformationTest.java @@ -28,10 +28,12 @@ import org.junit.Assert; import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
-import org.onap.pomba.contextbuilder.networkdiscovery.model.NdQuery;
+import org.onap.pomba.common.datatypes.ModelContext;
+import org.onap.pomba.contextbuilder.networkdiscovery.model.NdResources;
public class TransformationTest {
+ private static final String CONFIG_JOLT_DIRECTORY = "config/jolt/";
private static final String TEST_RESOURCES = "src/test/resources/jolt/";
@Rule
@@ -39,26 +41,58 @@ public class TransformationTest { @Test
- public void testTransformNdQuery() {
+ public void testTransformNdResources() {
- Object sourceObject = JsonUtils.filepathToObject(TEST_RESOURCES + "serviceDecompToNdQuery-input.json");
+ Object sourceObject = JsonUtils.filepathToObject(TEST_RESOURCES + "/serviceDecompResponse.json");
Object sourceObject1 = JsonUtils.jsonToObject(JsonUtils.toJsonString(sourceObject));
- List<Object> chainrSpecJSON = JsonUtils.filepathToList("config/ndQuery.spec");
- Chainr chainr = Chainr.fromSpec(chainrSpecJSON);
+ List<Object> chainrSpecJson = JsonUtils.filepathToList(CONFIG_JOLT_DIRECTORY + "sdToNdResourcesSpec.json");
+ Chainr chainr = Chainr.fromSpec(chainrSpecJson);
+ Object output = chainr.transform(sourceObject1);
+
+ String resultJson = JsonUtils.toJsonString(output);
+
+ System.err.println(resultJson);
+
+ // read the result into the NqQuery class:
+ Gson gson = new Gson();
+ NdResources ndQuery = gson.fromJson(resultJson, NdResources.class);
+
+ // convert ndQuery back to json:
+ String ndQueryToJson = gson.toJson(ndQuery);
+
+
+
+ // Compare with expected output:
+ Object expectedObject = JsonUtils.filepathToObject(TEST_RESOURCES + "serviceDecompToNdResources-expected.json");
+
+ Assert.assertEquals("Json transformation result does not match expected content",
+ JsonUtils.toPrettyJsonString(expectedObject),
+ JsonUtils.toPrettyJsonString(JsonUtils.jsonToObject(ndQueryToJson)));
+
+ }
+
+ @Test
+ public void testTransformModelContext() {
+
+ Object sourceObject = JsonUtils.filepathToObject(TEST_RESOURCES + "serviceDecompResponse.json");
+ Object sourceObject1 = JsonUtils.jsonToObject(JsonUtils.toJsonString(sourceObject));
+
+ List<Object> chainrSpecJson = JsonUtils.filepathToList(CONFIG_JOLT_DIRECTORY + "sdToModelContextSpec.json");
+ Chainr chainr = Chainr.fromSpec(chainrSpecJson);
Object output = chainr.transform(sourceObject1);
String resultJson = JsonUtils.toJsonString(output);
// read the result into the NqQuery class:
Gson gson = new Gson();
- NdQuery ndQuery = gson.fromJson(resultJson, NdQuery.class);
+ ModelContext ndQuery = gson.fromJson(resultJson, ModelContext.class);
// convert ndQuery back to json:
String ndQueryToJson = gson.toJson(ndQuery);
// Compare with expected output:
- Object expectedObject = JsonUtils.filepathToObject(TEST_RESOURCES + "serviceDecompToNdQuery-expected.json");
+ Object expectedObject = JsonUtils.filepathToObject(TEST_RESOURCES + "serviceDecompToModelContext-expected.json");
Assert.assertEquals("Json transformation result does not match expected content",
JsonUtils.toPrettyJsonString(expectedObject),
diff --git a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java index 024f21a..c7475b0 100644 --- a/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java +++ b/src/test/java/org/onap/pomba/contextbuilder/networkdiscovery/unittest/service/NetworkDiscoveryContextBuilderTest.java @@ -24,15 +24,13 @@ import static org.mockito.Mockito.mock; import com.github.tomakehurst.wiremock.client.WireMock; import com.github.tomakehurst.wiremock.junit.WireMockRule; import com.github.tomakehurst.wiremock.matching.UrlPattern; +import com.google.gson.Gson; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Arrays; import java.util.Base64; -import java.util.List; import java.util.UUID; import javax.servlet.http.HttpServletRequest; @@ -44,11 +42,8 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; -import org.onap.pomba.common.datatypes.DataQuality; +import org.onap.pomba.common.datatypes.ModelContext; import org.onap.pomba.contextbuilder.networkdiscovery.service.rs.RestService; -import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.Attribute; -import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.NetworkDiscoveryNotification; -import org.onap.sdnc.apps.pomba.networkdiscovery.datamodel.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; @@ -75,10 +70,8 @@ public class NetworkDiscoveryContextBuilderTest { private String partnerName = "POMBA"; private String transactionId = UUID.randomUUID().toString(); private String serviceInstanceId = "c6456519-6acf-4adb-997c-3c363dd4caaf"; - private String requestId = "2131__1"; HttpServletRequest httpServletRequest = mock(HttpServletRequest.class); - NetworkDiscoveryNotification networkDiscoveryNotification = simulateNetworkDiscoveryNotification(); @Autowired Environment environment; @@ -135,8 +128,8 @@ public class NetworkDiscoveryContextBuilderTest { public void testVerifyServiceDecomposition() throws Exception { String urlStr = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; - addResponse(urlStr, "junit/SD_response.json", serviceDecompositionRule); - addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); + addResponse(urlStr, "junit/serviceDecompositionResponse-1.json", serviceDecompositionRule); + addResponseAny("junit/networkDiscoveryResponseVserver-1.json", networkDiscoveryMicroServiceRule); Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, transactionId, null, null, serviceInstanceId, null, null); assertEquals(Status.OK.getStatusCode(), response.getStatus()); @@ -146,20 +139,73 @@ public class NetworkDiscoveryContextBuilderTest { public void testVerifyGetContext() throws Exception { String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; - addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule); - addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); + addResponse(serviceDecompUrl, "junit/serviceDecompositionResponse-1.json", serviceDecompositionRule); + + String vserverPayload = readFully( + ClassLoader.getSystemResourceAsStream("junit/networkDiscoveryResponseVserver-1.json")); + networkDiscoveryMicroServiceRule.stubFor(WireMock + .any(WireMock.urlPathEqualTo("/network-discovery/v1/network/resource")) + .withQueryParam("resourceType", WireMock.equalTo("vserver")).willReturn(okJson(vserverPayload))); + + String l3networkPayload = readFully( + ClassLoader.getSystemResourceAsStream("junit/networkDiscoveryResponseL3Network.json")); + networkDiscoveryMicroServiceRule.stubFor(WireMock + .any(WireMock.urlPathEqualTo("/network-discovery/v1/network/resource")) + .withQueryParam("resourceType", WireMock.equalTo("l3-network")).willReturn(okJson(l3networkPayload))); Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, transactionId, null, null, serviceInstanceId, null, null); assertEquals(Status.OK.getStatusCode(), response.getStatus()); + + System.out.println(response.getEntity()); + + Gson gson = new Gson(); + ModelContext modelContext = gson.fromJson((String) response.getEntity(), ModelContext.class); + assertTrue(modelContext.getVnfs().size() > 0); + assertTrue(modelContext.getVnfs().get(0).getVfModules().size() > 0); + assertTrue(modelContext.getVnfs().get(0).getVfModules().get(0).getVms().size() > 0); + + } + + @Test + public void testVerifyGetContextNdResourceNotFound() throws Exception { + + String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; + addResponse(serviceDecompUrl, "junit/serviceDecompositionResponse-1.json", serviceDecompositionRule); + UrlPattern testPath = WireMock.anyUrl(); + networkDiscoveryMicroServiceRule.stubFor(get(testPath).willReturn(WireMock.notFound())); + + Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, transactionId, + null, null, serviceInstanceId, null, null); + + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + + Gson gson = new Gson(); + ModelContext modelContext = gson.fromJson((String)response.getEntity(), ModelContext.class); + assertTrue(modelContext.getVnfs().size() > 0); + assertTrue(modelContext.getVnfs().get(0).getVfModules().size() > 0); + assertTrue(modelContext.getVnfs().get(0).getVfModules().get(0).getVms().size() > 0); + + } + + @Test + public void testVerifyGetContextSdResoureNofFound() throws Exception { + + UrlPattern testPath = WireMock.anyUrl(); + serviceDecompositionRule.stubFor(get(testPath).willReturn(WireMock.notFound())); + + Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, transactionId, + null, null, serviceInstanceId, null, null); + + assertEquals(Status.NOT_FOUND.getStatusCode(), response.getStatus()); } @Test public void testVerifyNoPartnerNameWithFromAppId() throws Exception { String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; - addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule); - addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); + addResponse(serviceDecompUrl, "junit/serviceDecompositionResponse-1.json", serviceDecompositionRule); + addResponseAny("junit/networkDiscoveryResponseVserver-1.json", networkDiscoveryMicroServiceRule); Response response = this.restService.getContext(httpServletRequest, authorization, null, transactionId, partnerName, null, serviceInstanceId, null, null); @@ -169,8 +215,8 @@ public class NetworkDiscoveryContextBuilderTest { @Test public void testVerifyNoRequestIdNoTransactionId() throws Exception { String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; - addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule); - addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); + addResponse(serviceDecompUrl, "junit/serviceDecompositionResponse-1.json", serviceDecompositionRule); + addResponseAny("junit/networkDiscoveryResponseVserver-1.json", networkDiscoveryMicroServiceRule); Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, null, null, null, serviceInstanceId, null, null); @@ -180,8 +226,8 @@ public class NetworkDiscoveryContextBuilderTest { @Test public void testVerifyNoPartnerNameNoFromAppId() throws Exception { String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; - addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule); - addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); + addResponse(serviceDecompUrl, "junit/serviceDecompositionResponse-1.json", serviceDecompositionRule); + addResponseAny("junit/networkDiscoveryResponseVserver-1.json", networkDiscoveryMicroServiceRule); Response response = this.restService.getContext(httpServletRequest, authorization, null, transactionId, null, null, serviceInstanceId, null, null); @@ -191,8 +237,8 @@ public class NetworkDiscoveryContextBuilderTest { @Test public void testVerifyNoRequestIdWithTransactionId() throws Exception { String serviceDecompUrl = "/service-decomposition/service/context?serviceInstanceId=" + serviceInstanceId; - addResponse(serviceDecompUrl, "junit/serviceDecomposition-1.json", serviceDecompositionRule); - addResponseAny("junit/networkDiscoveryResponse-1.json", networkDiscoveryMicroServiceRule); + addResponse(serviceDecompUrl, "junit/serviceDecompositionResponse-1.json", serviceDecompositionRule); + addResponseAny("junit/networkDiscoveryResponseVserver-1.json", networkDiscoveryMicroServiceRule); Response response = this.restService.getContext(httpServletRequest, authorization, partnerName, null, null, transactionId, serviceInstanceId, null, null); @@ -206,8 +252,8 @@ public class NetworkDiscoveryContextBuilderTest { private void addResponseAny(String classpathResource, WireMockRule thisMock) throws IOException { String payload = readFully(ClassLoader.getSystemResourceAsStream(classpathResource)); - UrlPattern tPath = WireMock.anyUrl(); - thisMock.stubFor(get(tPath).willReturn(okJson(payload))); + UrlPattern testPath = WireMock.anyUrl(); + thisMock.stubFor(get(testPath).willReturn(okJson(payload))); } private String readFully(InputStream in) throws IOException { @@ -221,75 +267,4 @@ public class NetworkDiscoveryContextBuilderTest { } return content.toString(); } - - private NetworkDiscoveryNotification simulateNetworkDiscoveryNotification() { - Resource myResource = new Resource(); - myResource.setId("25fb07ab-0478-465e-a021-6384ac299671"); - myResource.setType("vserver"); - DataQuality dataQuality = new DataQuality(); - dataQuality.setStatus(DataQuality.Status.ok); - myResource.setDataQuality(dataQuality); - Attribute attribute = new Attribute(); - attribute.setName("vserver-id"); - attribute.setValue("25fb07ab-0478-465e-a021-6384ac299671"); - attribute.setDataQuality(dataQuality); - List<Attribute> attributeList = new ArrayList<>(); - attributeList.add(attribute); - - attribute.setName("power-state"); - attribute.setValue("1"); - attribute.setDataQuality(dataQuality); - attributeList.add(attribute); - - attribute.setName("vm-state"); - attribute.setValue("active"); - attribute.setDataQuality(dataQuality); - attributeList.add(attribute); - - attribute.setName("status"); - attribute.setValue("ACTIVE"); - attribute.setDataQuality(dataQuality); - attributeList.add(attribute); - - attribute.setName("host-status"); - attribute.setValue("UNKNOWN"); - attribute.setDataQuality(dataQuality); - attributeList.add(attribute); - - attribute.setName("updated"); - attribute.setValue("2017-11-20T04:26:13Z"); - attribute.setDataQuality(dataQuality); - attributeList.add(attribute); - - attribute.setName("disk-allocation-gb"); - attribute.setValue(".010"); - attribute.setDataQuality(dataQuality); - attributeList.add(attribute); - - attribute.setName("memory-usage-mb"); - attribute.setValue("null"); - attribute.setDataQuality(dataQuality); - attributeList.add(attribute); - - attribute.setName("cpu-util-percent"); - attribute.setValue(".048"); - attribute.setDataQuality(dataQuality); - attributeList.add(attribute); - - attribute.setName(".048"); - attribute.setValue("2018-07-26 01:37:07 +0000"); - attribute.setDataQuality(dataQuality); - attributeList.add(attribute); - myResource.setAttributeList(attributeList); - - NetworkDiscoveryNotification notification = new NetworkDiscoveryNotification(); - notification.setResources(Arrays.asList(myResource)); - notification.setAckFinalIndicator(true); - notification.setCode(200); - notification.setRequestId(requestId); - notification.setMessage("OK"); - - return notification; - } - } |