diff options
Diffstat (limited to 'vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.spec.ts')
-rw-r--r-- | vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.spec.ts | 238 |
1 files changed, 238 insertions, 0 deletions
diff --git a/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.spec.ts b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.spec.ts new file mode 100644 index 000000000..07d4cee9b --- /dev/null +++ b/vid-webpack-master/src/app/drawingBoard/service-planning/objectsToTree/models/vrf/vrf.model.info.spec.ts @@ -0,0 +1,238 @@ +import {ComponentInfoService} from "../../../component-info/component-info.service"; +import {NgRedux} from "@angular-redux/store"; +import {AppState} from "../../../../../shared/store/reducers"; +import {getTestBed, TestBed} from "@angular/core/testing"; +import {HttpClientTestingModule} from "@angular/common/http/testing"; +import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing"; +import {DynamicInputsService} from "../../dynamicInputs.service"; +import {SharedTreeService} from "../../shared.tree.service"; +import {DuplicateService} from "../../../duplicate/duplicate.service"; +import {AaiService} from "../../../../../shared/services/aaiService/aai.service"; +import {HttpClient, HttpHandler} from "@angular/common/http"; +import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service"; +import {IframeService} from "../../../../../shared/utils/iframe.service"; +import {VrfModelInfo} from "./vrf.model.info"; +import {ComponentInfoType} from "../../../component-info/component-info-model"; +import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component"; +import {VrfModel} from "../../../../../shared/models/vrfModel"; +import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service"; +import each from 'jest-each'; +import {DialogService} from "ng2-bootstrap-modal"; +import {NetworkStepService} from "./vrfModal/networkStep/network.step.service"; +import {VpnStepService} from "./vrfModal/vpnStep/vpn.step.service"; + +describe('Vrf Model Info', () => { + + let injector; + let _componentInfoService : ComponentInfoService; + + let _store : NgRedux<AppState>; + let _sharedTreeService: SharedTreeService; + let _dialogService : DialogService; + let _iframeService : IframeService; + let _networkStepService : NetworkStepService; + let _vpnStepService : VpnStepService; + let vrfModel: VrfModelInfo; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule, NgReduxTestingModule], + providers: [ + MockNgRedux, + DynamicInputsService, + SharedTreeService, + DuplicateService, + AaiService, + HttpClient, + HttpHandler, + FeatureFlagsService, + ComponentInfoService, + DialogService, + IframeService, + IframeService, + NetworkStepService, + VpnStepService] + }).compileComponents(); + + injector = getTestBed(); + _sharedTreeService = injector.get(SharedTreeService); + _dialogService = injector.get(DialogService); + _iframeService = injector.get(IframeService); + _networkStepService = injector.get(NetworkStepService); + _vpnStepService = injector.get(VpnStepService); + _store = injector.get(NgRedux); + _componentInfoService = injector.get(ComponentInfoService); + + vrfModel = new VrfModelInfo(_store,_sharedTreeService, _dialogService, _iframeService, _networkStepService, _vpnStepService); + + }); + + + test('vrfModel should be defined', () => { + expect(vrfModel).toBeDefined(); + }); + + test('vrfModel should defined extra details', () => { + expect(vrfModel.name).toEqual('vrfs'); + expect(vrfModel.type).toEqual('VRF'); + expect(vrfModel.childNames).toEqual(['networks','vpns']); + expect(vrfModel.componentInfoType).toEqual(ComponentInfoType.VRF); + }); + + test('Info for vrf should be correct', () => { + const model = new VrfModel(); + const instance = null; + let actualNetworkInfo = vrfModel.getInfo(model,instance); + let expectedNetworkInfo = [ + ModelInformationItem.createInstance('Min instances', "1"), + ModelInformationItem.createInstance('Max instances', "1"), + ModelInformationItem.createInstance("Association", "L3-Network - VPN") + ]; + expect(actualNetworkInfo).toEqual(expectedNetworkInfo); + }); + + + + test('getModel should return VRF model with min and max are equal to 1 (hard coded)', () => { + let model: VrfModel = vrfModel.getModel('VRF Entry Configuration 0', <any>{ + originalName : 'VRF Entry Configuration 0' + }, getServiceHierarchy()); + expect(model.properties['type']).toEqual('VRF-ENTRY'); + expect(model.min).toEqual(1); + expect(model.max).toEqual(1); + }); + + const showNodeIconsDataProvider = [ + [false, new AvailableNodeIcons(true , false)], + [true, new AvailableNodeIcons(false , true)] + ]; + + each(showNodeIconsDataProvider).test('showNodeIcons should return value according reach limit of max',(existVRFs,expectedResult)=>{ + const serviceId : string = 'servicedId'; + const node = getNode(); + let state = getMockState(); + if(existVRFs) { + state.service.serviceInstance.servicedId.existingVRFCounterMap = { + 'modelCustomizationId': 1 + }; + } + jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue(state); + const result = vrfModel.showNodeIcons(<any>node, serviceId); + expect(result).toEqual(expectedResult); + }); + + function getNode() { + return { + data: { + id: 'vrfId', + name: 'VRF Entry Configuration 0', + modelCustomizationId: 'modelCustomizationId', + modelUniqueId: 'modelCustomizationId', + getModel: function () { + return {max: 1} + } + } + }; + } + + function getMockState(){ + return { + global:{ + "drawingBoardStatus": "CREATE" + }, + service : { + serviceHierarchy : { + 'servicedId' : { + } + }, + serviceInstance : { + 'servicedId' : { + 'existingVRFCounterMap' : {}, + 'vrfs' : { + 'vrfName' :{ + + } + } + } + } + } + }; + } + + function getServiceHierarchy() { + return { + "service": { + "uuid": "f028b2e2-7080-4b13-91b2-94944d4c42d8", + "invariantUuid": "dfc2c44c-2429-44ca-ae26-1e6dc1f207fb", + "name": "infraVPN", + "version": "1.0", + "toscaModelURL": null, + "category": "Network Service", + "serviceType": "BONDING", + "serviceRole": "INFRASTRUCTURE-VPN", + "description": "ddd", + "serviceEcompNaming": "true", + "instantiationType": "A-La-Carte", + "inputs": {}, + "vidNotions": { + "instantiationUI": "macroService", + "modelCategory": "other", + "viewEditUI": "legacy" + } + }, + "vnfs": {}, + "networks": {}, + "collectionResources": {}, + "configurations": {}, + "fabricConfigurations": {}, + "serviceProxies": { + "misvpn_service_proxy 0": { + "uuid": "35186eb0-e6b6-4fa5-86bb-1501b342a7b1", + "invariantUuid": "73f89e21-b96c-473f-8884-8b93bcbd2f76", + "description": "A Proxy for Service MISVPN_SERVICE", + "name": "MISVPN_SERVICE Service Proxy", + "version": "3.0", + "customizationUuid": "4c2fb7e0-a0a5-4b32-b6ed-6a974e55d923", + "inputs": {}, + "commands": {}, + "properties": { + "ecomp_generated_naming": "false" + }, + "type": "Service Proxy", + "sourceModelUuid": "d5cc7d15-c842-450e-95ae-2a69e66dd23b", + "sourceModelInvariant": "c126ec86-59fe-48c0-9532-e39a9b3e5272", + "sourceModelName": "MISVPN_SERVICE" + } + }, + "vfModules": {}, + "volumeGroups": {}, + "pnfs": {}, + "vnfGroups": {}, + "vrfs": { + "VRF Entry Configuration 0": { + "uuid": "9cac02be-2489-4374-888d-2863b4511a59", + "invariantUuid": "b67a289b-1688-496d-86e8-1583c828be0a", + "description": "VRF Entry configuration object", + "name": "VRF Entry Configuration", + "version": "30.0", + "customizationUuid": "dd024d73-9bd1-425d-9db5-476338d53433", + "inputs": {}, + "commands": {}, + "properties": { + "ecomp_generated_naming": "false", + "type": "VRF-ENTRY", + "role": "INFRASTRUCTURE-CLOUD-VPN" + }, + "type": "Configuration", + "modelCustomizationName": "VRF Entry Configuration 0", + "sourceNodes": [], + "collectorNodes": null, + "configurationByPolicy": false + } + } + } + } + + + +}) |