VID - Feature flag for PNF in modern UI
[vid.git] / vid-webpack-master / src / app / drawingBoard / service-planning / objectsToTree / models / relatedVnfMember / relatedVnfMember.info.model.spec.ts
1 import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing";
2 import {getTestBed, TestBed} from "@angular/core/testing";
3 import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
4 import {DynamicInputsService} from "../../dynamicInputs.service";
5 import {VNFModel} from "../../../../../shared/models/vnfModel";
6 import {SharedTreeService} from "../../shared.tree.service";
7 import {NgRedux} from "@angular-redux/store";
8 import {AppState} from "../../../../../shared/store/reducers";
9 import {DefaultDataGeneratorService} from "../../../../../shared/services/defaultDataServiceGenerator/default.data.generator.service";
10 import {DialogService} from "ng2-bootstrap-modal";
11 import {VfModulePopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popup.service";
12 import {VnfPopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vnf/vnf.popup.service";
13 import {DuplicateService} from "../../../duplicate/duplicate.service";
14 import {IframeService} from "../../../../../shared/utils/iframe.service";
15 import {RelatedVnfMemberInfoModel} from "./relatedVnfMember.info.model";
16 import {VfModuleUpgradePopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModuleUpgrade/vfModule.upgrade.popuop.service";
17 import {PnfPopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/pnf/pnf.popup.service";
18
19
20 class MockAppStore<T> {
21   getState() {
22     return {}
23   }
24 }
25
26
27 describe('Related Vnf member Model Info', () => {
28   let injector;
29   let httpMock: HttpTestingController;
30   let  _dynamicInputsService : DynamicInputsService;
31   let  _sharedTreeService : SharedTreeService;
32
33   let _store : NgRedux<AppState>;
34   let relatedVnfMemeber: RelatedVnfMemberInfoModel;
35   beforeEach(() => {
36     TestBed.configureTestingModule({
37       imports: [HttpClientTestingModule, NgReduxTestingModule],
38       providers: [
39         MockNgRedux,
40         DynamicInputsService,
41         DialogService,
42         VfModulePopupService,
43         VfModuleUpgradePopupService,
44         VnfPopupService,
45         PnfPopupService,
46         DefaultDataGeneratorService,
47         SharedTreeService,
48         DuplicateService,
49         IframeService]
50     }).compileComponents();
51
52     injector = getTestBed();
53     _sharedTreeService = injector.get(SharedTreeService);
54     _store = injector.get(NgRedux);
55
56     relatedVnfMemeber = new RelatedVnfMemberInfoModel(
57       _sharedTreeService,
58       _dynamicInputsService,
59       _store);
60   });
61
62   test('relatedVnfMemeber should be defined', () => {
63     expect(relatedVnfMemeber).toBeDefined();
64   });
65
66   test('RelatedVnfMemeber should defined extra details', () => {
67     expect(relatedVnfMemeber.name).toEqual('vnfs');
68     expect(relatedVnfMemeber.type).toEqual('relatedVnfMember');
69   });
70
71   test('isEcompGeneratedNaming should return true if isEcompGeneratedNaming is "true" ', () => {
72     let isEcompGeneratedNaming: boolean = relatedVnfMemeber.isEcompGeneratedNaming(<any>{
73       properties: {
74         ecomp_generated_naming: 'true'
75       }
76     });
77     expect(isEcompGeneratedNaming).toBeTruthy();
78   });
79
80   test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is "false"', () => {
81     let isEcompGeneratedNaming: boolean = relatedVnfMemeber.isEcompGeneratedNaming({
82       properties: {
83         ecomp_generated_naming: 'false'
84       }
85     });
86     expect(isEcompGeneratedNaming).toBeFalsy();
87   });
88
89   test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is not defined', () => {
90     let isEcompGeneratedNaming: boolean = relatedVnfMemeber.isEcompGeneratedNaming({
91       properties: {
92       }
93     });
94     expect(isEcompGeneratedNaming).toBeFalsy();
95   });
96
97
98   test('getTooltip should return "VF"', () => {
99     let tooltip: string = relatedVnfMemeber.getTooltip();
100     expect(tooltip).toEqual('VF');
101   });
102
103   test('getType should return "VF"', () => {
104     let tooltip: string = relatedVnfMemeber.getType();
105     expect(tooltip).toEqual('VF');
106   });
107
108   test('getNextLevelObject should be null', () => {
109     let nextLevel = relatedVnfMemeber.getNextLevelObject();
110     expect(nextLevel).toBeNull();
111   });
112
113   test('getModel should return VNF model', () => {
114     expect(relatedVnfMemeber.getModel({})).toBeInstanceOf(VNFModel);
115   });
116
117
118   test('getMenuAction: delete', ()=>{
119     let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vGeraldine 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vGeraldine 0:004","vnfStoreKey":"VF_vGeraldine 0:004","typeName":"VNF"};
120     let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
121     let result = relatedVnfMemeber.getMenuAction(<any>node, serviceModelId);
122     spyOn(result['delete'], 'method');
123     expect(result['delete']).toBeDefined();
124     expect(result['delete'].visible).toBeTruthy();
125     expect(result['delete'].enable).toBeTruthy();
126     result['delete']['method'](node, serviceModelId);
127     expect(result['delete']['method']).toHaveBeenCalledWith(node, serviceModelId);
128   });
129
130
131   test('getMenuAction: undoDelete', ()=>{
132     let node = {"modelId":"d6557200-ecf2-4641-8094-5393ae3aae60","missingData":true,"action":"None","inMaint":true,"name":"jlfBwIks283yKlCD8","modelName":"VF_vGeraldine 0","type":"VF","isEcompGeneratedNaming":true,"networkStoreKey":"VF_vGeraldine 0:004","vnfStoreKey":"VF_vGeraldine 0:004","typeName":"VNF"};
133     let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
134     let result = relatedVnfMemeber.getMenuAction(<any>node, serviceModelId);
135     spyOn(result['undoDelete'], 'method');
136     expect(result['undoDelete']).toBeDefined();
137     expect(result['undoDelete'].visible).toBeDefined();
138     expect(result['undoDelete'].enable).toBeDefined();
139     result['undoDelete']['method'](node, serviceModelId);
140     expect(result['undoDelete']['method']).toHaveBeenCalledWith(node, serviceModelId);
141   });
142
143 });