Added junits for MsoNetworkAdapterImpl 81/39881/2
authorKalkere Ramesh, Sharan (sk720x) <sk720x@att.com>
Wed, 28 Mar 2018 23:35:25 +0000 (19:35 -0400)
committerBenjamin, Max (mb388a) <mb388a@us.att.com>
Thu, 29 Mar 2018 00:11:55 +0000 (20:11 -0400)
Change-Id: I3494c043cac3753bed6358ff83e9504321ab9560
Issue-ID: SO-545
Signed-off-by: Kalkere Ramesh, Sharan (sk720x) <sk720x@att.com>
adapters/mso-network-adapter/src/main/java/org/openecomp/mso/adapters/network/MsoNetworkAdapterImpl.java
adapters/mso-network-adapter/src/test/java/org/openecomp/mso/adapters/network/MsoNetworkAdapterImplTest.java [new file with mode: 0644]

index e5e6c85..6d162b6 100644 (file)
@@ -71,6 +71,12 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
        MsoPropertiesFactory msoPropertiesFactory=new MsoPropertiesFactory();
 
        CloudConfigFactory cloudConfigFactory=new CloudConfigFactory();
+       
+       protected MsoNeutronUtils neutron;
+    
+       protected MsoHeatUtils heat;
+    
+       protected MsoHeatUtilsWithUpdate heatWithUpdate;
 
        private static final String AIC3_NW_PROPERTY= "org.openecomp.mso.adapters.network.aic3nw";
        private static final String AIC3_NW="OS::ContrailV2::VirtualNetwork";
@@ -112,6 +118,10 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
        this.msoPropertiesFactory = msoPropFactory;
        this.cloudConfigFactory=cloudConfigFact;
        cloudConfig = cloudConfigFactory.getCloudConfig ();
+       neutron = new MsoNeutronUtils(MSO_PROP_NETWORK_ADAPTER, cloudConfigFactory);
+       heat = new MsoHeatUtils(MSO_PROP_NETWORK_ADAPTER, msoPropertiesFactory, cloudConfigFactory);
+       heatWithUpdate = new MsoHeatUtilsWithUpdate(MSO_PROP_NETWORK_ADAPTER, msoPropertiesFactory,
+                       cloudConfigFactory);
     }
 
     @Override
@@ -226,7 +236,7 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
      * the orchestration fails on a subsequent operation.
      */
 
-    private void createNetwork (String cloudSiteId,
+    protected void createNetwork (String cloudSiteId,
                                String tenantId,
                                String networkType,
                                String modelCustomizationUuid,
@@ -306,9 +316,6 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
 
             if (NEUTRON_MODE.equals(mode)) {
 
-                // Use an MsoNeutronUtils for all neutron commands
-                MsoNeutronUtils neutron = new MsoNeutronUtils(MSO_PROP_NETWORK_ADAPTER, cloudConfigFactory);
-
                 // See if the Network already exists (by name)
                 NetworkInfo netInfo = null;
                 long queryNetworkStarttime = System.currentTimeMillis();
@@ -406,10 +413,6 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
                 LOGGER.debug("Network " + networkName + " created, id = " + netInfo.getId());
             } else if ("HEAT".equals(mode)) {
 
-                // Use an MsoHeatUtils for all Heat commands
-                MsoHeatUtils heat = new MsoHeatUtils(MSO_PROP_NETWORK_ADAPTER, msoPropertiesFactory,
-                    cloudConfigFactory);
-
                 //HeatTemplate heatTemplate = db.getHeatTemplate (networkResource.getTemplateId ());
                 HeatTemplate heatTemplate = db
                     .getHeatTemplateByArtifactUuidRegularQuery(networkResource.getHeatTemplateArtifactUUID());
@@ -857,9 +860,6 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
             String mode = networkResource.getOrchestrationMode();
             NetworkType neutronNetworkType = NetworkType.valueOf(networkResource.getNeutronNetworkType());
 
-            // Use an MsoNeutronUtils for all Neutron commands
-            MsoNeutronUtils neutron = new MsoNeutronUtils(MSO_PROP_NETWORK_ADAPTER, cloudConfigFactory);
-
             if (NEUTRON_MODE.equals(mode)) {
 
                 // Verify that the Network exists
@@ -943,16 +943,12 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
                 LOGGER.debug("Network " + networkId + " updated, id = " + netInfo.getId());
             } else if ("HEAT".equals(mode)) {
 
-                // Use an MsoHeatUtils for all Heat commands
-                MsoHeatUtilsWithUpdate heat = new MsoHeatUtilsWithUpdate(MSO_PROP_NETWORK_ADAPTER, msoPropertiesFactory,
-                    cloudConfigFactory);
-
                 // First, look up to see that the Network already exists.
                 // For Heat-based orchestration, the networkId is the network Stack ID.
                 StackInfo heatStack = null;
                 long queryStackStarttime = System.currentTimeMillis();
                 try {
-                    heatStack = heat.queryStack(cloudSiteId, tenantId, networkName);
+                    heatStack = heatWithUpdate.queryStack(cloudSiteId, tenantId, networkName);
                     LOGGER.recordMetricEvent(queryStackStarttime, MsoLogger.StatusCode.COMPLETE,
                         MsoLogger.ResponseCode.Suc, "Successfully received response from Open Stack", "OpenStack",
                         "QueryStack", null);
@@ -1056,7 +1052,7 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
                 // Validate (and update) the input parameters against the DB definition
                 // Shouldn't happen unless DB config is wrong, since all networks use same inputs
                 try {
-                    stackParams = heat.validateStackParams(stackParams, heatTemplate);
+                    stackParams = heatWithUpdate.validateStackParams(stackParams, heatTemplate);
                 } catch (IllegalArgumentException e) {
                     String error = "UpdateNetwork: Configuration Error: Network Type=" + networkType;
                     LOGGER.error(MessageEnum.RA_CONFIG_EXC, "Network Type=" + networkType, "OpenStack", "",
@@ -1138,7 +1134,7 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
                 // Ignore MsoStackNotFound exception because we already checked.
                 long updateStackStarttime = System.currentTimeMillis();
                 try {
-                    heatStack = heat.updateStack(cloudSiteId,
+                    heatStack = heatWithUpdate.updateStack(cloudSiteId,
                         tenantId,
                         networkId,
                         template,
@@ -1202,7 +1198,7 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
         return;
     }
 
-    private NetworkResource networkCheck (CatalogDatabase db,
+    protected NetworkResource networkCheck (CatalogDatabase db,
                                           long startTime,
                                           String networkType,
                                           String modelCustomizationUuid,
@@ -1404,10 +1400,6 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
                throw new NetworkException (error, MsoExceptionCategory.USERDATA);
         }
 
-        // Use MsoNeutronUtils for all NEUTRON commands
-        MsoHeatUtils heat = new MsoHeatUtils (MSO_PROP_NETWORK_ADAPTER,msoPropertiesFactory,cloudConfigFactory);
-        MsoNeutronUtils neutron = new MsoNeutronUtils (MSO_PROP_NETWORK_ADAPTER, cloudConfigFactory);
-
         String mode;
         String neutronId;
         // Try Heat first, since networks may be named the same as the Heat stack
@@ -1807,7 +1799,7 @@ public class MsoNetworkAdapterImpl implements MsoNetworkAdapter {
         return missing.toString ();
     }
 
-    private Map <String, Object> populateNetworkParams (NetworkType neutronNetworkType,
+    protected Map <String, Object> populateNetworkParams (NetworkType neutronNetworkType,
                                                         String networkName,
                                                         String physicalNetwork,
                                                         List <Integer> vlans,
diff --git a/adapters/mso-network-adapter/src/test/java/org/openecomp/mso/adapters/network/MsoNetworkAdapterImplTest.java b/adapters/mso-network-adapter/src/test/java/org/openecomp/mso/adapters/network/MsoNetworkAdapterImplTest.java
new file mode 100644 (file)
index 0000000..9be488d
--- /dev/null
@@ -0,0 +1,861 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.openecomp.mso.adapters.network;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyList;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+import javax.xml.ws.Holder;
+
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.openecomp.mso.adapters.network.exceptions.NetworkException;
+import org.openecomp.mso.cloud.CloudConfig;
+import org.openecomp.mso.cloud.CloudConfigFactory;
+import org.openecomp.mso.cloud.CloudSite;
+import org.openecomp.mso.db.catalog.CatalogDatabase;
+import org.openecomp.mso.db.catalog.beans.HeatTemplate;
+import org.openecomp.mso.db.catalog.beans.NetworkResource;
+import org.openecomp.mso.openstack.beans.NetworkInfo;
+import org.openecomp.mso.openstack.beans.NetworkRollback;
+import org.openecomp.mso.openstack.beans.NetworkStatus;
+import org.openecomp.mso.openstack.beans.StackInfo;
+import org.openecomp.mso.openstack.beans.Subnet;
+import org.openecomp.mso.openstack.exceptions.MsoException;
+import org.openecomp.mso.openstack.utils.MsoHeatUtils;
+import org.openecomp.mso.openstack.utils.MsoHeatUtilsWithUpdate;
+import org.openecomp.mso.openstack.utils.MsoNeutronUtils;
+import org.openecomp.mso.properties.MsoJavaProperties;
+import org.openecomp.mso.properties.MsoPropertiesException;
+import org.openecomp.mso.properties.MsoPropertiesFactory;
+
+public class MsoNetworkAdapterImplTest {
+
+       @Test
+       public void createNetworkImplTest_CloudSiteNotPresent() throws NetworkException {
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(null);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, true, true, null, null, null, null, null, null);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_NeutronMode_QueryNetworkThrowsException()
+                       throws NetworkException, MsoException {
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("NEUTRON");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               MsoException exception = Mockito.mock(MsoException.class);
+               when(impl.neutron.queryNetwork(any(), any(), any())).thenThrow(exception);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, true, true, null, null, null, null, null, null);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_NeutronMode_QueryNetworkExists_FailIfExistsTrue()
+                       throws NetworkException, MsoException {
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("NEUTRON");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               NetworkInfo netInfo = Mockito.mock(NetworkInfo.class);
+               when(impl.neutron.queryNetwork(any(), any(), any())).thenReturn(netInfo);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, true, true, null, null, null, null, null, null);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_NeutronMode_QueryNetworkExists_FailIfExistsNotTrue()
+                       throws NetworkException, MsoException {
+               Holder<String> networkId = new Holder<>();
+               Holder<String> neutronNetworkId = new Holder<>();
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               Holder<NetworkRollback> rollback = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("NEUTRON");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               NetworkInfo netInfo = Mockito.mock(NetworkInfo.class);
+               when(impl.neutron.queryNetwork(any(), any(), any())).thenReturn(netInfo);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, false, true, null, null, networkId, neutronNetworkId, subnetIdMap,
+                                       rollback);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_NeutronMode_NetInfoDoesntExist_CreateNetworkException()
+                       throws NetworkException, MsoException {
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("NEUTRON");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               NetworkInfo netInfo = null;
+               MsoException exception = Mockito.mock(MsoException.class);
+               when(impl.neutron.queryNetwork(any(), any(), any())).thenReturn(netInfo);
+               when(impl.neutron.createNetwork(any(), any(), any(), any(), any(), any())).thenThrow(exception);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, true, true, null, null, null, null, null, null);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_NeutronMode_NetInfoDoesntExist_CreateNetwork()
+                       throws NetworkException, MsoException {
+               Holder<String> networkId = new Holder<>();
+               Holder<String> neutronNetworkId = new Holder<>();
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               Holder<NetworkRollback> rollback = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("NEUTRON");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               NetworkInfo netInfo = Mockito.mock(NetworkInfo.class);
+               when(netInfo.getId()).thenReturn("Id");
+               when(impl.neutron.queryNetwork(any(), any(), any())).thenReturn(null);
+               when(impl.neutron.createNetwork(any(), any(), any(), any(), any(), anyList())).thenReturn(netInfo);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, true, true, null, null, networkId, neutronNetworkId, subnetIdMap,
+                                       rollback);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_NeutronMode_NetInfoExists()
+                       throws NetworkException, MsoException {
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("NEUTRON");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               NetworkInfo netInfo = null;
+               when(impl.neutron.queryNetwork(any(), any(), any())).thenReturn(netInfo);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, true, true, null, null, null, null, null, null);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_HeatMode_HeatTemplateNull() throws NetworkException {
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("HEAT");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, true, true, null, null, null, null, null, null);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_HeatMode_HeatTemplateNotNull_ThrowMsoPropsException()
+                       throws NetworkException, MsoPropertiesException {
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("HEAT");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               HeatTemplate heatTemplate = Mockito.mock(HeatTemplate.class);
+               when(heatTemplate.toString()).thenReturn("heatTemplate");
+               when(heatTemplate.getHeatTemplate()).thenReturn("heatTemplate");
+               when(catalogDB.getHeatTemplateByArtifactUuidRegularQuery(any())).thenReturn(heatTemplate);
+               MsoPropertiesException exception = Mockito.mock(MsoPropertiesException.class);
+               when(impl.msoPropertiesFactory.getMsoJavaProperties(any())).thenThrow(exception);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, true, true, null, null, null, null, null, null);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_HeatMode_HeatTemplateNotNull()
+                       throws NetworkException, MsoPropertiesException {
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("HEAT");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               HeatTemplate heatTemplate = Mockito.mock(HeatTemplate.class);
+               when(heatTemplate.toString()).thenReturn("heatTemplate");
+               when(heatTemplate.getHeatTemplate()).thenReturn("heatTemplateaic");
+               when(catalogDB.getHeatTemplateByArtifactUuidRegularQuery(any())).thenReturn(heatTemplate);
+               MsoPropertiesException exception = Mockito.mock(MsoPropertiesException.class);
+               MsoJavaProperties props = Mockito.mock(MsoJavaProperties.class);
+               when(impl.msoPropertiesFactory.getMsoJavaProperties(any())).thenReturn(props);
+               when(props.getProperty(anyString(), anyString())).thenReturn("aic");
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, true, true, null, null, null, null, null, null);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_HeatMode_HeatTemplateNotNull_QueryStackThrowsException()
+                       throws NetworkException, MsoPropertiesException, MsoException {
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("HEAT");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               HeatTemplate heatTemplate = Mockito.mock(HeatTemplate.class);
+               when(heatTemplate.toString()).thenReturn("heatTemplate");
+               when(heatTemplate.getHeatTemplate()).thenReturn("heatTemplateaic");
+               when(catalogDB.getHeatTemplateByArtifactUuidRegularQuery(any())).thenReturn(heatTemplate);
+               MsoJavaProperties props = Mockito.mock(MsoJavaProperties.class);
+               when(impl.msoPropertiesFactory.getMsoJavaProperties(any())).thenReturn(props);
+               when(props.getProperty(anyString(), anyString())).thenReturn("aic");
+               MsoException exception = Mockito.mock(MsoException.class);
+               impl.heat = Mockito.mock(MsoHeatUtils.class);
+               when(impl.heat.queryStack(anyString(), anyString(), anyString())).thenThrow(exception);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, true, true, null, null, null, null, null, null);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_HeatMode_HeatTemplateNotNull_QueryStack_HeatStackNull()
+                       throws NetworkException, MsoPropertiesException, MsoException {
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("HEAT");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               HeatTemplate heatTemplate = Mockito.mock(HeatTemplate.class);
+               when(heatTemplate.toString()).thenReturn("heatTemplate");
+               when(heatTemplate.getHeatTemplate()).thenReturn("heatTemplateaic");
+               when(catalogDB.getHeatTemplateByArtifactUuidRegularQuery(any())).thenReturn(heatTemplate);
+               MsoJavaProperties props = Mockito.mock(MsoJavaProperties.class);
+               when(impl.msoPropertiesFactory.getMsoJavaProperties(any())).thenReturn(props);
+               when(props.getProperty(anyString(), anyString())).thenReturn("aic");
+               StackInfo heatStack = null;
+               impl.heat = Mockito.mock(MsoHeatUtils.class);
+               when(impl.heat.queryStack(anyString(), anyString(), anyString())).thenReturn(heatStack);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, true, true, null, null, null, null, null, null);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_HeatMode_HeatTemplateNotNull_QueryStack_HeatStackNotNull_FailIfExists()
+                       throws NetworkException, MsoPropertiesException, MsoException {
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("HEAT");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               HeatTemplate heatTemplate = Mockito.mock(HeatTemplate.class);
+               when(heatTemplate.toString()).thenReturn("heatTemplate");
+               when(heatTemplate.getHeatTemplate()).thenReturn("heatTemplateaic");
+               when(catalogDB.getHeatTemplateByArtifactUuidRegularQuery(any())).thenReturn(heatTemplate);
+               MsoJavaProperties props = Mockito.mock(MsoJavaProperties.class);
+               when(impl.msoPropertiesFactory.getMsoJavaProperties(any())).thenReturn(props);
+               when(props.getProperty(anyString(), anyString())).thenReturn("aic");
+               StackInfo heatStack = Mockito.mock(StackInfo.class);
+               impl.heat = Mockito.mock(MsoHeatUtils.class);
+               when(impl.heat.queryStack(anyString(), anyString(), anyString())).thenReturn(heatStack);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, true, true, null, null, null, null, null, null);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_HeatMode_HeatTemplateNotNull_QueryStack_HeatStackNotNull_DontFailIfExists()
+                       throws NetworkException, MsoPropertiesException, MsoException {
+               Holder<String> networkId = new Holder<>();
+               Holder<String> neutronNetworkId = new Holder<>();
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               Holder<NetworkRollback> rollback = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("HEAT");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               HeatTemplate heatTemplate = Mockito.mock(HeatTemplate.class);
+               when(heatTemplate.toString()).thenReturn("heatTemplate");
+               when(heatTemplate.getHeatTemplate()).thenReturn("heatTemplateaic");
+               when(catalogDB.getHeatTemplateByArtifactUuidRegularQuery(any())).thenReturn(heatTemplate);
+               MsoJavaProperties props = Mockito.mock(MsoJavaProperties.class);
+               when(impl.msoPropertiesFactory.getMsoJavaProperties(any())).thenReturn(props);
+               when(props.getProperty(anyString(), anyString())).thenReturn("aic");
+               StackInfo heatStack = Mockito.mock(StackInfo.class);
+               Map<String, Object> outputs = new HashMap<>();
+               outputs.put("subnet", "");
+               when(heatStack.getOutputs()).thenReturn(outputs);
+               impl.heat = Mockito.mock(MsoHeatUtils.class);
+               when(impl.heat.queryStack(anyString(), anyString(), anyString())).thenReturn(heatStack);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, false, true, null, null, networkId, neutronNetworkId, subnetIdMap,
+                                       rollback);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void createNetworkImplTest_CloudSitePresent_HeatMode_HeatTemplateNotNull_QueryStack_HeatStackNotNull_DontFailIfExists_Validate()
+                       throws NetworkException, MsoPropertiesException, MsoException {
+               List<Subnet> subnets = new ArrayList<>();
+               Holder<String> networkId = new Holder<>();
+               Holder<String> neutronNetworkId = new Holder<>();
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               Holder<NetworkRollback> rollback = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("HEAT");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               HeatTemplate heatTemplate = Mockito.mock(HeatTemplate.class);
+               when(heatTemplate.toString()).thenReturn("heatTemplate");
+               when(heatTemplate.getHeatTemplate()).thenReturn("heatTemplateaic");
+               when(catalogDB.getHeatTemplateByArtifactUuidRegularQuery(any())).thenReturn(heatTemplate);
+               MsoJavaProperties props = Mockito.mock(MsoJavaProperties.class);
+               when(impl.msoPropertiesFactory.getMsoJavaProperties(any())).thenReturn(props);
+               when(props.getProperty(anyString(), anyString())).thenReturn("aic");
+               StackInfo heatStack = Mockito.mock(StackInfo.class);
+               Map<String, Object> outputs = new HashMap<>();
+               outputs.put("subnet", "");
+               when(heatStack.getOutputs()).thenReturn(outputs);
+               impl.heat = Mockito.mock(MsoHeatUtils.class);
+               when(impl.heat.queryStack(anyString(), anyString(), anyString())).thenReturn(heatStack);
+               try {
+                       impl.createNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkName",
+                                       "physicalNetworkName", null, false, true, subnets, null, networkId, neutronNetworkId, subnetIdMap,
+                                       rollback);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void updateNetworkImplTest_CloudSiteNotPresent() throws NetworkException {
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               Holder<NetworkRollback> rollback = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(null);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               try {
+                       impl.updateNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkId",
+                                       "networkName", "physicalNetworkName", null, null, null, subnetIdMap, rollback);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void updateNetworkImplTest_CloudSitePresent_NeutronMode_QueryNetworkThrowsException()
+                       throws NetworkException, MsoException {
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               Holder<NetworkRollback> rollback = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("NEUTRON");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               MsoException exception = Mockito.mock(MsoException.class);
+               when(impl.neutron.queryNetwork(any(), any(), any())).thenThrow(exception);
+               try {
+                       impl.updateNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkId",
+                                       "networkName", "physicalNetworkName", null, null, null, subnetIdMap, rollback);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void updateNetworkImplTest_CloudSitePresent_NeutronMode_QueryNetworkReturnsNull()
+                       throws NetworkException, MsoException {
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               Holder<NetworkRollback> rollback = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("NEUTRON");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               when(impl.neutron.queryNetwork(any(), any(), any())).thenReturn(null);
+               try {
+                       impl.updateNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkId",
+                                       "networkName", "physicalNetworkName", null, null, null, subnetIdMap, rollback);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void updateNetworkImplTest_CloudSitePresent_NeutronMode_QueryNetworkDoesntExist_UpdateNetworkException()
+                       throws NetworkException, MsoException {
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               Holder<NetworkRollback> rollback = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("NEUTRON");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               NetworkInfo netInfo = new NetworkInfo(null);
+               MsoException exception = Mockito.mock(MsoException.class);
+               when(impl.neutron.queryNetwork(any(), any(), any())).thenReturn(netInfo);
+               when(impl.neutron.updateNetwork(any(), any(), any(), any(), any(), anyList())).thenThrow(exception);
+               try {
+                       impl.updateNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkId",
+                                       "networkName", "physicalNetworkName", null, null, null, subnetIdMap, rollback);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void updateNetworkImplTest_CloudSitePresent_NeutronMode_QueryNetworkDoesntExist_UpdateNetwork()
+                       throws NetworkException, MsoException {
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               Holder<NetworkRollback> rollback = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("NEUTRON");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.neutron = Mockito.mock(MsoNeutronUtils.class);
+               NetworkInfo netInfo = new NetworkInfo(null);
+               NetworkInfo mockedNetworkInfo = Mockito.mock(NetworkInfo.class);
+               when(mockedNetworkInfo.getId()).thenReturn("Id");
+               when(impl.neutron.queryNetwork(any(), any(), any())).thenReturn(netInfo);
+               when(impl.neutron.updateNetwork(any(), any(), any(), any(), any(), anyList())).thenReturn(mockedNetworkInfo);
+               try {
+                       impl.updateNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkId",
+                                       "networkName", "physicalNetworkName", null, null, null, subnetIdMap, rollback);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void updateNetworkImplTest_CloudSitePresent_HeatMode_QueryStackThrowException()
+                       throws NetworkException, MsoException {
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               Holder<NetworkRollback> rollback = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("HEAT");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.heatWithUpdate = Mockito.mock(MsoHeatUtilsWithUpdate.class);
+               MsoException exception = Mockito.mock(MsoException.class);
+               when(impl.heatWithUpdate.queryStack(any(), any(), any())).thenThrow(exception);
+               try {
+                       impl.updateNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkId",
+                                       "networkName", "physicalNetworkName", null, null, null, subnetIdMap, rollback);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void updateNetworkImplTest_CloudSitePresent_HeatMode_QueryStackReturnNull()
+                       throws NetworkException, MsoException {
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               Holder<NetworkRollback> rollback = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("HEAT");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.heatWithUpdate = Mockito.mock(MsoHeatUtilsWithUpdate.class);
+               MsoException exception = Mockito.mock(MsoException.class);
+               when(impl.heatWithUpdate.queryStack(any(), any(), any())).thenReturn(null);
+               try {
+                       impl.updateNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkId",
+                                       "networkName", "physicalNetworkName", null, null, null, subnetIdMap, rollback);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void updateNetworkImplTest_CloudSitePresent_HeatMode_QueryStackReturnInfo()
+                       throws NetworkException, MsoException {
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               Holder<NetworkRollback> rollback = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("HEAT");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.heatWithUpdate = Mockito.mock(MsoHeatUtilsWithUpdate.class);
+               MsoException exception = Mockito.mock(MsoException.class);
+               StackInfo stackInfo = Mockito.mock(StackInfo.class);
+               when(impl.heatWithUpdate.queryStack(any(), any(), any())).thenReturn(stackInfo);
+               try {
+                       impl.updateNetwork("cloudSiteId", "tenantId", "networkType", "modelCustomizationUuid", "networkId",
+                                       "networkName", "physicalNetworkName", null, null, null, subnetIdMap, rollback);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void queryNetworkImplTest_CloudSiteNotPresent() throws NetworkException {
+               Holder<Boolean> networkExists = new Holder<>();
+               Holder<String> networkId = new Holder<>();
+               Holder<String> neutronNetworkId = new Holder<>();
+               Holder<NetworkStatus> status = new Holder<>();
+               Holder<List<Integer>> vlans = new Holder<>();
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(null);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               try {
+                       impl.queryNetwork("cloudSiteId", "tenantId", "networkNameOrId", null, networkExists, networkId,
+                                       neutronNetworkId, status, vlans, subnetIdMap);
+               } catch (Exception e) {
+
+               }
+       }
+
+       @Test
+       public void queryNetworkImplTest_CloudSitePresent_NeutronMode_QueryNetworkThrowsException()
+                       throws NetworkException, MsoException {
+               Holder<Boolean> networkExists = new Holder<>();
+               Holder<String> networkId = new Holder<>();
+               Holder<String> neutronNetworkId = new Holder<>();
+               Holder<NetworkStatus> status = new Holder<>();
+               Holder<List<Integer>> vlans = new Holder<>();
+               Holder<Map<String, String>> subnetIdMap = new Holder<>();
+               MsoNetworkAdapterImpl impl = Mockito.spy(MsoNetworkAdapterImpl.class);
+               impl.cloudConfigFactory = Mockito.mock(CloudConfigFactory.class);
+               CloudConfig cloudConfig = Mockito.mock(CloudConfig.class);
+               when(impl.cloudConfigFactory.getCloudConfig()).thenReturn(cloudConfig);
+               CloudSite cloudSite = new CloudSite();
+               Optional<CloudSite> cloudSiteOpt = Optional.ofNullable(cloudSite);
+               when(cloudConfig.getCloudSite(any())).thenReturn(cloudSiteOpt);
+               impl.msoPropertiesFactory = Mockito.mock(MsoPropertiesFactory.class);
+               CatalogDatabase catalogDB = Mockito.mock(CatalogDatabase.class);
+               NetworkResource networkResource = Mockito.mock(NetworkResource.class);
+               when(networkResource.getOrchestrationMode()).thenReturn("NEUTRON");
+               when(networkResource.getNeutronNetworkType()).thenReturn("BASIC");
+               doReturn(catalogDB).when(impl).getCatalogDB();
+               doReturn(networkResource).when(impl).networkCheck(any(), anyLong(), anyString(), anyString(), anyString(),
+                               anyString(), anyList(), anyList(), any());
+               impl.heat = Mockito.mock(MsoHeatUtils.class);
+               MsoException exception = Mockito.mock(MsoException.class);
+               when(impl.heat.queryStack(any(), any(), any())).thenThrow(exception);
+               try {
+                       impl.queryNetwork("cloudSiteId", "tenantId", "networkNameOrId", null, networkExists, networkId,
+                                       neutronNetworkId, status, vlans, subnetIdMap);
+               } catch (Exception e) {
+
+               }
+       }
+}