8a09372e0f5132d59fac569eba1078334115459c
[vid.git] /
1 import {ComponentInfoService} from "../../../component-info/component-info.service";
2 import {AppState} from "../../../../../shared/store/reducers";
3 import {NgRedux} from "@angular-redux/store";
4 import {PnfModelInfo} from "./pnf.model.info";
5 import {getTestBed, TestBed} from "@angular/core/testing";
6 import {DynamicInputsService} from "../../dynamicInputs.service";
7 import {SharedTreeService} from "../../shared.tree.service";
8 import {DuplicateService} from "../../../duplicate/duplicate.service";
9 import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
10 import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
11 import {IframeService} from "../../../../../shared/utils/iframe.service";
12 import {HttpClientTestingModule} from "@angular/common/http/testing";
13 import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
14 import {HttpClient, HttpHandler} from "@angular/common/http";
15 import {CollectionResourceModel} from "../../../../../shared/models/collectionResourceModel";
16 import {ComponentInfoType} from "../../../component-info/component-info-model";
17
18
19 describe('PNF model info', () => {
20   let injector;
21   let _componentInfoService: ComponentInfoService;
22   let _store: NgRedux<AppState>;
23   let _sharedTreeService;
24   let pnfModel: PnfModelInfo;
25   beforeEach(done => (async () => {
26     TestBed.configureTestingModule({
27       imports: [HttpClientTestingModule, NgReduxTestingModule],
28       providers: [
29         MockNgRedux,
30         DynamicInputsService,
31         SharedTreeService,
32         DuplicateService,
33         AaiService,
34         HttpClient,
35         HttpHandler,
36         FeatureFlagsService,
37         ComponentInfoService,
38         IframeService]
39     });
40     await TestBed.compileComponents();
41     injector = getTestBed();
42     _store = injector.get(NgRedux);
43     _sharedTreeService = injector.get(SharedTreeService);
44     pnfModel = new PnfModelInfo(_sharedTreeService);
45     _componentInfoService = injector.get(ComponentInfoService);
46   })().then(done).catch(done.fail));
47
48   test('pnf model should be defined', () => {
49     expect(pnfModel).toBeDefined();
50   });
51
52   test('pnf model should defined extra details', () => {
53     expect(pnfModel.name).toEqual('pnfs');
54     expect(pnfModel.type).toEqual('PNF');
55     expect(pnfModel.typeName).toEqual('PNF');
56     expect(pnfModel.componentInfoType).toEqual(ComponentInfoType.PNF);
57   });
58
59   test('getTooltip should return "PNF"', () => {
60     let tooltip: string = pnfModel.getTooltip();
61     expect(tooltip).toEqual('PNF');
62   });
63
64   test('getType should return "pnf"', () => {
65     let tooltip: string = pnfModel.getType();
66     expect(tooltip).toEqual('pnf');
67   });
68
69   test('getNextLevelObject should be null', () => {
70     let nextLevel: any = pnfModel.getNextLevelObject();
71     expect(nextLevel).toBeNull();
72   });
73
74   test('isEcompGeneratedNaming should return false', () => {
75     let isEcompGeneratedNaming: boolean = pnfModel.isEcompGeneratedNaming(<any>{});
76     expect(isEcompGeneratedNaming).toBeFalsy();
77   });
78
79   test('getModel should return pnf model', () => {
80     let model: CollectionResourceModel = pnfModel.getModel('PNF1', <any>{
81       originalName : 'PNF1'
82     }, getServiceHierarchy());
83     expect(model.type).toEqual('PNF');
84   });
85
86   function getServiceHierarchy(){
87     return {
88       "service": {
89         "uuid": "12550cd7-7708-4f53-a09e-41d3d6327ebc",
90         "invariantUuid": "561faa57-7bbb-40ec-a81c-c0d4133e98d4",
91         "name": "AIM Transport SVC_ym161f",
92         "version": "1.0",
93         "toscaModelURL": null,
94         "category": "Network L1-3",
95         "serviceType": "TRANSPORT",
96         "serviceRole": "AIM",
97         "description": "AIM Transport service",
98         "serviceEcompNaming": "true",
99         "instantiationType": "Macro",
100         "inputs": {},
101         "vidNotions": {
102           "instantiationUI": "legacy",
103           "modelCategory": "other",
104           "viewEditUI": "legacy"
105         }
106       },
107       "vnfs": {},
108       "networks": {},
109       "collectionResources": {},
110       "configurations": {},
111       "fabricConfigurations": {},
112       "serviceProxies": {},
113       "vfModules": {},
114       "volumeGroups": {},
115       "pnfs": {
116         "PNF1": {
117           "uuid": "1c831fa9-28a6-4778-8c1d-80b9e769f2ed",
118           "invariantUuid": "74e13a12-dac9-4fba-b102-cd242d9e7f02",
119           "description": "AIM Transport service",
120           "name": "AIM PNF Model",
121           "version": "1.0",
122           "customizationUuid": "dce78da7-c842-47a1-aba2-2de1cd03ab7a",
123           "inputs": {},
124           "commands": {},
125           "properties": {
126             "nf_function": "SDNGW",
127             "nf_role": "pD2IPE",
128             "ecomp_generated_naming": "false",
129             "nf_type": "ROUTER"
130           },
131           "type": "PNF"
132         }
133       },
134       "vnfGroups": {}
135     }
136   }
137 })