New Angular UI from 1806

Change-Id: I39c160db0e0a6ec2e587ccf007ee1b23c6a08666
Issue-ID: VID-208
Signed-off-by: Sonsino, Ofir (os0695) <os0695@intl.att.com>
diff --git a/vid-webpack-master/src/app/services/service-planning.service.spec.ts b/vid-webpack-master/src/app/services/service-planning.service.spec.ts
new file mode 100644
index 0000000..5d60e29
--- /dev/null
+++ b/vid-webpack-master/src/app/services/service-planning.service.spec.ts
@@ -0,0 +1,467 @@
+import {ServicePlanningService} from "./service-planning.service";
+import {ReflectiveInjector} from "@angular/core";
+import {NgRedux} from "@angular-redux/store";
+import {ServiceNodeTypes} from "../shared/models/ServiceNodeTypes";
+
+export class MockAppStore<T> {
+}
+
+describe('Service planning service', () => {
+  let injector;
+  let service: ServicePlanningService;
+
+  beforeEach(() => {
+
+    let injector = ReflectiveInjector.resolveAndCreate([
+      ServicePlanningService,
+      {provide: NgRedux, useClass: MockAppStore}
+    ]);
+
+    service = injector.get(ServicePlanningService);
+  });
+
+  describe('#updateDynamicInputsVnfDataFromModel', () => {
+    it('get vfModule instance params', (done: DoneFn) => {
+      //get vfModule instance params
+      let dynamicInputs = service.updateDynamicInputsVnfDataFromModel(ServiceNodeTypes.VFmodule, generateVFModule());
+      expect(dynamicInputs).toEqual([{
+        id: '2017488_adiodvpe0_vnf_config_template_version',
+        type: 'string',
+        name: '2017488_adiodvpe0_vnf_config_template_version',
+        value: '17.2',
+        isRequired: true,
+        description: 'VPE Software Version'
+      }, {
+        id: '2017488_adiodvpe0_AIC_CLLI',
+        type: 'string',
+        name: '2017488_adiodvpe0_AIC_CLLI',
+        value: 'ATLMY8GA',
+        isRequired: true,
+        description: 'AIC Site CLLI'
+      }]);
+
+      //get vfModule with no instance params should return empty array
+      dynamicInputs = service.updateDynamicInputsVnfDataFromModel(ServiceNodeTypes.VFmodule, generateVFModule2);
+      expect(dynamicInputs).toEqual([]);
+
+      //get vf instance params should be undefined
+      dynamicInputs = service.updateDynamicInputsVnfDataFromModel(ServiceNodeTypes.VF, generateVNF());
+      expect(dynamicInputs).toEqual([]);
+      done();
+    });
+  });
+
+  describe('#isUserProvidedNaming', () => {
+    it('get vfModule with generate ecompNaming should return userProvided false', (done: DoneFn) => {
+      //get vfModule with generate ecompNaming should return userProvided false
+      let isUserProvidedNaming = service.isUserProvidedNaming(ServiceNodeTypes.VFmodule, generateVFModule(), generateVNF());
+      expect(isUserProvidedNaming).toBeFalsy();
+
+      //get vfModule without generate ecompNaming should return userProvided true
+      isUserProvidedNaming = service.isUserProvidedNaming(ServiceNodeTypes.VFmodule, generateVFModule(), generateVNF_ecompNamingFalse());
+      expect(isUserProvidedNaming).toBeTruthy();
+
+      //get vnf with generate ecompNaming should return userProvided false
+      isUserProvidedNaming = service.isUserProvidedNaming(ServiceNodeTypes.VF, generateVNF(), null);
+      expect(isUserProvidedNaming).toBeFalsy();
+
+      //get vnf without generate ecompNaming should return userProvided true
+      isUserProvidedNaming = service.isUserProvidedNaming(ServiceNodeTypes.VF, generateVNF_ecompNamingFalse(), null);
+      expect(isUserProvidedNaming).toBeTruthy();
+      done();
+    });
+  });
+
+  function generateVFModule() {
+    return {
+      'uuid': '25284168-24bb-4698-8cb4-3f509146eca5',
+      'invariantUuid': '7253ff5c-97f0-4b8b-937c-77aeb4d79aa1',
+      'customizationUuid': 'f7e7c365-60cf-49a9-9ebf-a1aa11b9d401',
+      'description': null,
+      'name': '2017488AdiodVpe..ADIOD_vRE_BV..module-1',
+      'version': '6',
+      'modelCustomizationName': '2017488AdiodVpe..ADIOD_vRE_BV..module-1',
+      'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0},
+      'commands': {},
+      'volumeGroupAllowed': true,
+      'inputs': {
+        '2017488_adiodvpe0_vnf_config_template_version': {
+          'type': 'string',
+          'description': 'VPE Software Version',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': '17.2'
+        },
+        '2017488_adiodvpe0_AIC_CLLI': {
+          'type': 'string',
+          'description': 'AIC Site CLLI',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': 'ATLMY8GA'
+        }
+      }
+    };
+  }
+
+  function generateVFModule2() {
+    return {
+      'uuid': '0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a',
+      'invariantUuid': 'eff8cc59-53a1-4101-aed7-8cf24ecf8339',
+      'customizationUuid': '3cd946bb-50e0-40d8-96d3-c9023520b557',
+      'description': null,
+      'name': '2017488AdiodVpe..ADIOD_vPFE_BV..module-2',
+      'version': '6',
+      'modelCustomizationName': '2017488AdiodVpe..ADIOD_vPFE_BV..module-2',
+      'properties': {'minCountInstances': 0, 'maxCountInstances': null, 'initialCount': 0},
+      'commands': {},
+      'volumeGroupAllowed': true,
+      'inputs': {}
+    };
+  }
+
+  function generateVNF() {
+    return {
+      'uuid': '0903e1c0-8e03-4936-b5c2-260653b96413',
+      'invariantUuid': '00beb8f9-6d39-452f-816d-c709b9cbb87d',
+      'description': 'Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM',
+      'name': '2017-388_ADIOD-vPE',
+      'version': '1.0',
+      'customizationUuid': '280dec31-f16d-488b-9668-4aae55d6648a',
+      'inputs': {
+        'vnf_config_template_version': {
+          'type': 'string',
+          'description': 'VPE Software Version',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': '17.2'
+        },
+        'bandwidth_units': {
+          'type': 'string',
+          'description': 'Units of bandwidth',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': 'Gbps'
+        },
+        'bandwidth': {
+          'type': 'string',
+          'description': 'Requested VPE bandwidth',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': '10'
+        },
+        'AIC_CLLI': {
+          'type': 'string',
+          'description': 'AIC Site CLLI',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': 'ATLMY8GA'
+        },
+        'ASN': {
+          'type': 'string',
+          'description': 'AV/PE',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': 'AV_vPE'
+        },
+        'vnf_instance_name': {
+          'type': 'string',
+          'description': 'The hostname assigned to the vpe.',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': 'mtnj309me6'
+        }
+      },
+      'commands': {
+        'vnf_config_template_version': {
+          'displayName': 'vnf_config_template_version',
+          'command': 'get_input',
+          'inputName': '2017488_adiodvpe0_vnf_config_template_version'
+        },
+        'bandwidth_units': {
+          'displayName': 'bandwidth_units',
+          'command': 'get_input',
+          'inputName': 'adiodvpe0_bandwidth_units'
+        },
+        'bandwidth': {'displayName': 'bandwidth', 'command': 'get_input', 'inputName': 'adiodvpe0_bandwidth'},
+        'AIC_CLLI': {'displayName': 'AIC_CLLI', 'command': 'get_input', 'inputName': '2017488_adiodvpe0_AIC_CLLI'},
+        'ASN': {'displayName': 'ASN', 'command': 'get_input', 'inputName': '2017488_adiodvpe0_ASN'},
+        'vnf_instance_name': {
+          'displayName': 'vnf_instance_name',
+          'command': 'get_input',
+          'inputName': '2017488_adiodvpe0_vnf_instance_name'
+        }
+      },
+      'properties': {
+        'vmxvre_retype': 'RE-VMX',
+        'vnf_config_template_version': 'get_input:2017488_adiodvpe0_vnf_config_template_version',
+        'sriov44_net_id': '48d399b3-11ee-48a8-94d2-f0ea94d6be8d',
+        'int_ctl_net_id': '2f323477-6936-4d01-ac53-d849430281d9',
+        'vmxvpfe_sriov41_0_port_mac': '00:11:22:EF:AC:DF',
+        'int_ctl_net_name': 'VMX-INTXI',
+        'vmx_int_ctl_prefix': '128.0.0.0',
+        'sriov43_net_id': 'da349ca1-6de9-4548-be88-2d88e99bfef5',
+        'sriov42_net_id': '760669ba-013d-4d9b-b0e7-4151fe2e6279',
+        'sriov41_net_id': '25ad52d5-c165-40f8-b3b0-ddfc2373280a',
+        'nf_type': 'vPE',
+        'vmxvpfe_int_ctl_ip_1': '128.0.0.16',
+        'is_AVPN_service': 'false',
+        'vmx_RSG_name': 'vREXI-affinity',
+        'vmx_int_ctl_forwarding': 'l2',
+        'vmxvre_oam_ip_0': '10.40.123.5',
+        'vmxvpfe_sriov44_0_port_mac': '00:11:22:EF:AC:DF',
+        'vmxvpfe_sriov41_0_port_vlanstrip': 'false',
+        'vmxvpfe_sriov42_0_port_vlanfilter': '4001',
+        'vmxvpfe_sriov44_0_port_unknownunicastallow': 'true',
+        'vmxvre_image_name_0': 'VRE-ENGINE_17.2-S2.1.qcow2',
+        'vmxvre_instance': '0',
+        'vmxvpfe_sriov43_0_port_mac': '00:11:22:EF:AC:DF',
+        'vmxvre_flavor_name': 'ns.c1r16d32.v5',
+        'vmxvpfe_volume_size_0': '40.0',
+        'vmxvpfe_sriov43_0_port_vlanfilter': '4001',
+        'nf_naming': '{ecomp_generated_naming=true}',
+        'nf_naming_code': 'Navneet',
+        'vmxvre_name_0': 'vREXI',
+        'vmxvpfe_sriov42_0_port_vlanstrip': 'false',
+        'vmxvpfe_volume_name_0': 'vPFEXI_FBVolume',
+        'vmx_RSG_id': 'bd89a33c-13c3-4a04-8fde-1a57eb123141',
+        'vmxvpfe_image_name_0': 'VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2',
+        'vmxvpfe_sriov43_0_port_unknownunicastallow': 'true',
+        'vmxvpfe_sriov44_0_port_unknownmulticastallow': 'true',
+        'vmxvre_console': 'vidconsole',
+        'vmxvpfe_sriov44_0_port_vlanfilter': '4001',
+        'vmxvpfe_sriov42_0_port_mac': '00:11:22:EF:AC:DF',
+        'vmxvpfe_volume_id_0': '47cede15-da2f-4397-a101-aa683220aff3',
+        'vmxvpfe_sriov42_0_port_unknownmulticastallow': 'true',
+        'vmxvpfe_sriov44_0_port_vlanstrip': 'false',
+        'vf_module_id': '123',
+        'nf_function': 'JAI',
+        'vmxvpfe_sriov43_0_port_unknownmulticastallow': 'true',
+        'vmxvre_int_ctl_ip_0': '128.0.0.1',
+        'AIC_CLLI': 'get_input:2017488_adiodvpe0_AIC_CLLI',
+        'vnf_name': 'mtnj309me6vre',
+        'vmxvpfe_sriov41_0_port_unknownunicastallow': 'true',
+        'vmxvre_volume_type_1': 'HITACHI',
+        'vmxvpfe_sriov44_0_port_broadcastallow': 'true',
+        'vmxvre_volume_type_0': 'HITACHI',
+        'vmxvpfe_volume_type_0': 'HITACHI',
+        'vmxvpfe_sriov43_0_port_broadcastallow': 'true',
+        'bandwidth_units': 'get_input:adiodvpe0_bandwidth_units',
+        'vnf_id': '123',
+        'vmxvre_oam_prefix': '24',
+        'availability_zone_0': 'mtpocfo-kvm-az01',
+        'ASN': 'get_input:2017488_adiodvpe0_ASN',
+        'vmxvre_chassis_i2cid': '161',
+        'vmxvpfe_name_0': 'vPFEXI',
+        'bandwidth': 'get_input:adiodvpe0_bandwidth',
+        'availability_zone_max_count': '1',
+        'vmxvre_volume_size_0': '45.0',
+        'vmxvre_volume_size_1': '50.0',
+        'vmxvpfe_sriov42_0_port_broadcastallow': 'true',
+        'vmxvre_oam_gateway': '10.40.123.1',
+        'vmxvre_volume_name_1': 'vREXI_FAVolume',
+        'vmxvre_ore_present': '0',
+        'vmxvre_volume_name_0': 'vREXI_FBVolume',
+        'vmxvre_type': '0',
+        'vnf_instance_name': 'get_input:2017488_adiodvpe0_vnf_instance_name',
+        'vmxvpfe_sriov41_0_port_unknownmulticastallow': 'true',
+        'oam_net_id': 'b95eeb1d-d55d-4827-abb4-8ebb94941429',
+        'vmx_int_ctl_len': '24',
+        'vmxvpfe_sriov43_0_port_vlanstrip': 'false',
+        'vmxvpfe_sriov41_0_port_broadcastallow': 'true',
+        'vmxvre_volume_id_1': '6e86797e-03cd-4fdc-ba72-2957119c746d',
+        'vmxvpfe_sriov41_0_port_vlanfilter': '4001',
+        'nf_role': 'Testing',
+        'vmxvre_volume_id_0': 'f4eacb79-f687-4e9d-b760-21847c8bb15a',
+        'vmxvpfe_sriov42_0_port_unknownunicastallow': 'true',
+        'vmxvpfe_flavor_name': 'ns.c20r16d25.v5'
+      },
+      'type': 'VF',
+      'modelCustomizationName': '2017-388_ADIOD-vPE 1',
+      'vfModules': {},
+      'volumeGroups': {}
+    };
+  }
+
+  function generateVNF_ecompNamingFalse() {
+    return {
+      'uuid': '0903e1c0-8e03-4936-b5c2-260653b96413',
+      'invariantUuid': '00beb8f9-6d39-452f-816d-c709b9cbb87d',
+      'description': 'Name ADIOD vPE Description The provider edge function for the ADIOD service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM',
+      'name': '2017-388_ADIOD-vPE',
+      'version': '1.0',
+      'customizationUuid': '280dec31-f16d-488b-9668-4aae55d6648a',
+      'inputs': {
+        'vnf_config_template_version': {
+          'type': 'string',
+          'description': 'VPE Software Version',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': '17.2'
+        },
+        'bandwidth_units': {
+          'type': 'string',
+          'description': 'Units of bandwidth',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': 'Gbps'
+        },
+        'bandwidth': {
+          'type': 'string',
+          'description': 'Requested VPE bandwidth',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': '10'
+        },
+        'AIC_CLLI': {
+          'type': 'string',
+          'description': 'AIC Site CLLI',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': 'ATLMY8GA'
+        },
+        'ASN': {
+          'type': 'string',
+          'description': 'AV/PE',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': 'AV_vPE'
+        },
+        'vnf_instance_name': {
+          'type': 'string',
+          'description': 'The hostname assigned to the vpe.',
+          'entry_schema': null,
+          'constraints': [],
+          'required': true,
+          'default': 'mtnj309me6'
+        }
+      },
+      'commands': {
+        'vnf_config_template_version': {
+          'displayName': 'vnf_config_template_version',
+          'command': 'get_input',
+          'inputName': '2017488_adiodvpe0_vnf_config_template_version'
+        },
+        'bandwidth_units': {
+          'displayName': 'bandwidth_units',
+          'command': 'get_input',
+          'inputName': 'adiodvpe0_bandwidth_units'
+        },
+        'bandwidth': {'displayName': 'bandwidth', 'command': 'get_input', 'inputName': 'adiodvpe0_bandwidth'},
+        'AIC_CLLI': {'displayName': 'AIC_CLLI', 'command': 'get_input', 'inputName': '2017488_adiodvpe0_AIC_CLLI'},
+        'ASN': {'displayName': 'ASN', 'command': 'get_input', 'inputName': '2017488_adiodvpe0_ASN'},
+        'vnf_instance_name': {
+          'displayName': 'vnf_instance_name',
+          'command': 'get_input',
+          'inputName': '2017488_adiodvpe0_vnf_instance_name'
+        }
+      },
+      'properties': {
+        'ecomp_generated_naming': "false",
+        'vmxvre_retype': 'RE-VMX',
+        'vnf_config_template_version': 'get_input:2017488_adiodvpe0_vnf_config_template_version',
+        'sriov44_net_id': '48d399b3-11ee-48a8-94d2-f0ea94d6be8d',
+        'int_ctl_net_id': '2f323477-6936-4d01-ac53-d849430281d9',
+        'vmxvpfe_sriov41_0_port_mac': '00:11:22:EF:AC:DF',
+        'int_ctl_net_name': 'VMX-INTXI',
+        'vmx_int_ctl_prefix': '128.0.0.0',
+        'sriov43_net_id': 'da349ca1-6de9-4548-be88-2d88e99bfef5',
+        'sriov42_net_id': '760669ba-013d-4d9b-b0e7-4151fe2e6279',
+        'sriov41_net_id': '25ad52d5-c165-40f8-b3b0-ddfc2373280a',
+        'nf_type': 'vPE',
+        'vmxvpfe_int_ctl_ip_1': '128.0.0.16',
+        'is_AVPN_service': 'false',
+        'vmx_RSG_name': 'vREXI-affinity',
+        'vmx_int_ctl_forwarding': 'l2',
+        'vmxvre_oam_ip_0': '10.40.123.5',
+        'vmxvpfe_sriov44_0_port_mac': '00:11:22:EF:AC:DF',
+        'vmxvpfe_sriov41_0_port_vlanstrip': 'false',
+        'vmxvpfe_sriov42_0_port_vlanfilter': '4001',
+        'vmxvpfe_sriov44_0_port_unknownunicastallow': 'true',
+        'vmxvre_image_name_0': 'VRE-ENGINE_17.2-S2.1.qcow2',
+        'vmxvre_instance': '0',
+        'vmxvpfe_sriov43_0_port_mac': '00:11:22:EF:AC:DF',
+        'vmxvre_flavor_name': 'ns.c1r16d32.v5',
+        'vmxvpfe_volume_size_0': '40.0',
+        'vmxvpfe_sriov43_0_port_vlanfilter': '4001',
+        'nf_naming': '{ecomp_generated_naming=false}',
+        'nf_naming_code': 'Navneet',
+        'vmxvre_name_0': 'vREXI',
+        'vmxvpfe_sriov42_0_port_vlanstrip': 'false',
+        'vmxvpfe_volume_name_0': 'vPFEXI_FBVolume',
+        'vmx_RSG_id': 'bd89a33c-13c3-4a04-8fde-1a57eb123141',
+        'vmxvpfe_image_name_0': 'VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2',
+        'vmxvpfe_sriov43_0_port_unknownunicastallow': 'true',
+        'vmxvpfe_sriov44_0_port_unknownmulticastallow': 'true',
+        'vmxvre_console': 'vidconsole',
+        'vmxvpfe_sriov44_0_port_vlanfilter': '4001',
+        'vmxvpfe_sriov42_0_port_mac': '00:11:22:EF:AC:DF',
+        'vmxvpfe_volume_id_0': '47cede15-da2f-4397-a101-aa683220aff3',
+        'vmxvpfe_sriov42_0_port_unknownmulticastallow': 'true',
+        'vmxvpfe_sriov44_0_port_vlanstrip': 'false',
+        'vf_module_id': '123',
+        'nf_function': 'JAI',
+        'vmxvpfe_sriov43_0_port_unknownmulticastallow': 'true',
+        'vmxvre_int_ctl_ip_0': '128.0.0.1',
+        'AIC_CLLI': 'get_input:2017488_adiodvpe0_AIC_CLLI',
+        'vnf_name': 'mtnj309me6vre',
+        'vmxvpfe_sriov41_0_port_unknownunicastallow': 'true',
+        'vmxvre_volume_type_1': 'HITACHI',
+        'vmxvpfe_sriov44_0_port_broadcastallow': 'true',
+        'vmxvre_volume_type_0': 'HITACHI',
+        'vmxvpfe_volume_type_0': 'HITACHI',
+        'vmxvpfe_sriov43_0_port_broadcastallow': 'true',
+        'bandwidth_units': 'get_input:adiodvpe0_bandwidth_units',
+        'vnf_id': '123',
+        'vmxvre_oam_prefix': '24',
+        'availability_zone_0': 'mtpocfo-kvm-az01',
+        'ASN': 'get_input:2017488_adiodvpe0_ASN',
+        'vmxvre_chassis_i2cid': '161',
+        'vmxvpfe_name_0': 'vPFEXI',
+        'bandwidth': 'get_input:adiodvpe0_bandwidth',
+        'availability_zone_max_count': '1',
+        'vmxvre_volume_size_0': '45.0',
+        'vmxvre_volume_size_1': '50.0',
+        'vmxvpfe_sriov42_0_port_broadcastallow': 'true',
+        'vmxvre_oam_gateway': '10.40.123.1',
+        'vmxvre_volume_name_1': 'vREXI_FAVolume',
+        'vmxvre_ore_present': '0',
+        'vmxvre_volume_name_0': 'vREXI_FBVolume',
+        'vmxvre_type': '0',
+        'vnf_instance_name': 'get_input:2017488_adiodvpe0_vnf_instance_name',
+        'vmxvpfe_sriov41_0_port_unknownmulticastallow': 'true',
+        'oam_net_id': 'b95eeb1d-d55d-4827-abb4-8ebb94941429',
+        'vmx_int_ctl_len': '24',
+        'vmxvpfe_sriov43_0_port_vlanstrip': 'false',
+        'vmxvpfe_sriov41_0_port_broadcastallow': 'true',
+        'vmxvre_volume_id_1': '6e86797e-03cd-4fdc-ba72-2957119c746d',
+        'vmxvpfe_sriov41_0_port_vlanfilter': '4001',
+        'nf_role': 'Testing',
+        'vmxvre_volume_id_0': 'f4eacb79-f687-4e9d-b760-21847c8bb15a',
+        'vmxvpfe_sriov42_0_port_unknownunicastallow': 'true',
+        'vmxvpfe_flavor_name': 'ns.c20r16d25.v5'
+      },
+      'type': 'VF',
+      'modelCustomizationName': '2017-388_ADIOD-vPE 1',
+      'vfModules': {},
+      'volumeGroups': {}
+    };
+  }
+
+});
+
+
+
+