Merge changes from topics "VID-45", "VID-44"
[vid.git] / vid-automation / src / main / java / vid / automation / test / test / NewServiceInstanceTest.java
index 9b1956d..5a9dc2c 100644 (file)
@@ -1,19 +1,78 @@
 package vid.automation.test.test;
 
-//import com.automation.common.report_portal_integration.annotations.Step;
+import static java.util.Collections.emptyList;
+import static junit.framework.TestCase.assertNull;
+import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
+import static org.hamcrest.CoreMatchers.startsWith;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MTN6_TO_ATT_AIC;
+import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.PRESET_SOME_LEGACY_REGION_TO_ATT_AIC;
+import static org.onap.simulator.presetGenerator.presets.mso.PresetMSOOrchestrationRequestGet.COMPLETE;
+import static org.onap.simulator.presetGenerator.presets.mso.PresetMSOOrchestrationRequestGet.DEFAULT_SERVICE_INSTANCE_ID;
+import static org.testng.Assert.assertEquals;
+import static org.testng.AssertJUnit.assertTrue;
+import static vid.automation.test.infra.Features.FLAG_1902_VNF_GROUPING;
+import static vid.automation.test.infra.Features.FLAG_1908_COLLECTION_RESOURCE_NEW_INSTANTIATION_UI;
+import static vid.automation.test.infra.Features.FLAG_1908_INFRASTRUCTURE_VPN;
+import static vid.automation.test.infra.Features.FLAG_1908_MACRO_NOT_TRANSPORT_NEW_VIEW_EDIT;
+import static vid.automation.test.infra.Features.FLAG_1908_TRANSPORT_SERVICE_NEW_INSTANTIATION_UI;
+import static vid.automation.test.infra.Features.FLAG_2002_ANY_ALACARTE_BESIDES_EXCLUDED_NEW_INSTANTIATION_UI;
+import static vid.automation.test.infra.Features.FLAG_5G_IN_NEW_INSTANTIATION_UI;
+import static vid.automation.test.infra.Features.FLAG_ENABLE_WEBPACK_MODERN_UI;
+import static vid.automation.test.infra.ModelInfo.aLaCarteNetworkProvider5G;
+import static vid.automation.test.infra.ModelInfo.aLaCarteVnfGroupingService;
+import static vid.automation.test.infra.ModelInfo.collectionResourceService;
+import static vid.automation.test.infra.ModelInfo.infrastructureVpnService;
+import static vid.automation.test.infra.ModelInfo.macroSriovNoDynamicFieldsEcompNamingFalseFullModelDetails;
+import static vid.automation.test.infra.ModelInfo.macroSriovNoDynamicFieldsEcompNamingFalseFullModelDetailsVnfEcompNamingFalse;
+import static vid.automation.test.infra.ModelInfo.macroSriovWithDynamicFieldsEcompNamingFalsePartialModelDetailsVnfEcompNamingFalse;
+import static vid.automation.test.infra.ModelInfo.macroSriovWithDynamicFieldsEcompNamingTruePartialModelDetails;
+import static vid.automation.test.infra.ModelInfo.pasqualeVmxVpeBvService488Annotations;
+import static vid.automation.test.infra.ModelInfo.transportWithPnfsService;
+import static vid.automation.test.services.SimulatorApi.RegistrationStrategy.APPEND;
+import static vid.automation.test.services.SimulatorApi.registerExpectationFromPreset;
+import static vid.automation.test.services.SimulatorApi.registerExpectationFromPresets;
+import static vid.automation.test.test.ALaCarteflowTest.AIC;
+
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.stream.Collectors;
 import org.apache.commons.lang3.mutable.MutableInt;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.hamcrest.Matchers;
-import org.onap.simulator.presetGenerator.presets.aai.*;
-import org.onap.simulator.presetGenerator.presets.mso.*;
-import org.onap.simulator.presetGenerator.presets.mso.PresetMSOOrchestrationRequestsGet5GServiceInstanceAndNetwork.ResponseDetails;
-import org.onap.simulator.presetGenerator.presets.mso.PresetMSOServiceInstanceGen2WithNames.Keys;
+import org.jetbrains.annotations.NotNull;
 import org.onap.sdc.ci.tests.datatypes.UserCredentials;
 import org.onap.sdc.ci.tests.utilities.GeneralUIUtils;
+import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetL3NetworksByCloudRegionSpecificState;
+import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetTenants;
+import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetVpnsByType;
+import org.onap.simulator.presetGenerator.presets.aai.PresetAAIPostNamedQueryForViewEdit;
+import org.onap.simulator.presetGenerator.presets.mso.PresetMSOBaseCreateInstancePost;
+import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateNetworkALaCarte5G;
+import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateServiceInstanceAlacarte;
+import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateServiceInstanceGen2WithNamesAlacarteGroupingService;
+import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateServiceInstanceGen2WithNamesEcompNamingFalse;
+import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateVfModuleALaCarteE2E;
+import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateVnfALaCarteE2E;
+import org.onap.simulator.presetGenerator.presets.mso.PresetMSOOrchestrationRequestGet;
+import org.onap.simulator.presetGenerator.presets.mso.PresetMSOOrchestrationRequestsGet5GServiceInstanceAndNetwork;
+import org.onap.simulator.presetGenerator.presets.mso.PresetMSOOrchestrationRequestsGet5GServiceInstanceAndNetwork.ResponseDetails;
+import org.onap.simulator.presetGenerator.presets.mso.PresetMSOServiceInstanceGen2WithNames.Keys;
+import org.onap.simulator.presetGenerator.presets.mso.PresetMsoCreateMacroCommonPre1806;
 import org.openqa.selenium.By;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.remote.RemoteWebElement;
@@ -24,38 +83,29 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 import vid.automation.test.Constants;
 import vid.automation.test.Constants.BrowseASDC.NewServicePopup;
-import vid.automation.test.infra.*;
+import vid.automation.test.infra.Click;
+import vid.automation.test.infra.FeatureTogglingTest;
+import vid.automation.test.infra.Features;
+import vid.automation.test.infra.Get;
+import vid.automation.test.infra.Input;
+import vid.automation.test.infra.ModelInfo;
+import vid.automation.test.infra.ModelInfoWithCustomization;
+import vid.automation.test.infra.SelectOption;
+import vid.automation.test.infra.Wait;
 import vid.automation.test.model.Service;
 import vid.automation.test.model.User;
-import vid.automation.test.sections.*;
+import vid.automation.test.sections.BrowseASDCPage;
+import vid.automation.test.sections.DrawingBoardPage;
+import vid.automation.test.sections.InstantiationStatusPage;
+import vid.automation.test.sections.SideMenu;
+import vid.automation.test.sections.VidBasePage;
 import vid.automation.test.services.AsyncJobsService;
 import vid.automation.test.services.ServicesService;
 import vid.automation.test.services.SimulatorApi;
 import vid.automation.test.test.NewServiceInstanceTest.ServiceData.IS_GENERATED_NAMING;
 import vid.automation.test.utils.ReadFile;
 
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.stream.Collectors;
-
-import static junit.framework.TestCase.assertNull;
-import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
-import static org.hamcrest.CoreMatchers.startsWith;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.PRESET_SOME_LEGACY_REGION_TO_ATT_AIC;
-import static org.onap.simulator.presetGenerator.presets.mso.PresetMSOOrchestrationRequestGet.COMPLETE;
-import static org.onap.simulator.presetGenerator.presets.mso.PresetMSOOrchestrationRequestGet.DEFAULT_SERVICE_INSTANCE_ID;
-import static org.testng.Assert.assertEquals;
-import static org.testng.AssertJUnit.assertTrue;
-import static vid.automation.test.infra.Features.*;
-import static vid.automation.test.infra.ModelInfo.*;
-import static vid.automation.test.services.SimulatorApi.RegistrationStrategy.APPEND;
-import static vid.automation.test.services.SimulatorApi.registerExpectationFromPreset;
-import static vid.automation.test.services.SimulatorApi.registerExpectationFromPresets;
-import static vid.automation.test.test.ALaCarteflowTest.AIC;
-
+@FeatureTogglingTest(FLAG_ENABLE_WEBPACK_MODERN_UI)
 public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
 
     public static final String COMPLETED = "COMPLETED";
@@ -183,12 +233,13 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
                 new ArrayList<>(),
                 IS_GENERATED_NAMING.FALSE, true, true, true,
                 "2017-488_PASQUALE-vPE 0",
-                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", 0, 1, new ArrayList<>(), "25284168-24bb-4698-8cb4-3f509146eca5");
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
+            0, 1, new ArrayList<>(), "25284168-24bb-4698-8cb4-3f509146eca5", false);
 
         prepareServicePreset(macroSriovNoDynamicFieldsEcompNamingFalseFullModelDetails, false);
 
         final String serviceInstanceName = createMacroService(serviceData, true);
-        createVnf(serviceData, true, true, serviceInstanceName);
+        createVnf(serviceData, true, serviceInstanceName);
 
         createVfModule(serviceData, serviceInstanceName, false, false);
 
@@ -231,7 +282,7 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
                 IS_GENERATED_NAMING.FALSE, false, true, false,
                 "2017-488_PASQUALE-vPE 0",
                 "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", 0, 1, ImmutableList.of("Bandwidth", "Bandwidth units"),
-                "25284168-24bb-4698-8cb4-3f509146eca5");
+                "25284168-24bb-4698-8cb4-3f509146eca5", false);
 
         // this is the instance-name that createMacroService is going to use
         String serviceInstanceName = randomAlphabetic + "instancename";
@@ -243,7 +294,7 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
         });
 
         doReduxStep(reduxStates, randomAlphabetic, startInStep, reduxForStep, i, mode, () ->
-                createVnf(serviceData, false, true, serviceInstanceName)
+                createVnf(serviceData, false, serviceInstanceName)
         );
 
         final String vnfInstanceName2 = randomAlphabetic + "instanceName";
@@ -251,7 +302,7 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
 
         doReduxStep(reduxStates, randomAlphabetic, startInStep, reduxForStep, i, mode, () ->
                 createVnf(new VnfData(vnfName2 + " 0", "afacccf6-397d-45d6-b5ae-94c39734b168", vnfInstanceName2, false),
-                        false, Features.FLAG_DEFAULT_VNF.isActive(), serviceInstanceName)
+                        false, serviceInstanceName)
         );
 
         doReduxStep(reduxStates, randomAlphabetic, startInStep, reduxForStep, i, mode, () ->
@@ -283,7 +334,7 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
                     .build();
             registerExpectationFromPresets(ImmutableList.of(
                     // although "some legacy region" is provided for vnf, Service's region "hvf6" overrides it
-                    PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MTN6_TO_ATT_AIC,
+                    PRESET_MTN6_TO_ATT_AIC,
                     new PresetMSOCreateServiceInstanceGen2WithNamesEcompNamingFalse(vars, 0, request1),
                     new PresetMSOCreateServiceInstanceGen2WithNamesEcompNamingFalse(vars, 1, request2)
             ), SimulatorApi.RegistrationStrategy.APPEND);
@@ -299,14 +350,14 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
     @Test
     @FeatureTogglingTest(FLAG_1908_INFRASTRUCTURE_VPN)
     public void createNewServiceInstance_infraStructureVpn() {
-        String requestId = UUID.randomUUID().toString();
-        String instanceId = UUID.randomUUID().toString();
+        String requestId = uuid();
+        String instanceId = uuid();
 
         prepareServicePreset(infrastructureVpnService, false);
 
         SimulatorApi.registerExpectationFromPresets(ImmutableList.of(
-            PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MTN6_TO_ATT_AIC,
-                new PresetAAIGetL3NetworksByCloudRegionSpecificState("irma-aic", "hvf6", "AIN Web Tool-15-D-testalexandria"),
+            PRESET_MTN6_TO_ATT_AIC,
+                new PresetAAIGetL3NetworksByCloudRegionSpecificState("irma-aic", "hvf6", "bae71557c5bb4d5aac6743a4e5f1d054"),
             new PresetAAIGetVpnsByType()
         ), APPEND);
 
@@ -315,7 +366,7 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
                 new ArrayList<>(),
                 IS_GENERATED_NAMING.TRUE_BUT_GIVE_NAME_EITHER_WAY, true, true, false,
                 null,
-                null, 0, 1, new ArrayList<>(), null);
+                null, 0, 1, new ArrayList<>(), null, false);
         final String serviceInstanceName = createMacroService(serviceData, false);
 
         SimulatorApi.registerExpectationFromPresets(ImmutableList.of(
@@ -342,11 +393,11 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
     @FeatureTogglingTest(FLAG_1908_COLLECTION_RESOURCE_NEW_INSTANTIATION_UI)
     public void createNewServiceInstance_collectionResource() {
         prepareServicePreset(collectionResourceService, false);
-        String requestId = UUID.randomUUID().toString();
-        String instanceId = UUID.randomUUID().toString();
+        String requestId = uuid();
+        String instanceId = uuid();
 
         SimulatorApi.registerExpectationFromPresets(ImmutableList.of(
-                PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MTN6_TO_ATT_AIC,
+                PRESET_MTN6_TO_ATT_AIC,
                 PresetMsoCreateMacroCommonPre1806.ofCollectionResource(requestId, instanceId),
                 new PresetMSOOrchestrationRequestGet(COMPLETE, requestId)
         ), APPEND);
@@ -356,7 +407,7 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
                 new ArrayList<>(),
                 IS_GENERATED_NAMING.TRUE, true, true, false,
                 null,
-                null, 0, 1, new ArrayList<>(), null);
+                null, 0, 1, new ArrayList<>(), null, false);
         createMacroService(serviceData, false, randomAlphabetic(5), true, 1);
 
         drawingBoardPage.deploy();
@@ -367,8 +418,8 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
     @FeatureTogglingTest(FLAG_1908_TRANSPORT_SERVICE_NEW_INSTANTIATION_UI)
     public void createNewServiceInstance_transportService() {
         prepareServicePreset(transportWithPnfsService, false);
-        String requestId = UUID.randomUUID().toString();
-        String instanceId = UUID.randomUUID().toString();
+        String requestId = uuid();
+        String instanceId = uuid();
 
         SimulatorApi.registerExpectationFromPresets(ImmutableList.of(
                 PresetMsoCreateMacroCommonPre1806.ofTransportService(requestId, instanceId),
@@ -380,7 +431,7 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
                 new ArrayList<>(),
                 IS_GENERATED_NAMING.TRUE, true, true, false,
                 null,
-                null, 0, 1, new ArrayList<>(), null);
+                null, 0, 1, new ArrayList<>(), null, false);
         createMacroService(serviceData, false, randomAlphabetic(5), false, 1);
 
         drawingBoardPage.deploy();
@@ -397,7 +448,7 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
                 aLaCarteVnfGroupingService.modelVersionId,
                 ImmutableList.of(),
                 IS_GENERATED_NAMING.FALSE, false, true, false,
-                null, null, 0, 1, ImmutableList.of(), null);
+                null, null, 0, 1, ImmutableList.of(), null, false);
         prepareServicePreset(aLaCarteVnfGroupingService, false);
 
         createALaCarteService(serviceData, randomAlphabetic);
@@ -483,11 +534,7 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
 
     //@Step("edit vf module and just set name")
     private void editVfModuleAndJustSetName(String vfModuleName, String vfModuleUUID) {
-        if (Features.FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD.isActive()) {
-            hoverAndClickEditButton(vfModuleUUID + "-" + vfModuleName);
-        } else {
-            drawingBoardPage.clickAddButtonByNodeName(vfModuleName);
-        }
+        hoverAndClickEditButton(vfModuleUUID + "-" + vfModuleName);
         Input.text("VF instance name ZERO", "instanceName");
         Click.byTestId(VNF_SET_BUTTON_TEST_ID);
     }
@@ -499,12 +546,12 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
                 new ArrayList<>(),
                 IS_GENERATED_NAMING.FALSE, true, false, true,
                 "2017-488_PASQUALE-vPE 0",
-                vfModule0Name, 1, 1, new ArrayList<>(), vfModule0UUID);
+                vfModule0Name, 1, 1, new ArrayList<>(), vfModule0UUID, false);
 
         prepareServicePreset(macroSriovNoDynamicFieldsEcompNamingFalseFullModelDetails, false);
 
         final String serviceInstanceName = createMacroService(serviceData, true);
-        createVnf(serviceData, true, true, serviceInstanceName);
+        createVnf(serviceData, true, serviceInstanceName);
         createVfModule(serviceData, serviceInstanceName, true, false);
 
     }
@@ -516,12 +563,12 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
                 new ArrayList<>(),
                 IS_GENERATED_NAMING.FALSE, false, false, false,
                 "2017-488_PASQUALE-vPE 0",
-                vfModule0Name, 1, 1, new ArrayList<>(), vfModule0UUID);
+                vfModule0Name, 1, 1, new ArrayList<>(), vfModule0UUID, false);
 
         prepareServicePreset(macroSriovNoDynamicFieldsEcompNamingFalseFullModelDetailsVnfEcompNamingFalse, false);
 
         final String serviceInstanceName = createMacroService(serviceData, true);
-        createVnf(serviceData, true, true, serviceInstanceName);
+        createVnf(serviceData, true, serviceInstanceName);
         createVfModule(serviceData, serviceInstanceName, true, false);
 
     }
@@ -533,35 +580,149 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
                 new ArrayList<>(),
                 IS_GENERATED_NAMING.FALSE, false, true, false,
                 "2017-488_PASQUALE-vPE 0",
-                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", 0, 1, new ArrayList<>(), "25284168-24bb-4698-8cb4-3f509146eca5");
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", 0, 1, new ArrayList<>(), "25284168-24bb-4698-8cb4-3f509146eca5", false);
 
         prepareServicePreset(macroSriovNoDynamicFieldsEcompNamingFalseFullModelDetailsVnfEcompNamingFalse, false);
 
         final String serviceInstanceName = createMacroService(serviceData, true);
-        createVnf(serviceData, true, true, serviceInstanceName);
+        createVnf(serviceData, true, serviceInstanceName);
         clickRemoveVfModule(vfModule0UUID, vfModule0Name);
         createVfModule(serviceData, serviceInstanceName, false, true);
 
     }
 
+    @Test
+    @FeatureTogglingTest(FLAG_2002_ANY_ALACARTE_BESIDES_EXCLUDED_NEW_INSTANTIATION_UI)
+    public void createNewServiceInstance_aLaCarte_WithVnf() {
+        final ModelInfo serviceModelInfo = ModelInfo.aLaCarteServiceCreationNewUI;
+        String serviceInstanceName = "ALaCarteWithVnf"+randomAlphabetic(5);
+        String vnfInstanceName= "VnfForALaCarte"+randomAlphabetic(5);
+        VnfData vnfData = new VnfData("vOCG_1804_VF 0", "aca3f7b1-15f9-45a5-b182-b8b5aca84a76", vnfInstanceName, true);
+        VfData vfmData = new VfData("vocg_1804_vf0..Vocg1804Vf..base_ocg..module-0", false, 1, 1, emptyList(), "815db6e5-bdfd-4cb6-9575-82c36df8747a", null);
+        ServiceData serviceData = new ServiceData(IS_GENERATED_NAMING.TRUE, vnfData, vfmData, true);
+
+        resetGetServicesCache();
+
+        prepareServicePreset(serviceModelInfo, true);
+
+        String requestorID = getUserCredentials().getUserId();
+
+        String serviceRequestId = uuid();
+        String serviceInstanceId = uuid();
+        String vnfRequestId = uuid();
+        String vnfInstanceId = uuid();
+        String vfm0RequestId = uuid();
+        String vfm0InstanceId = uuid();
+        String vg1RequestId = uuid();
+        String vg1InstanceId = uuid();
+        String vfm1RequestId = uuid();
+        String vfm1InstanceId = uuid();
+        String vfm12RequestId = uuid();
+        String vfm12InstanceId = uuid();
+
+        ModelInfoWithCustomization vfm0 = new ModelInfoWithCustomization(
+            "815db6e5-bdfd-4cb6-9575-82c36df8747a",
+            "e9c795c8-6b98-4db3-bd90-a84b8ca5181b",
+            "Vocg1804Vf..base_ocg..module-0",
+            "4",
+            "vfModule",
+            "Vocg1804Vf..base_ocg..module-0",
+            "a7b333d7-7633-4197-b40d-80fcfcadee94");
+
+        ModelInfoWithCustomization vg1 = new ModelInfoWithCustomization(
+            "9c219e70-1177-494b-8977-1395c9f9168c",
+            "0ad14d60-98b6-4575-a9b8-458a796c3f98",
+            "Vocg1804Vf..ocgmgr..module-1",
+            "4",
+            "volumeGroup",
+            "Vocg1804Vf..ocgmgr..module-1",
+            "f332f3ce-434d-4084-a1e7-5261c16d4940"
+        );
+
+        ModelInfoWithCustomization vfm1 = new ModelInfoWithCustomization(
+            "9c219e70-1177-494b-8977-1395c9f9168c",
+            "0ad14d60-98b6-4575-a9b8-458a796c3f98",
+            "Vocg1804Vf..ocgmgr..module-1",
+            "4",
+            "vfModule",
+            "Vocg1804Vf..ocgmgr..module-1",
+            "f332f3ce-434d-4084-a1e7-5261c16d4940"
+        );
+
+        ModelInfoWithCustomization vfm12 = new ModelInfoWithCustomization(
+            "b601eef4-62fd-4201-a788-ae30e06a1aec",
+            "e3cb8b85-7a3c-4897-b20b-70640c26d671",
+            "Vocg1804Vf..ocgapp_001..module-12",
+            "2",
+            "vfModule",
+            "Vocg1804Vf..ocgapp_001..module-12",
+            "fcc82961-865e-4d38-9c7a-207c511405b6"
+        );
+
+        final String vgName = "vg_for_module1";
+        
+        String vgRelatedInstance = ",{\"relatedInstance\": {"
+            + "                    \"modelInfo\": {"
+            + "                        \"modelType\": \"volumeGroup\""
+            + "                    },"
+            + "                    \"instanceId\": \""+vg1InstanceId+"\","
+            + "                    \"instanceName\": \""+vgName+"\""
+            + "                }}";
+
+
+        registerExpectationFromPresets(
+            ImmutableList.of(
+                new PresetMSOCreateServiceInstanceAlacarte(
+                    ImmutableMap.of(Keys.SERVICE_NAME, serviceInstanceName),
+                    serviceRequestId, serviceInstanceId,
+                    requestorID, serviceModelInfo),
+                PRESET_SOME_LEGACY_REGION_TO_ATT_AIC,
+                new PresetMSOOrchestrationRequestGet(COMPLETE, serviceRequestId),
+                new PresetMSOCreateVnfALaCarteE2E(vnfRequestId, serviceInstanceId, vnfInstanceId, "ONAP", requestorID, serviceModelInfo),
+                new PresetMSOOrchestrationRequestGet(COMPLETE, vnfRequestId),
+                PRESET_MTN6_TO_ATT_AIC,
+                new PresetMSOCreateVfModuleALaCarteE2E(vfm0RequestId, vfm0InstanceId, serviceInstanceId, vnfInstanceId, requestorID, serviceModelInfo, null, vfm0, null),
+                new PresetMSOOrchestrationRequestGet(COMPLETE, vfm0RequestId),
+                new PresetMSOCreateVfModuleALaCarteE2E(vg1RequestId, vg1InstanceId, serviceInstanceId, vnfInstanceId, requestorID, serviceModelInfo, vgName, vg1, null),
+                new PresetMSOOrchestrationRequestGet(COMPLETE, vg1RequestId),
+                new PresetMSOCreateVfModuleALaCarteE2E(vfm1RequestId, vfm1InstanceId, serviceInstanceId, vnfInstanceId, requestorID, serviceModelInfo, null, vfm1, vgRelatedInstance),
+                new PresetMSOOrchestrationRequestGet(COMPLETE, vfm1RequestId),
+                new PresetMSOCreateVfModuleALaCarteE2E(vfm12RequestId, vfm12InstanceId, serviceInstanceId, vnfInstanceId, requestorID, serviceModelInfo, null, vfm12, null),
+                new PresetMSOOrchestrationRequestGet(COMPLETE, vfm12RequestId)
+            ),
+            APPEND
+        );
+
+        loadServicePopup(serviceModelInfo.modelVersionId);
+        fillALaCarteServicePopup(serviceInstanceName);
+
+        createVnf(vnfData, false, serviceInstanceName);
+        createVfModule(serviceData, serviceInstanceName, true, false);
+        serviceData.vfData =  new VfData("vocg_1804_vf0..Vocg1804Vf..ocgmgr..module-1", true, 0, 1, emptyList(), "9c219e70-1177-494b-8977-1395c9f9168c", vgName);
+        createVfModule(serviceData, serviceInstanceName, false, false);
+        serviceData.vfData =  new VfData("vocg_1804_vf0..Vocg1804Vf..ocgapp_001..module-12", true, 0, 1, emptyList(), "b601eef4-62fd-4201-a788-ae30e06a1aec", null);
+        createVfModule(serviceData, serviceInstanceName, false, false);
+        drawingBoardPage.deploy();
+        drawingBoardPage.verifyServiceCompletedOnTime(serviceInstanceName, "service "+serviceInstanceName);
+    }
 
     @Test
     @FeatureTogglingTest(FLAG_5G_IN_NEW_INSTANTIATION_UI)
-    public void createNewServiceInstance_aLaCarte_validPopupDataAndUI() {
+    public void createNewServiceInstance_aLaCarte_withNetwork_validPopupDataAndUI() {
         String serviceInstanceName = "NcService"+randomAlphabetic(5);
         String networkInstanceName= "NcNetowrk"+randomAlphabetic(5);
         String defactoNetworkInstanceName = "ExtVL"+networkInstanceName;
-        BrowseASDCPage browseASDCPage = new BrowseASDCPage();
+
         prepareServicePreset(aLaCarteNetworkProvider5G, true);
-        String serviceRequestId = UUID.randomUUID().toString();
-        String networkRequestId = UUID.randomUUID().toString();
+        String serviceRequestId = uuid();
+        String networkRequestId = uuid();
         String requestorID = getUserCredentials().getUserId();
         registerExpectationFromPresets(
                 ImmutableList.of(
-                    new PresetMSOCreateServiceInstanceAlacarte5GServiceWithNetwork(
+                    new PresetMSOCreateServiceInstanceAlacarte(
                         ImmutableMap.of(Keys.SERVICE_NAME, serviceInstanceName),
-                        serviceRequestId,
-                            requestorID),
+                        serviceRequestId, DEFAULT_SERVICE_INSTANCE_ID,
+                            requestorID, aLaCarteNetworkProvider5G),
                     new PresetMSOOrchestrationRequestGet(COMPLETE, serviceRequestId),
                     PRESET_SOME_LEGACY_REGION_TO_ATT_AIC,
                     new PresetMSOCreateNetworkALaCarte5G(networkRequestId, DEFAULT_SERVICE_INSTANCE_ID, defactoNetworkInstanceName, requestorID),
@@ -574,6 +735,16 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
             APPEND
         );
         loadServicePopup(aLaCarteNetworkProvider5G.modelVersionId);
+        fillALaCarteServicePopup(serviceInstanceName);
+        VnfData networkData = new VnfData("SR-IOV Provider-1", "840ffc47-e4cf-46de-8e23-525fd8c6fdc3", defactoNetworkInstanceName, false);
+        createNetwork(networkData, false, false, serviceInstanceName);
+
+        drawingBoardPage.deploy();
+        drawingBoardPage.verifyServiceCompletedOnTime(serviceInstanceName, "service "+serviceInstanceName);
+    }
+
+    private void fillALaCarteServicePopup(String serviceInstanceName) {
+        BrowseASDCPage browseASDCPage = new BrowseASDCPage();
         WebElement instanceNameInput = Get.byId("instanceName");
         instanceNameInput.sendKeys(serviceInstanceName);
         VidBasePage.selectSubscriberById("e433710f-9217-458d-a79d-1c7aff376d89");
@@ -585,11 +756,6 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
         Click.byTestId("form-set");
         VidBasePage.goOutFromIframe();
         browseASDCPage.goToIframe();
-        VnfData networkData = new VnfData("SR-IOV Provider-1", "840ffc47-e4cf-46de-8e23-525fd8c6fdc3", defactoNetworkInstanceName, false);
-        createNetwork(networkData, false, false, serviceInstanceName);
-
-        drawingBoardPage.deploy();
-        drawingBoardPage.verifyServiceCompletedOnTime(serviceInstanceName, "service "+serviceInstanceName);
     }
 
     @Test
@@ -601,12 +767,12 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
                 serviceDynamicFields,
                 IS_GENERATED_NAMING.TRUE, true, true, false,
                 "2017-488_PASQUALE-vPE 0",
-                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", 0, 1, new ArrayList<>(), "25284168-24bb-4698-8cb4-3f509146eca5");
+                "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1", 0, 1, new ArrayList<>(), "25284168-24bb-4698-8cb4-3f509146eca5", false);
 
         prepareServicePreset(macroSriovWithDynamicFieldsEcompNamingTruePartialModelDetails, false);
 
         final String serviceInstanceName = createMacroService(serviceData, true);
-        createVnf(serviceData, true, true, serviceInstanceName);
+        createVnf(serviceData, true, serviceInstanceName);
         clickRemoveVfModule(vfModule0UUID, vfModule0Name);
         createVfModule(serviceData, serviceInstanceName, false, false);
 
@@ -662,10 +828,9 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
     //@Step("verify open view edit")
     private void verifyOpenViewEdit(String serviceInstanceName) {
         boolean[] openEnabled = {true, false, false};
-        String[] statuses = {COMPLETED, IN_PROGRESS, PENDING};
         ImmutableList.of(0, 1, 2).forEach(i -> {
             String actualInstanceName = getActualInstanceName(serviceInstanceName, i);
-            if (Features.FLAG_1902_NEW_VIEW_EDIT.isActive()) {
+            if (Features.FLAG_1902_NEW_VIEW_EDIT.isActive() || FLAG_1908_MACRO_NOT_TRANSPORT_NEW_VIEW_EDIT.isActive()) {
                 InstantiationStatusPage.verifyOpenNewViewEdit(actualInstanceName, openEnabled[i], "EDIT");
             }
             else {
@@ -974,23 +1139,23 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
     }
 
     //@Step("create vnf")
-    private void createVnf(ServiceData serviceData, boolean tryCancelsAndReentries, boolean addedByDefault, String serviceInstanceName) {
-        createVnf(serviceData.vnfData, tryCancelsAndReentries, addedByDefault, serviceInstanceName);
+    private void createVnf(ServiceData serviceData, boolean tryCancelsAndReentries, String serviceInstanceName) {
+        createVnf(serviceData.vnfData, tryCancelsAndReentries, serviceInstanceName);
     }
 
     private void createNetwork(VnfData vnfData, boolean tryCancelsAndReentries, boolean addedByDefault, String serviceInstanceName) {
         createVnf(vnfData, tryCancelsAndReentries, addedByDefault, serviceInstanceName, true);
     }
 
-    private void createVnf(VnfData vnfData, boolean tryCancelsAndReentries, boolean addedByDefault, String serviceInstanceName) {
-        createVnf(vnfData, tryCancelsAndReentries, addedByDefault, serviceInstanceName, false);
+    private void createVnf(VnfData vnfData, boolean tryCancelsAndReentries, String serviceInstanceName) {
+        createVnf(vnfData, tryCancelsAndReentries, true, serviceInstanceName, false);
     }
 
     private void createVnf(VnfData vnfData, boolean tryCancelsAndReentries, boolean addedByDefault, String serviceInstanceName, boolean isNetwork) {
         BrowseASDCPage browseASDCPage = new BrowseASDCPage();
 
         String nodeToEdit = extractNodeToEdit(vnfData);
-        if (addedByDefault && Features.FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD.isActive()) {
+        if (addedByDefault) {
             hoverAndClickEditButton(nodeToEdit);
         } else {
             drawingBoardPage.clickAddButtonByNodeName(vnfData.vnfName);
@@ -1020,7 +1185,11 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
 
         assertSetButtonDisabled(VNF_SET_BUTTON_TEST_ID);
 
-        browseASDCPage.selectPlatform("platform");
+        if(isNetwork){
+            browseASDCPage.selectPlatform("platform");
+        }else {
+            SelectOption.selectOptionsFromMultiselectById("multi-selectPlatform", ImmutableList.of("platform"));
+        }
 
         browseASDCPage.selectLineOfBusiness("ONAP");
         assertSetButtonEnabled(VNF_SET_BUTTON_TEST_ID);
@@ -1049,7 +1218,9 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
             assertThat(Get.selectedOptionText(Constants.ViewEdit.LCP_REGION_SELECT_TESTS_ID), startsWith("AAIAIC25"));
             Assert.assertEquals(Get.selectedOptionText(Constants.ViewEdit.TENANT_SELECT_TESTS_ID), "USP-SIP-IC-24335-T-01");
             Assert.assertEquals(Get.selectedOptionText(Constants.ViewEdit.LINE_OF_BUSINESS_SELECT_TESTS_ID), "ONAP");
-            Assert.assertEquals(Get.selectedOptionText(Constants.OwningEntity.PLATFORM_SELECT_TEST_ID), "platform");
+
+            Assert.assertTrue(Get.isOptionSelectedInMultiSelect(Constants.OwningEntity.PLATFORM_MULTI_SELECT_TEST_ID, "platform"));
+
             Click.byTestId(Constants.CANCEL_BUTTON_TEST_ID);
             GeneralUIUtils.ultimateWait();
         } else {
@@ -1125,20 +1296,36 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
             Input.text("VF instance name", "instanceName");
         }
 
-        if (serviceData.vfData.vgEnabled) {
-            browseASDCPage.setInputText("volumeGroupName", "_abc");
-            Assert.assertEquals(isElementByIdRequired("volumeGroupName-label"), false,  "volume Group name input should be always optional");
-        } else {
-            Assert.assertNull(Get.byTestId("volumeGroupName"), "volumeGroupName input should be invisible when vgEnabled == false");
+        if (!serviceData.vfData.vgEnabled || (!serviceData.isALaCarte && serviceData.vnfData.isGeneratedNaming)) {
+            Assert.assertNull(Get.byTestId("volumeGroupName"), "volumeGroupName input should be invisible "
+                + "when vgEnabled is false or when vgEnabled is true and EcompGenName is true "
+                + "(was: serviceData.vfData.vgEnabled=>" + serviceData.vfData.vgEnabled + ", serviceData.isGeneratedNaming=>" + IS_GENERATED_NAMING.FALSE + ")");
+        }
+        else {
+            Assert.assertFalse(isElementByIdRequired("volumeGroupName-label"),
+                "volume Group name input should be always optional");
+            if (serviceData.vfData.vgName!=null) {
+                browseASDCPage.setInputText("volumeGroupName", serviceData.vfData.vgName);
+            }
         }
+
+
         Wait.waitByTestId("model-item-value-subscriberName", 10);
         Assert.assertEquals(Get.byTestId("model-item-value-subscriberName").getText(), "SILVIA ROBBINS", "Subscriber name should be shown in vf module");
         Assert.assertEquals(Get.byTestId("model-item-value-min").getText(), Integer.toString(serviceData.vfData.vfMin), "Min should be shown");
         Assert.assertEquals(Get.byTestId("model-item-value-max").getText(), Integer.toString(serviceData.vfData.vfMax), "Max should be shown");
-        if (!serviceData.vnfData.isGeneratedNaming) {
+        if (serviceData.isGeneratedNaming!=IS_GENERATED_NAMING.TRUE) {
             Wait.byText(serviceInstanceName);
             Assert.assertEquals(Get.byTestId("model-item-value-serviceName").getText(), serviceInstanceName, "Service name should be shown in vf module");
         }
+
+        if (serviceData.isALaCarte) {
+            String lcpRegion = "hvf6";
+            Wait.waitByClassAndText("lcpRegionOption", lcpRegion, 30);
+            viewEditPage.selectLcpRegion(lcpRegion, AIC);
+            browseASDCPage.selectTenant("bae71557c5bb4d5aac6743a4e5f1d054");
+        }
+
         validateDynamicFields(serviceData.vfData.dynamicFields);
 
         uploadSupplementaryFile("invalid-file.json", false, browseASDCPage, setButtonTestId);
@@ -1150,13 +1337,11 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
     }
 
     private void clickEditVfModule(ServiceData serviceData) {
-        if (Features.FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD.isActive()) {
-            hoverAndClickEditButton(serviceData.vfData.uuid + "-" + serviceData.vfData.vfName);
-        }
+        hoverAndClickEditButton(serviceData.vfData.uuid + "-" + serviceData.vfData.vfName);
     }
 
     private void clickAddVfModule(ServiceData serviceData, boolean addedByDefault) {
-        if (Features.FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD.isActive() && addedByDefault) {
+        if (addedByDefault) {
             return;
         }
         System.out.println("VFModule should be added 'manually'");
@@ -1171,10 +1356,8 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
     }
 
     private void clickRemoveVfModule(String vfModuleId, String vfModuleName) {
-        if (Features.FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD.isActive()) {
-            System.out.println("will remove " + vfModule0Name);
-            hoverAndClickDeleteButton(vfModuleId + "-" + vfModuleName);
-        }
+        System.out.println("will remove " + vfModule0Name);
+        hoverAndClickDeleteButton(vfModuleId + "-" + vfModuleName);
     }
 
     private void assertPauseOnPausePointsVisibility(boolean visibility) {
@@ -1187,6 +1370,12 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
         }
     }
 
+    @NotNull
+    private String uuid() {
+        return UUID.randomUUID().toString();
+    }
+
+
     private void assertNotificationAreaVisibilityBehaviourAndSetBulkSize(int size) {
         WebElement webElement = Get.byId("notification-area");
         Assert.assertNull(webElement, "notification area should be invisible if only 1 qty.");
@@ -1214,21 +1403,33 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
     }
 
     static class ServiceData {
-        ServiceData(String modelUuid, List<String> dynamicFields, IS_GENERATED_NAMING isServiceGeneratedNaming, boolean isVnfGeneratedNaming, boolean isVgEnabled, boolean multiStageDesign, String vnfName, String vfName, int vfMin, int vfMax, List<String> vfModuleDynamicFields, String vfVersionId) {
+
+        ServiceData(String modelUuid, List<String> dynamicFields, IS_GENERATED_NAMING isServiceGeneratedNaming,
+            boolean isVnfGeneratedNaming, boolean isVgEnabled, boolean multiStageDesign, String vnfName,
+            String vfName, int vfMin, int vfMax, List<String> vfModuleDynamicFields, String vfVersionId, boolean isALaCarte) {
             this.modelUuid = modelUuid;
             this.dynamicFields = dynamicFields;
             this.isGeneratedNaming = isServiceGeneratedNaming;
             this.multiStageDesign = multiStageDesign;
+            this.isALaCarte = isALaCarte;
             this.vnfData = new VnfData(vnfName, "69e09f68-8b63-4cc9-b9ff-860960b5db09", "VNF instance name", isVnfGeneratedNaming);
-            this.vfData = new VfData(vfName, isVgEnabled, vfMin, vfMax, vfModuleDynamicFields, vfVersionId);
+            this.vfData = new VfData(vfName, isVgEnabled, vfMin, vfMax, vfModuleDynamicFields, vfVersionId, "_abc");
         }
 
-        final String modelUuid;
-        final List<String> dynamicFields;
-        final IS_GENERATED_NAMING isGeneratedNaming;
-        final boolean multiStageDesign;
-        final VnfData vnfData;
-        final VfData vfData;
+        public ServiceData(IS_GENERATED_NAMING isGeneratedNaming, VnfData vnfData, VfData vfData, boolean isALaCarte) {
+            this.isGeneratedNaming = isGeneratedNaming;
+            this.vnfData = vnfData;
+            this.vfData = vfData;
+            this.isALaCarte = isALaCarte;
+        }
+
+        String modelUuid;
+        List<String> dynamicFields;
+        IS_GENERATED_NAMING isGeneratedNaming;
+        boolean multiStageDesign;
+        VnfData vnfData;
+        VfData vfData;
+        boolean isALaCarte;
 
         enum IS_GENERATED_NAMING { TRUE, FALSE, TRUE_BUT_GIVE_NAME_EITHER_WAY}
     }
@@ -1249,13 +1450,14 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
 
 
     private static class VfData {
-        VfData(String vfName, boolean vgEnabled, int vfMin, int vfMax, List<String> dynamicFields, String uuid) {
+        VfData(String vfName, boolean vgEnabled, int vfMin, int vfMax, List<String> dynamicFields, String uuid, String vgName) {
             this.vfName = vfName;
             this.vgEnabled = vgEnabled;
             this.vfMin = vfMin;
             this.vfMax = vfMax;
             this.dynamicFields = dynamicFields;
             this.uuid = uuid;
+            this.vgName = vgName;
         }
 
         final int vfMin;
@@ -1264,6 +1466,7 @@ public class NewServiceInstanceTest extends CreateInstanceDialogBaseTest {
         final String vfName;
         final boolean vgEnabled;
         final List<String> dynamicFields;
+        final String vgName;
     }