From 4d0e2bd865cf490eb3f8d72dbbf02dd3ba8e5178 Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Mon, 29 Nov 2021 16:01:45 -0500 Subject: Add test cases for gra microservice Add test cases for GRA microservice to address test coverage being under target Issue-ID: SDNC-1638 Signed-off-by: Dan Timoney Change-Id: If9422cdb577ef3984f17f4ef7aa2cd7e362e2fd4 --- .../apps/ms/gra/controllers/ServiceDataHelper.java | 2 +- .../ConfigApiPreloadControllerTest.java | 21 + .../ConfigApiServicesControllerTest.java | 999 ++++++++++++++++++++- ...tworkinstancegroupNetworkInstanceGroupTest.java | 139 +++ ...oupNetworkinstancegroupNetworksNetworkTest.java | 42 + .../contrail-route-allotted-resources-1.json | 35 + .../resources/port-mirror-configurations-1.json | 122 +++ .../resources/service1-netinstancegrp-network.json | 15 + .../resources/service1-netinstancegrp-vpnbind.json | 10 + .../test/resources/service1-netinstancegrp.json | 35 + .../service1-network-allotted-resource.json | 7 + .../resources/service1-network-id-structure.json | 8 + .../resources/service1-network-oper-status.json | 5 + .../src/test/resources/service1-network.json | 37 + ms/gra/gra-app/src/test/resources/service1.json | 110 ++- 15 files changed, 1572 insertions(+), 15 deletions(-) create mode 100644 ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/swagger/model/GenericResourceApiNetworkinstancegroupNetworkInstanceGroupTest.java create mode 100644 ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/swagger/model/GenericResourceApiNetworkinstancegroupNetworkinstancegroupNetworksNetworkTest.java create mode 100644 ms/gra/gra-app/src/test/resources/contrail-route-allotted-resources-1.json create mode 100644 ms/gra/gra-app/src/test/resources/port-mirror-configurations-1.json create mode 100644 ms/gra/gra-app/src/test/resources/service1-netinstancegrp-network.json create mode 100644 ms/gra/gra-app/src/test/resources/service1-netinstancegrp-vpnbind.json create mode 100644 ms/gra/gra-app/src/test/resources/service1-netinstancegrp.json create mode 100644 ms/gra/gra-app/src/test/resources/service1-network-allotted-resource.json create mode 100644 ms/gra/gra-app/src/test/resources/service1-network-id-structure.json create mode 100644 ms/gra/gra-app/src/test/resources/service1-network-oper-status.json create mode 100644 ms/gra/gra-app/src/test/resources/service1-network.json (limited to 'ms/gra') diff --git a/ms/gra/gra-app/src/main/java/org/onap/sdnc/apps/ms/gra/controllers/ServiceDataHelper.java b/ms/gra/gra-app/src/main/java/org/onap/sdnc/apps/ms/gra/controllers/ServiceDataHelper.java index adcd504..44cd163 100644 --- a/ms/gra/gra-app/src/main/java/org/onap/sdnc/apps/ms/gra/controllers/ServiceDataHelper.java +++ b/ms/gra/gra-app/src/main/java/org/onap/sdnc/apps/ms/gra/controllers/ServiceDataHelper.java @@ -280,7 +280,7 @@ public class ServiceDataHelper { } public boolean networkExists(String svcInstanceId, String networkId) { - List configNetworks = configNetworksRepository.findBySvcInstanceId(svcInstanceId); + List configNetworks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(svcInstanceId, networkId); if ((configNetworks != null) && !configNetworks.isEmpty()) { return(true); } else { diff --git a/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/ConfigApiPreloadControllerTest.java b/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/ConfigApiPreloadControllerTest.java index 8c311fb..76f4712 100644 --- a/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/ConfigApiPreloadControllerTest.java +++ b/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/ConfigApiPreloadControllerTest.java @@ -181,6 +181,27 @@ public class ConfigApiPreloadControllerTest { assertEquals(404, mvcResult.getResponse().getStatus()); } + @Test + public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypePreloadDataPreloadNetworkTopologyInformationGet() throws Exception { + // Clean up data + configPreloadDataRepository.deleteAll(); + + // Test with data + loadData(CONFIG_PRELOAD_URL, "src/test/resources/preload1-net-model-info.json"); + assert(configPreloadDataRepository.count() > 0); + + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_PRELOAD_LIST_URL+"preload1/network/preload-data/preload-network-topology-information/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + // Test with no data + configPreloadDataRepository.deleteAll(); + mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_PRELOAD_LIST_URL+"preload1/network/preload-data/preload-network-topology-information/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + } + + @Test public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypePostNoData() throws Exception { // Clean up data diff --git a/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/ConfigApiServicesControllerTest.java b/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/ConfigApiServicesControllerTest.java index dd5a6a4..544ae88 100644 --- a/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/ConfigApiServicesControllerTest.java +++ b/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/ConfigApiServicesControllerTest.java @@ -2,6 +2,7 @@ package org.onap.sdnc.apps.ms.gra.controllers; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.io.IOException; @@ -38,9 +39,12 @@ public class ConfigApiServicesControllerTest { private final static String TEST_SVC_INSTANCE_ID = "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca"; private final static String TEST_VNF_ID = "fae319cc-68d6-496f-be1e-a09e133c71d4"; private final static String TEST_VF_MODULE_ID = "45841173-3729-4a1d-a811-a3bde399e22d"; + private final static String TEST_NETWORK_INSTANCE_GROUP = "netgrp123"; private final static String CONFIG_SERVICES_URL = "/config/GENERIC-RESOURCE-API:services/"; private final static String CONFIG_SERVICES_SERVICE_URL = "/config/GENERIC-RESOURCE-API:services/service/"; + private final static String CONFIG_CR_ARS_URL = "/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/"; private final static String CONFIG_CR_ARS_CR_AR_URL = "/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/"; + private final static String CONFIG_PM_CONFIGS_CONFIG_URL = "/config/GENERIC-RESOURCE-API:port-mirror-configurations/"; private final static String CONFIG_PM_CONFIGS_PM_CONFIG_URL = "/config/GENERIC-RESOURCE-API:port-mirror-configurations/port-mirror-configuration/"; @Autowired @@ -102,7 +106,7 @@ public class ConfigApiServicesControllerTest { // Add service data - service, vnf, vf-module loadServicesData("src/test/resources/service1.json"); assertEquals(1, configServicesRepository.count()); - assertEquals(0, configNetworksRepository.count()); + assertEquals(2, configNetworksRepository.count()); assertEquals(1, configVnfsRepository.count()); assertEquals(1, configVfModulesRepository.count()); @@ -431,6 +435,284 @@ public class ConfigApiServicesControllerTest { clearServicesData(); } + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworkInstanceGroupsNetworkInstanceGroupNetworkInstanceGroupIdDelete() throws Exception { + // Clean up data + clearServicesData(); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Load data + loadServicesData("src/test/resources/service1.json"); + assertEquals(1, configServicesRepository.count()); + + // Test with data + mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(204, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List services = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, services.size()); + assertNotNull(services.get(0).getSvcData()); + + + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworkInstanceGroupsNetworkInstanceGroupNetworkInstanceGroupIdGet() throws Exception { + // Clean up data + clearServicesData(); + + // Test with data + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + // Test with no data + clearServicesData(); + mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + } + + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworkInstanceGroupsNetworkInstanceGroupNetworkInstanceGroupIdNetworksNetworkNetworkidDelete() throws Exception { + // Clean up data + clearServicesData(); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Load data + loadServicesData("src/test/resources/service1.json"); + assertEquals(1, configServicesRepository.count()); + + // Test with data + mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(204, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List services = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, services.size()); + assertNotNull(services.get(0).getSvcData()); + + + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworkInstanceGroupsNetworkInstanceGroupNetworkInstanceGroupIdNetworksNetworkNetworkidGet() throws Exception { + // Clean up data + clearServicesData(); + + // Test with data + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + // Test with no data + clearServicesData(); + mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + } + + + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworkInstanceGroupsNetworkInstanceGroupNetworkInstanceGroupIdNetworksNetworkNetworkidPut() throws Exception { + // Clean up data + clearServicesData(); + + String content = readFileContent("src/test/resources/service1-netinstancegrp-network.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net124/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Test with data, but not this network + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net124/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, updatedService.size()); + assertNotEquals(null, updatedService.get(0).getSvcData()); + + // Test with existing data - should return 204 + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net124/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(204, mvcResult.getResponse().getStatus()); + + // Clean up data + clearServicesData(); + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworkInstanceGroupsNetworkInstanceGroupNetworkInstanceGroupIdNetworksNetworkNetworkidPost() throws Exception { + // Clean up data + clearServicesData(); + + String content = readFileContent("src/test/resources/service1-netinstancegrp-network.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net124/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Test with data, but not this network + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net124/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, updatedService.size()); + assertNotEquals(null, updatedService.get(0).getSvcData()); + + // Test with existing data - should return 409 + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net124/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(409, mvcResult.getResponse().getStatus()); + + // Clean up data + clearServicesData(); + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworkInstanceGroupsNetworkInstanceGroupNetworkInstanceGroupIdNetworksNetworkNetworkidVpnBindingsVpnBindingIdDelete() throws Exception { + // Clean up data + clearServicesData(); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/vpn-bindings/vpnbind1/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Load data + loadServicesData("src/test/resources/service1.json"); + assertEquals(1, configServicesRepository.count()); + + // Test with data + mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/vpn-bindings/vpnbind1/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(204, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List services = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, services.size()); + assertNotNull(services.get(0).getSvcData()); + + + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworkInstanceGroupsNetworkInstanceGroupNetworkInstanceGroupIdNetworksNetworkNetworkidVpnBindingsVpnBindingIdGet() throws Exception { + // Clean up data + clearServicesData(); + + // Test with data + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/vpn-bindings/vpnbind1/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + // Test with no data + clearServicesData(); + mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/vpn-bindings/vpnbind1/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + } + + + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworkInstanceGroupsNetworkInstanceGroupNetworkInstanceGroupIdNetworksNetworkNetworkidVpnBindingsVpnBindingIdPut() throws Exception { + // Clean up data + clearServicesData(); + + String content = readFileContent("src/test/resources/service1-netinstancegrp-vpnbind.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/vpn-bindings/vpnbind3/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Test with data, but not this network + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/vpn-bindings/vpnbind3/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, updatedService.size()); + assertNotEquals(null, updatedService.get(0).getSvcData()); + + // Test with existing data - should return 204 + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/vpn-bindings/vpnbind3/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(204, mvcResult.getResponse().getStatus()); + + // Clean up data + clearServicesData(); + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworkInstanceGroupsNetworkInstanceGroupNetworkInstanceGroupIdNetworksNetworkNetworkidVpnBindingsVpnBindingIdPost() throws Exception { + // Clean up data + clearServicesData(); + + String content = readFileContent("src/test/resources/service1-netinstancegrp-vpnbind.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/vpn-bindings/vpnbind3/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Test with data, but not this network + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/vpn-bindings/vpnbind3/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, updatedService.size()); + assertNotEquals(null, updatedService.get(0).getSvcData()); + + // Test with existing data - should return 409 + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/network-instance-groups/network-instance-group/"+TEST_NETWORK_INSTANCE_GROUP+"/networks/network/net123/vpn-bindings/vpnbind3/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(409, mvcResult.getResponse().getStatus()); + + // Clean up data + clearServicesData(); + } + @Test public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceStatusDelete() throws Exception { // Clean up data @@ -747,24 +1029,639 @@ public class ConfigApiServicesControllerTest { } @Test - public void configGENERICRESOURCEAPIportMirrorConfigurationsPortMirrorConfigurationConfigurationIdPut() throws Exception { + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksGet() throws Exception { // Clean up data - configPortMirrorConfigurationsRepository.deleteAll(); + clearServicesData(); - String content = readFileContent("src/test/resources/port-mirror-configuration-item.json"); + // Test with data + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); // Test with no data - MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_PM_CONFIGS_PM_CONFIG_URL+"pm-config-2/") - .contentType(MediaType.APPLICATION_JSON).content(content)).andReturn(); - assertEquals(201, mvcResult.getResponse().getStatus()); + clearServicesData(); + mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + } - // Test with existing port-mirror-configuration - // Load data - loadPortMirrorConfigurationData("src/test/resources/port-mirror-configuration-1.json"); - assertEquals(2, configPortMirrorConfigurationsRepository.count()); + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidDelete() throws Exception { + // Clean up data + clearServicesData(); - mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_PM_CONFIGS_PM_CONFIG_URL+"pm-config-2/") - .contentType(MediaType.APPLICATION_JSON).content(content)).andReturn(); + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Load data + loadServicesData("src/test/resources/service1.json"); + assertEquals(1, configServicesRepository.count()); + + // Test with data + mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(204, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List services = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, services.size()); + assertNotNull(services.get(0).getSvcData()); + List networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net123"); + assertEquals(0, networks.size()); + + + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidGet() throws Exception { + // Clean up data + clearServicesData(); + + // Test with data + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + // Test with no data + clearServicesData(); + mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + } + + + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidPut() throws Exception { + // Clean up data + clearServicesData(); + + String content = readFileContent("src/test/resources/service1-network.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net124/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Test with data, but not this network + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net124/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, updatedService.size()); + assertNotEquals(null, updatedService.get(0).getSvcData()); + List networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net124"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Test with existing data - should return 204 + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net124/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(204, mvcResult.getResponse().getStatus()); + networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net124"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Clean up data + clearServicesData(); + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidPost() throws Exception { + // Clean up data + clearServicesData(); + + String content = readFileContent("src/test/resources/service1-network.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net124/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Test with data, but not this network + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net124/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, updatedService.size()); + assertNotEquals(null, updatedService.get(0).getSvcData()); + List networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net124"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Test with existing data - should return 409 + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net124/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(409, mvcResult.getResponse().getStatus()); + networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net124"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Clean up data + clearServicesData(); + } + + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidNetworkDataNetworkLevelOperStatusDelete() throws Exception { + // Clean up data + clearServicesData(); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/network-data/network-level-oper-status/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Load data + loadServicesData("src/test/resources/service1.json"); + assertEquals(1, configServicesRepository.count()); + + // Test with data + mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/network-data/network-level-oper-status/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(204, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List services = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, services.size()); + assertNotNull(services.get(0).getSvcData()); + List networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net123"); + assertEquals(1, networks.size()); + + + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidNetworkDataNetworkLevelOperStatusGet() throws Exception { + // Clean up data + clearServicesData(); + + // Test with data + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/network-data/network-level-oper-status/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + // Test with no data + clearServicesData(); + mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/network-data/network-level-oper-status/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + } + + + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidNetworkDataNetworkLevelOperStatusPut() throws Exception { + // Clean up data + clearServicesData(); + + String content = readFileContent("src/test/resources/service1-network-oper-status.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-level-oper-status/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Test with data, but this network has no oper status + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-level-oper-status/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, updatedService.size()); + assertNotEquals(null, updatedService.get(0).getSvcData()); + List networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net125"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Test with existing data - should return 204 + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-level-oper-status/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net125"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Clean up data + clearServicesData(); + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidNetworkDataNetworkLevelOperStatusPost() throws Exception { + // Clean up data + clearServicesData(); + + String content = readFileContent("src/test/resources/service1-network-oper-status.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-level-oper-status/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Test with data, but not this network + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-level-oper-status/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, updatedService.size()); + assertNotEquals(null, updatedService.get(0).getSvcData()); + List networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net125"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Test with existing data - should return 409 + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-level-oper-status/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net125"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Clean up data + clearServicesData(); + } + + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidNetworkDataNetworkTopologyNetworkTopologyIdentifierStructureDelete() throws Exception { + // Clean up data + clearServicesData(); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/network-data/network-topology/network-topology-identifier-structure/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Load data + loadServicesData("src/test/resources/service1.json"); + assertEquals(1, configServicesRepository.count()); + + // Test with data + mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/network-data/network-topology/network-topology-identifier-structure/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(204, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List services = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, services.size()); + assertNotNull(services.get(0).getSvcData()); + List networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net123"); + assertEquals(1, networks.size()); + + + } + + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidNetworkDataNetworkProvidedAllottedResourcesDelete() throws Exception { + // Clean up data + clearServicesData(); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/network-data/network-provided-allotted-resources/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Load data + loadServicesData("src/test/resources/service1.json"); + assertEquals(1, configServicesRepository.count()); + + // Test with data + mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/network-data/network-provided-allotted-resources/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(204, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List services = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, services.size()); + assertNotNull(services.get(0).getSvcData()); + List networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net123"); + assertEquals(1, networks.size()); + + + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidNetworkDataNetworkProvidedAllottedResourcesGet() throws Exception { + // Clean up data + clearServicesData(); + + // Test with data + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/network-data/network-provided-allotted-resources/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + // Test with no data + clearServicesData(); + mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/network-data/network-provided-allotted-resources/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + } + + + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidNetworkDataNetworkProvidedAllottedResourcesPut() throws Exception { + // Clean up data + clearServicesData(); + + String content = readFileContent("src/test/resources/service1-network-allotted-resource.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-provided-allotted-resources/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Test with data, but this network has no oper status + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-provided-allotted-resources/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, updatedService.size()); + assertNotEquals(null, updatedService.get(0).getSvcData()); + List networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net125"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Test with existing data - should return 201 + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-provided-allotted-resources/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net125"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Clean up data + clearServicesData(); + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidNetworkDataNetworkProvidedAllottedResourcesPost() throws Exception { + // Clean up data + clearServicesData(); + + String content = readFileContent("src/test/resources/service1-network-allotted-resource.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-provided-allotted-resources/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Test with data, but not this network + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-provided-allotted-resources/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, updatedService.size()); + assertNotEquals(null, updatedService.get(0).getSvcData()); + List networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net125"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Test with existing data - should return 201 + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-provided-allotted-resources/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net125"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Clean up data + clearServicesData(); + } + + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidNetworkDataNetworkTopologyNetworkTopologyIdentifierStructureGet() throws Exception { + // Clean up data + clearServicesData(); + + // Test with data + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/network-data/network-topology/network-topology-identifier-structure/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + // Test with no data + clearServicesData(); + mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net123/network-data/network-topology/network-topology-identifier-structure/").contentType(MediaType.APPLICATION_JSON).content("")) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + } + + + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidNetworkDataNetworkTopologyNetworkTopologyIdentifierStructurePut() throws Exception { + // Clean up data + clearServicesData(); + + String content = readFileContent("src/test/resources/service1-network-id-structure.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-topology/network-topology-identifier-structure/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Test with data, but this network has no oper status + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-topology/network-topology-identifier-structure/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, updatedService.size()); + assertNotEquals(null, updatedService.get(0).getSvcData()); + List networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net125"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Test with existing data - should return 204 + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-topology/network-topology-identifier-structure/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net125"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Clean up data + clearServicesData(); + } + + @Test + public void configGENERICRESOURCEAPIservicesGENERICRESOURCEAPIserviceServiceInstanceIdGENERICRESOURCEAPIserviceDataNetworksNetworkNetworkidNetworkDataNetworkTopologyNetworkTopologyIdentifierStructurePost() throws Exception { + // Clean up data + clearServicesData(); + + String content = readFileContent("src/test/resources/service1-network-id-structure.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-topology/network-topology-identifier-structure/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(404, mvcResult.getResponse().getStatus()); + assertEquals(0, configServicesRepository.count()); + + // Test with data, but not this network + loadServicesData("src/test/resources/service1.json"); + assert(configServicesRepository.count() > 0); + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-topology/network-topology-identifier-structure/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + assertEquals(1, configServicesRepository.count()); + List updatedService = configServicesRepository.findBySvcInstanceId(TEST_SVC_INSTANCE_ID); + assertEquals(1, updatedService.size()); + assertNotEquals(null, updatedService.get(0).getSvcData()); + List networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net125"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Test with existing data - should return 409 + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_SERVICES_SERVICE_URL+TEST_SVC_INSTANCE_ID+"/service-data/networks/network/net125/network-data/network-topology/network-topology-identifier-structure/").contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + networks = configNetworksRepository.findBySvcInstanceIdAndNetworkId(TEST_SVC_INSTANCE_ID, "net125"); + assertEquals(1, networks.size()); + assertNotNull(networks.get(0).getNetworkData()); + + // Clean up data + clearServicesData(); + } + + + @Test + public void configGENERICRESOURCEAPIportMirrorConfigurationsPut() throws Exception { + // Clean up data + configPortMirrorConfigurationsRepository.deleteAll(); + + String content = readFileContent("src/test/resources/port-mirror-configurations-1.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_PM_CONFIGS_CONFIG_URL) + .contentType(MediaType.APPLICATION_JSON).content(content)).andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + + // Test with existing port-mirror-configuration + // Load data + loadPortMirrorConfigurationData("src/test/resources/port-mirror-configuration-1.json"); + assertEquals(1, configPortMirrorConfigurationsRepository.count()); + + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_PM_CONFIGS_CONFIG_URL) + .contentType(MediaType.APPLICATION_JSON).content(content)).andReturn(); + assertEquals(204, mvcResult.getResponse().getStatus()); + assertEquals(1, configPortMirrorConfigurationsRepository.count()); + + // Clean up data + configPortMirrorConfigurationsRepository.deleteAll(); + } + + @Test + public void configGENERICRESOURCEAPIportMirrorConfigurationsPost() throws Exception { + // Clean up data + configPortMirrorConfigurationsRepository.deleteAll(); + + String content = readFileContent("src/test/resources/port-mirror-configurations-1.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_PM_CONFIGS_CONFIG_URL) + .contentType(MediaType.APPLICATION_JSON).content(content)).andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + + // Test with existing port-mirror-configuration + // Load data + loadPortMirrorConfigurationData("src/test/resources/port-mirror-configuration-1.json"); + assertEquals(1, configPortMirrorConfigurationsRepository.count()); + + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_PM_CONFIGS_CONFIG_URL) + .contentType(MediaType.APPLICATION_JSON).content(content)).andReturn(); + assertEquals(409, mvcResult.getResponse().getStatus()); + assertEquals(1, configPortMirrorConfigurationsRepository.count()); + + // Clean up data + configPortMirrorConfigurationsRepository.deleteAll(); + } + + @Test + public void configGENERICRESOURCEAPIportMirrorConfigurationsGet() throws Exception { + // Clean up data + configPortMirrorConfigurationsRepository.deleteAll(); + + // Test with data + loadPortMirrorConfigurationData("src/test/resources/port-mirror-configuration-1.json"); + assert(configPortMirrorConfigurationsRepository.count() > 0); + + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_PM_CONFIGS_CONFIG_URL) + .contentType(MediaType.APPLICATION_JSON).content("")).andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + + // Test with no data + configPortMirrorConfigurationsRepository.deleteAll(); + mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_PM_CONFIGS_CONFIG_URL) + .contentType(MediaType.APPLICATION_JSON).content("")).andReturn(); + + assertEquals(404, mvcResult.getResponse().getStatus()); + } + + @Test + public void configGENERICRESOURCEAPIportMirrorConfigurationsPortMirrorConfigurationConfigurationIdPut() throws Exception { + // Clean up data + configPortMirrorConfigurationsRepository.deleteAll(); + + String content = readFileContent("src/test/resources/port-mirror-configuration-item.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_PM_CONFIGS_PM_CONFIG_URL+"pm-config-2/") + .contentType(MediaType.APPLICATION_JSON).content(content)).andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + + // Test with existing port-mirror-configuration + // Load data + loadPortMirrorConfigurationData("src/test/resources/port-mirror-configuration-1.json"); + assertEquals(2, configPortMirrorConfigurationsRepository.count()); + + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_PM_CONFIGS_PM_CONFIG_URL+"pm-config-2/") + .contentType(MediaType.APPLICATION_JSON).content(content)).andReturn(); assertEquals(204, mvcResult.getResponse().getStatus()); assertEquals(2, configPortMirrorConfigurationsRepository.count()); @@ -848,6 +1745,82 @@ public class ConfigApiServicesControllerTest { assertEquals(404, mvcResult.getResponse().getStatus()); } + @Test + public void configGENERICRESOURCEAPIcontrailRouteAllottedResourcesPut() throws Exception { + // Clean up data + configContrailRouteAllottedResourcesRepository.deleteAll(); + + String content = readFileContent("src/test/resources/contrail-route-allotted-resources-1.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_CR_ARS_URL) + .contentType(MediaType.APPLICATION_JSON).content(content)).andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + + // Test with existing allotted-resource + // Load data + configContrailRouteAllottedResourcesRepository.deleteAll(); + loadContrailRouteAllottedResourceData("src/test/resources/contrail-route-allotted-resource-1.json"); + assertEquals(1, configContrailRouteAllottedResourcesRepository.count()); + + mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_CR_ARS_URL) + .contentType(MediaType.APPLICATION_JSON).content(content)).andReturn(); + assertEquals(204, mvcResult.getResponse().getStatus()); + assertEquals(1, configContrailRouteAllottedResourcesRepository.count()); + + // Clean up data + configContrailRouteAllottedResourcesRepository.deleteAll(); + } + + @Test + public void configGENERICRESOURCEAPIcontrailRouteAllottedResourcesPost() throws Exception { + // Clean up data + configContrailRouteAllottedResourcesRepository.deleteAll(); + + String content = readFileContent("src/test/resources/contrail-route-allotted-resources-1.json"); + + // Test with no data + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_CR_ARS_URL) + .contentType(MediaType.APPLICATION_JSON).content(content)).andReturn(); + assertEquals(201, mvcResult.getResponse().getStatus()); + + // Test with existing allotted-resource + // Load data + configContrailRouteAllottedResourcesRepository.deleteAll(); + loadContrailRouteAllottedResourceData("src/test/resources/contrail-route-allotted-resource-1.json"); + assertEquals(1, configContrailRouteAllottedResourcesRepository.count()); + + mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_CR_ARS_URL) + .contentType(MediaType.APPLICATION_JSON).content(content)).andReturn(); + assertEquals(409, mvcResult.getResponse().getStatus()); + assertEquals(1, configContrailRouteAllottedResourcesRepository.count()); + + // Clean up data + configContrailRouteAllottedResourcesRepository.deleteAll(); + } + + @Test + public void configGENERICRESOURCEAPIcontrailRouteAllottedResourcesGet() throws Exception { + // Clean up data + configContrailRouteAllottedResourcesRepository.deleteAll(); + + // Test with data + loadContrailRouteAllottedResourceData("src/test/resources/contrail-route-allotted-resource-1.json"); + assert(configContrailRouteAllottedResourcesRepository.count() > 0); + + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_CR_ARS_URL) + .contentType(MediaType.APPLICATION_JSON).content("")).andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + + // Test with no data + configContrailRouteAllottedResourcesRepository.deleteAll(); + mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_CR_ARS_URL) + .contentType(MediaType.APPLICATION_JSON).content("")).andReturn(); + + assertEquals(404, mvcResult.getResponse().getStatus()); + } + @Test public void configGENERICRESOURCEAPIcontrailRouteAllottedResourcesContrailRouteAllottedResourceAllottedResourceIdPut() throws Exception { // Clean up data diff --git a/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/swagger/model/GenericResourceApiNetworkinstancegroupNetworkInstanceGroupTest.java b/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/swagger/model/GenericResourceApiNetworkinstancegroupNetworkInstanceGroupTest.java new file mode 100644 index 0000000..0d129ee --- /dev/null +++ b/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/swagger/model/GenericResourceApiNetworkinstancegroupNetworkInstanceGroupTest.java @@ -0,0 +1,139 @@ +package org.onap.sdnc.apps.ms.gra.swagger.model; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.List; + +import org.junit.Test; + +public class GenericResourceApiNetworkinstancegroupNetworkInstanceGroupTest { + + @Test + public void testNetworkInstanceGroup() { + GenericResourceApiNetworkinstancegroupNetworkInstanceGroup netGroup1 = createTestInstance(); + GenericResourceApiNetworkinstancegroupNetworkInstanceGroup netGroup2 = createTestInstance(); + + assertTrue(netGroup1.equals(netGroup2)); + assertEquals(netGroup1.toString(), netGroup2.toString()); + + } + + + private GenericResourceApiNetworkinstancegroupNetworkInstanceGroup createTestInstance() { + GenericResourceApiNetworkinstancegroupNetworkInstanceGroup netGroup = new GenericResourceApiNetworkinstancegroupNetworkInstanceGroup(); + + netGroup.setNetworkInstanceGroupFunction("function1"); + netGroup.networkInstanceGroupFunction(netGroup.getNetworkInstanceGroupFunction()); + netGroup.setNetworkInstanceGroupId("123"); + netGroup.networkInstanceGroupId(netGroup.getNetworkInstanceGroupId()); + netGroup.setServiceInstanceId("service123"); + netGroup.serviceInstanceId(netGroup.getServiceInstanceId()); + assertEquals("function1", netGroup.getNetworkInstanceGroupFunction()); + assertEquals("123", netGroup.getNetworkInstanceGroupId()); + assertEquals("service123", netGroup.getServiceInstanceId()); + + GenericResourceApiOnapmodelinformationOnapModelInformation modelInfo = new GenericResourceApiOnapmodelinformationOnapModelInformation(); + modelInfo.setModelCustomizationUuid("123456"); + modelInfo.setModelInvariantUuid("123456"); + modelInfo.setModelName("model_t"); + modelInfo.setModelUuid("123456"); + modelInfo.setModelVersion("1"); + netGroup.setOnapModelInformation(modelInfo); + netGroup.onapModelInformation(netGroup.getOnapModelInformation()); + assertEquals("123456", netGroup.getOnapModelInformation().getModelCustomizationUuid()); + assertEquals("123456", netGroup.getOnapModelInformation().getModelInvariantUuid()); + assertEquals("model_t", netGroup.getOnapModelInformation().getModelName()); + assertEquals("123456", netGroup.getOnapModelInformation().getModelUuid()); + assertEquals("1", netGroup.getOnapModelInformation().getModelVersion()); + + GenericResourceApiNetworkinstancegroupNetworkinstancegroupAggregateRoutePolicy aggregateRoutePolicy = new GenericResourceApiNetworkinstancegroupNetworkinstancegroupAggregateRoutePolicy(); + aggregateRoutePolicy.setAggregateRoutePolicyName("agPolicy1"); + aggregateRoutePolicy.setIpv4AggregateRouteLevel("1"); + aggregateRoutePolicy.setIpv6AggregateRouteLevel("2"); + netGroup.setAggregateRoutePolicy(aggregateRoutePolicy); + netGroup.aggregateRoutePolicy(netGroup.getAggregateRoutePolicy()); + assertEquals("agPolicy1", netGroup.getAggregateRoutePolicy().getAggregateRoutePolicyName()); + assertEquals("1", netGroup.getAggregateRoutePolicy().getIpv4AggregateRouteLevel()); + assertEquals("2", netGroup.getAggregateRoutePolicy().getIpv6AggregateRouteLevel()); + + GenericResourceApiAggregateroutesAggregateRoutes agItem = new GenericResourceApiAggregateroutesAggregateRoutes(); + agItem.setCidrMask("12"); + agItem.setIpVersion("ipv4"); + agItem.setRouteId("route1"); + agItem.setStartAddress("127.0.0.0"); + netGroup.addAggregateRoutesItem(agItem); + netGroup.setAggregateRoutes(netGroup.getAggregateRoutes()); + netGroup.aggregateRoutes(netGroup.getAggregateRoutes()); + List agRoutes = netGroup.getAggregateRoutes(); + assertEquals(1, agRoutes.size()); + assertEquals("12", agRoutes.get(0).getCidrMask()); + assertEquals("ipv4", agRoutes.get(0).getIpVersion()); + assertEquals("route1", agRoutes.get(0).getRouteId()); + assertEquals("127.0.0.0", agRoutes.get(0).getStartAddress()); + + GenericResourceApiSubnetsSubnets subnetItem = new GenericResourceApiSubnetsSubnets(); + subnetItem.setAddrFromStart(GenericResourceApiAddrFromStartEnumeration.Y); + subnetItem.setCidrMask("12"); + subnetItem.setDhcpEnabled(GenericResourceApiDhcpEnabledEnumeration.Y); + subnetItem.setDhcpStartAddress("10.1.1.1"); + subnetItem.setDhcpEndAddress("10.1.1.127"); + subnetItem.setGatewayAddress("10.1.1.255"); + subnetItem.setIpVersion("ipv4"); + subnetItem.setStartAddress("10.1.1.0"); + subnetItem.setSubnetName("subnet1"); + subnetItem.setSubnetRole("client"); + netGroup.addSubnetsItem(subnetItem); + netGroup.setSubnets(netGroup.getSubnets()); + netGroup.subnets(netGroup.getSubnets()); + List subnets = netGroup.getSubnets(); + assertEquals(1, subnets.size()); + assertEquals(GenericResourceApiAddrFromStartEnumeration.Y, subnets.get(0).getAddrFromStart()); + assertEquals("12", subnets.get(0).getCidrMask()); + assertEquals(GenericResourceApiDhcpEnabledEnumeration.Y, subnets.get(0).getDhcpEnabled()); + assertEquals("10.1.1.1", subnets.get(0).getDhcpStartAddress()); + assertEquals("10.1.1.127", subnets.get(0).getDhcpEndAddress()); + assertEquals("ipv4", subnets.get(0).getIpVersion()); + assertEquals("10.1.1.0", subnets.get(0).getStartAddress()); + assertEquals("subnet1", subnets.get(0).getSubnetName()); + assertEquals("client", subnets.get(0).getSubnetRole()); + + GenericResourceApiNetworkinstancegroupNetworkinstancegroupSubnetAssignmentPolicy subnetAssignmentPolicy = new GenericResourceApiNetworkinstancegroupNetworkinstancegroupSubnetAssignmentPolicy(); + subnetAssignmentPolicy.setSubnetUse("optional"); + netGroup.setSubnetAssignmentPolicy(subnetAssignmentPolicy); + netGroup.subnetAssignmentPolicy(netGroup.getSubnetAssignmentPolicy()); + assertEquals("optional", netGroup.getSubnetAssignmentPolicy().getSubnetUse()); + + GenericResourceApiNetworkinstancegroupNetworkinstancegroupVpnBindingPolicy vpnBindingPolicy = new GenericResourceApiNetworkinstancegroupNetworkinstancegroupVpnBindingPolicy(); + vpnBindingPolicy.setGlobalRouteTarget("target1"); + vpnBindingPolicy.setRouteTargetRole("role1"); + vpnBindingPolicy.setVpnBinding("binding1"); + vpnBindingPolicy.setVpnName("vpn1"); + vpnBindingPolicy.setVpnPlatform("platform1"); + vpnBindingPolicy.setVpnType("type1"); + netGroup.setVpnBindingPolicy(vpnBindingPolicy); + netGroup.vpnBindingPolicy(netGroup.getVpnBindingPolicy()); + assertEquals("target1", netGroup.getVpnBindingPolicy().getGlobalRouteTarget()); + assertEquals("role1", netGroup.getVpnBindingPolicy().getRouteTargetRole()); + assertEquals("binding1", netGroup.getVpnBindingPolicy().getVpnBinding()); + assertEquals("vpn1", netGroup.getVpnBindingPolicy().getVpnName()); + assertEquals("platform1", netGroup.getVpnBindingPolicy().getVpnPlatform()); + assertEquals("type1", netGroup.getVpnBindingPolicy().getVpnType()); + + GenericResourceApiNetworkinstancegroupNetworkinstancegroupNetworks networks = new GenericResourceApiNetworkinstancegroupNetworkinstancegroupNetworks(); + GenericResourceApiNetworkinstancegroupNetworkinstancegroupNetworksNetwork networkItem = new GenericResourceApiNetworkinstancegroupNetworkinstancegroupNetworksNetwork(); + networkItem.setNetworkId("123"); + networkItem.setNetworkStatus("active"); + networkItem.setNeutronNetworkId("123"); + networks.addNetworkItem(networkItem); + netGroup.setNetworks(networks); + netGroup.networks(netGroup.getNetworks()); + assertEquals(1, netGroup.getNetworks().getNetwork().size()); + assertEquals("123", netGroup.getNetworks().getNetwork().get(0).getNetworkId()); + assertEquals("123", netGroup.getNetworks().getNetwork().get(0).getNeutronNetworkId()); + assertEquals("active", netGroup.getNetworks().getNetwork().get(0).getNetworkStatus()); + + return(netGroup); + } + +} diff --git a/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/swagger/model/GenericResourceApiNetworkinstancegroupNetworkinstancegroupNetworksNetworkTest.java b/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/swagger/model/GenericResourceApiNetworkinstancegroupNetworkinstancegroupNetworksNetworkTest.java new file mode 100644 index 0000000..a5794e4 --- /dev/null +++ b/ms/gra/gra-app/src/test/java/org/onap/sdnc/apps/ms/gra/swagger/model/GenericResourceApiNetworkinstancegroupNetworkinstancegroupNetworksNetworkTest.java @@ -0,0 +1,42 @@ +package org.onap.sdnc.apps.ms.gra.swagger.model; + +import static org.junit.Assert.assertEquals; + +import java.util.List; +import org.junit.Test; + +public class GenericResourceApiNetworkinstancegroupNetworkinstancegroupNetworksNetworkTest { + + @Test + public void testCreateInstance() { + GenericResourceApiNetworkinstancegroupNetworkinstancegroupNetworksNetwork network = new GenericResourceApiNetworkinstancegroupNetworkinstancegroupNetworksNetwork(); + + network.setNetworkId("123"); + network.networkId("123"); + network.setNetworkStatus("active"); + network.networkStatus("active"); + network.setNeutronNetworkId("123"); + network.neutronNetworkId("123"); + network.setVlanTagId(123L); + network.vlanTagId(123L); + + GenericResourceApiVpnbindingsVpnBindings vpnBinding = new GenericResourceApiVpnbindingsVpnBindings(); + vpnBinding.setAicZone("aic1"); + vpnBinding.setGlobalRouteTarget("target1"); + vpnBinding.setRouteTargetRole("role1"); + vpnBinding.setVpnBindingId("123"); + vpnBinding.setVpnName("name1"); + network.addVpnBindingsItem(vpnBinding); + List vpnBindings = network.getVpnBindings(); + network.setVpnBindings(vpnBindings); + network.vpnBindings(vpnBindings); + + assertEquals("123", network.getNetworkId()); + assertEquals("active", network.getNetworkStatus()); + assertEquals("123", network.getNeutronNetworkId()); + assertEquals((Long) 123L, network.getVlanTagId()); + + + + } +} diff --git a/ms/gra/gra-app/src/test/resources/contrail-route-allotted-resources-1.json b/ms/gra/gra-app/src/test/resources/contrail-route-allotted-resources-1.json new file mode 100644 index 0000000..4e34fe1 --- /dev/null +++ b/ms/gra/gra-app/src/test/resources/contrail-route-allotted-resources-1.json @@ -0,0 +1,35 @@ +{ + "contrail-route-allotted-resources" : { + "contrail-route-allotted-resource" : [ + { + "allotted-resource-id": "ar1", + "allotted-resource-data": { + "allotted-resource-oper-status": { + "create-timestamp": "2020-11-24T12:41:01.796Z", + "order-status": "Active" + }, + "contrail-route-topology": { + "contrail-route-assignments": { + "contrail-id": "cr1", + "dest-network": { + "network-id": "19cdfce4-9124-4bbf-83bd-5140931bb519", + "network-role": "pktmirror" + }, + "fq-name": "default-domain.GRP-27529-T-IST-13C.GRP-27529-T-SIL-13C_gn_SCTPA_IP_net_12_dyh2b_GRP-27529-T-SIL-13C_gn_SCTPA_IP_pktmirror_policy_32", + "source-network": { + "network-id": "1610d17a-fb91-48ac-9d4c-43f739fdbe54", + "network-role": "GRP-27529-T-SIL-13C_gn_SCTPA_IP" + } + }, + "allotted-resource-identifiers": { + "allotted-resource-id": "ar1", + "allotted-resource-type": "contrail-route", + "allotted-resource-name": "GRP-27529-T-SIL-13C_gn_SCTPA_IP_net_12_dyh2b_GRP-27529-T-SIL-13C_gn_SCTPA_IP_pktmirror_policy_32", + "parent-service-instance-id": "service1" + } + } + } + } + ] +} +} diff --git a/ms/gra/gra-app/src/test/resources/port-mirror-configurations-1.json b/ms/gra/gra-app/src/test/resources/port-mirror-configurations-1.json new file mode 100644 index 0000000..9d7f2f2 --- /dev/null +++ b/ms/gra/gra-app/src/test/resources/port-mirror-configurations-1.json @@ -0,0 +1,122 @@ +{ + "port-mirror-configurations" : { + "port-mirror-configuration": [ + { + "configuration-data": { + "configuration-oper-status": { + "last-action": "CreatePortMirrorConfigurationInstance", + "last-rpc-action": "activate", + "order-status": "Active" + }, + "configuration-operation-information": { + "configuration-information": { + "configuration-id": "pm-config-1", + "configuration-sub-type": "vprobe", + "configuration-type": "PORT-MIRROR", + "onap-model-information": { + "model-customization-uuid": "770c991a-47fb-4225-8d72-4790847f8307", + "model-invariant-uuid": "a81abec0-222e-4fb2-b1c6-c4162359b2b3", + "model-name": "Port Mirroring Configuration", + "model-uuid": "18af239e-5397-4224-816f-d2850f3fab38", + "model-version": "23.0" + } + }, + "port-mirror-configuration-request-input": { + "dest-port": { + "vnf-information": { + "vnf-id": "039c2d5d-4efb-4145-9890-a6b5373cdfa5" + } + }, + "source-port": { + "vnf-information": { + "vnf-id": "c5c92f5d-ed4d-4fb5-9ee1-b3eb562b1c6d" + } + } + }, + "request-information": { + "request-action": "CreatePortMirrorConfigurationInstance", + "request-id": "61fe8925-fb53-4968-b9de-74be4acd06cc", + "source": "MSO" + }, + "sdnc-request-header": { + "svc-action": "activate", + "svc-notification-url": "https://mso-sdnc-s3.ecomp.idns.aic.cip.att.com:30254/adapters/rest/SDNCNotify", + "svc-request-id": "ba937e51-6baf-486c-9851-3c6a646c9256" + }, + "service-information": { + "global-customer-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb", + "service-instance-id": "156abc88-35d1-475a-85a1-e0e0a226cbd5", + "subscription-service-type": "Mobility" + } + }, + "port-mirror-configuration-topology": { + "configuration-identifiers": { + "configuration-id": "pm-config-1", + "configuration-name": "vMME02_VLC_Port_Mirroring_DYH2B_SCTPA", + "configuration-sub-type": "vprobe", + "configuration-type": "PORT-MIRROR", + "parent-service-instance-id": "156abc88-35d1-475a-85a1-e0e0a226cbd5" + }, + "port-mirror-configuration-assignments": { + "cloud-owner": "att-aic", + "cloud-region-id": "dyh2b", + "dest-network-fqdn": "default-domain:GRP-27529-T-SIL-13B:GRP-27529-T-SIL-13B_vprobe_int_pkmirror1", + "dest-vnf-id": "039c2d5d-4efb-4145-9890-a6b5373cdfa5", + "dest-vnfc-instance-group-id": { + "configuration-id": "pm-config-1", + "instance-group-role": "pktmirror", + "service-instance-id": "156abc88-35d1-475a-85a1-e0e0a226cbd5" + }, + "owning-entity": "10c645f5-9924-4b89-bec0-b17cf49d3cad", + "probe-type": "vprobe", + "route-allotted-resource-id": "286d41ea-d644-46b2-98fc-643ea1b591d1", + "source-capacity": 100000, + "source-network-fqdn": "default-domain:GRP-27529-T-IST-13C:GRP-27529-T-SIL-13C_gn_SCTPA_IP_net_12", + "source-to-dest-maps": { + "source-to-dest-map": [ + { + "dest-ip-addresses": { + "ip-addresses": { + "ipv4-address": "107.114.102.4" + } + }, + "dest-port-id": "b91beeda-fae3-4a99-9354-06c965db83f7", + "dest-port-name": "zdyh2bprbvlba_module04-vlbagent_eph_aff_0_int_pktmirror_port_0-m5ylyrybbmmb", + "dest-vserver-id": "9e2fc5ea-a88f-4955-bda8-10e75c173a8e", + "source-port-id": "7b6ee74c-cc2c-4290-95f2-2d89a3c4da74", + "source-port-name": "default-virtual-machine-interface-7b6ee74c-cc2c-4290-95f2-2d89a3c4da74", + "source-vserver-id": "2e3a8bb2-75ff-4e97-a888-961bfc624caa" + }, + { + "dest-ip-addresses": { + "ip-addresses": { + "ipv4-address": "107.114.102.3" + } + }, + "dest-port-id": "7cf3fda3-3153-4655-ae47-36fcf4439073", + "dest-port-name": "zdyh2bprbvlba_base_5-vlbagentbase_eph_aff_0_int_pktmirror_port_0-vkvey3eyoqk2", + "dest-vserver-id": "165db140-c09f-411a-bfdc-b8e6c7dbbda4", + "source-port-id": "0fd4c63c-6fda-4564-af10-d3be157279ef", + "source-port-name": "default-virtual-machine-interface-0fd4c63c-6fda-4564-af10-d3be157279ef", + "source-vserver-id": "b5bf2e1f-9f90-445c-be00-2c882e82d1d7" + } + ] + }, + "source-vnf-id": "c5c92f5d-ed4d-4fb5-9ee1-b3eb562b1c6d", + "source-vnfc-instance-group-id": { + "configuration-id": "pm-config-1", + "instance-group-role": "GRP-27529-T-SIL-13C_gn_SCTPA_IP", + "service-instance-id": "156abc88-35d1-475a-85a1-e0e0a226cbd5" + }, + "tenant": "GRP-27529-T-IST-13C", + "tenant-context": "Test", + "tenant-id": "077445458306425499337c98bafc8c47", + "vnics-group-id": "97" + } + } + }, + "configuration-id": "pm-config-1" + } + ] + } +} diff --git a/ms/gra/gra-app/src/test/resources/service1-netinstancegrp-network.json b/ms/gra/gra-app/src/test/resources/service1-netinstancegrp-network.json new file mode 100644 index 0000000..f9114c0 --- /dev/null +++ b/ms/gra/gra-app/src/test/resources/service1-netinstancegrp-network.json @@ -0,0 +1,15 @@ +{ + "network": + { + "network-id": "net124", + "vpn-bindings": [ + { + "vpn-binding-id": "vpnbind2", + "route-target-role": "both", + "vpn-name": "myvpn2", + "global-route-target": "target2", + "aic-zone": "RDM5" + } + ] + } +} diff --git a/ms/gra/gra-app/src/test/resources/service1-netinstancegrp-vpnbind.json b/ms/gra/gra-app/src/test/resources/service1-netinstancegrp-vpnbind.json new file mode 100644 index 0000000..4e8abc3 --- /dev/null +++ b/ms/gra/gra-app/src/test/resources/service1-netinstancegrp-vpnbind.json @@ -0,0 +1,10 @@ +{ + "vpn-bindings": + { + "vpn-binding-id": "vpnbind3", + "route-target-role": "both", + "vpn-name": "myvpn3", + "global-route-target": "target3", + "aic-zone": "RDM5" + } +} diff --git a/ms/gra/gra-app/src/test/resources/service1-netinstancegrp.json b/ms/gra/gra-app/src/test/resources/service1-netinstancegrp.json new file mode 100644 index 0000000..5cd12db --- /dev/null +++ b/ms/gra/gra-app/src/test/resources/service1-netinstancegrp.json @@ -0,0 +1,35 @@ +{ + "network-instance-group" : { + "network-instance-group-id": "netgrp123", + "networks": { + "network": [ + { + "network-id": "net123", + "vpn-bindings": [ + { + "vpn-binding-id": "vpnbind1", + "route-target-role": "both", + "vpn-name": "myvpn", + "global-route-target": "target1", + "aic-zone": "RDM5" + } + ] + } + ] + }, + "subnet-key-value": "subnet1", + "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca", + "subnet-assignment-policy": { + "subnet-use": "shared" + }, + "subnets": [ + { + "start-address": "10.1.1.1", + "ip-version": "4", + "dhcp-enabled": "N", + "subnet-name": "subnet1", + "cidr-mask": "26" + } + ] + } +} diff --git a/ms/gra/gra-app/src/test/resources/service1-network-allotted-resource.json b/ms/gra/gra-app/src/test/resources/service1-network-allotted-resource.json new file mode 100644 index 0000000..ff16380 --- /dev/null +++ b/ms/gra/gra-app/src/test/resources/service1-network-allotted-resource.json @@ -0,0 +1,7 @@ +{ + "network-provided-allotted-resources": { + "network-provided-ar-id": [ + "ar123" + ] + } +} diff --git a/ms/gra/gra-app/src/test/resources/service1-network-id-structure.json b/ms/gra/gra-app/src/test/resources/service1-network-id-structure.json new file mode 100644 index 0000000..abc345d --- /dev/null +++ b/ms/gra/gra-app/src/test/resources/service1-network-id-structure.json @@ -0,0 +1,8 @@ +{ + "network-topology-identifier-structure": { + "network-technology": "soupcan", + "network-type": "CAMPBELLS_TOMATO", + "network-name": "popart", + "network-role": "dummy" + } +} diff --git a/ms/gra/gra-app/src/test/resources/service1-network-oper-status.json b/ms/gra/gra-app/src/test/resources/service1-network-oper-status.json new file mode 100644 index 0000000..1b69a3d --- /dev/null +++ b/ms/gra/gra-app/src/test/resources/service1-network-oper-status.json @@ -0,0 +1,5 @@ +{ + "oper-status": { + "order-status": "Created" + } +} diff --git a/ms/gra/gra-app/src/test/resources/service1-network.json b/ms/gra/gra-app/src/test/resources/service1-network.json new file mode 100644 index 0000000..676dd35 --- /dev/null +++ b/ms/gra/gra-app/src/test/resources/service1-network.json @@ -0,0 +1,37 @@ +{ + "network": { + "network-id": "net124", + "network-data": { + "network-topology": { + "tenant": "tenant2", + "network-topology-identifier-structure": { + "network-technology": "soupcan", + "network-type": "CAMPBELLS_TOMATO", + "network-name": "andy", + "network-role": "dummy" + }, + "aic-cloud-region": "region1" + }, + "service-information": { + "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca", + "onap-model-information": { + "model-invariant-uuid": "abcdef12345", + "model-uuid": "abcdef12345" + } + }, + "network-level-oper-status": { + "order-status": "Created" + }, + "network-request-input": { + "tenant": "tenant2", + "network-name": "andy", + "aic-cloud-region": "region1" + }, + "network-information": { + "network-type": "CAMPBELLS_TOMATO", + "network-id": "net124", + "from-preload": true + } + } + } +} diff --git a/ms/gra/gra-app/src/test/resources/service1.json b/ms/gra/gra-app/src/test/resources/service1.json index 806af9c..d7bc4c0 100644 --- a/ms/gra/gra-app/src/test/resources/service1.json +++ b/ms/gra/gra-app/src/test/resources/service1.json @@ -46,6 +46,114 @@ "svc-action": "assign", "svc-request-id": "6d06a832-69da-4369-9d99-049767a39400" }, + "network-instance-groups": { + "network-instance-group": [ + { + "network-instance-group-id": "netgrp123", + "networks" : { + "network" : [ + { + "network-id": "net123", + "vpn-bindings": [ + { + "vpn-binding-id": "vpnbind1", + "route-target-role": "both", + "vpn-name" : "myvpn", + "global-route-target": "target1", + "aic-zone": "RDM5" + } + ] + } + ] + }, + "subnet-key-value": "subnet1", + "service-instance-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca", + "subnet-assignment-policy": { + "subnet-use": "shared" + }, + "subnets": [ + { + "start-address": "10.1.1.1", + "ip-version": "4", + "dhcp-enabled": "N", + "subnet-name": "subnet1", + "cidr-mask": "26" + } + ] + } + ] + + }, + "networks": { + "network": [ + { + "network-id": "net123", + "network-data": { + "network-topology": { + "tenant": "tenant1", + "network-topology-identifier-structure": { + "network-technology": "soupcan", + "network-type": "CAMPBELLS_TOMATO", + "network-name": "warhol", + "network-role": "dummy" + }, + "aic-cloud-region": "region1" + }, + "service-information": { + "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca", + "onap-model-information": { + "model-invariant-uuid": "abcdef12345", + "model-uuid": "abcdef12345" + } + }, + "network-level-oper-status": { + "order-status": "Created" + }, + "network-request-input": { + "tenant": "tenant1", + "network-name": "warhol", + "aic-cloud-region": "region1" + }, + "network-information": { + "network-type": "CAMPBELLS_TOMATO", + "network-id": "net123", + "from-preload": true + }, + "network-provided-allotted-resources": { + "network-provided-ar-id": [ + "ar123" + ] + } + } + }, + { + "network-id": "net125", + "network-data": { + "network-topology": { + "tenant": "tenant1", + "aic-cloud-region": "region1" + }, + "service-information": { + "service-id": "5c4f2d89-57a3-47e9-b49b-d3c63eb0b3ca", + "onap-model-information": { + "model-invariant-uuid": "abcdef12345", + "model-uuid": "abcdef12345" + } + }, + "network-request-input": { + "tenant": "tenant1", + "network-name": "popart", + "aic-cloud-region": "region1" + }, + "network-information": { + "network-type": "CAMPBELLS_TOMATO", + "network-id": "net125", + "from-preload": true + } + } + } + ] + }, "vnfs": { "vnf": [ { @@ -232,4 +340,4 @@ } } ] -} \ No newline at end of file +} -- cgit 1.2.3-korg