blob: 5d60e29f76e78c46b227a60c1b4fe22929b87a72 [file] [log] [blame]
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': {}
};
}
});