NodeInfo::getModel expects the instance-model
[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
18
19 class MockAppStore<T> {
20   getState() {
21     return {}
22   }
23 }
24
25
26 describe('Related Vnf member Model Info', () => {
27   let injector;
28   let httpMock: HttpTestingController;
29   let  _dynamicInputsService : DynamicInputsService;
30   let  _sharedTreeService : SharedTreeService;
31
32   let _store : NgRedux<AppState>;
33   let relatedVnfMemeber: RelatedVnfMemberInfoModel;
34   beforeEach(() => {
35     TestBed.configureTestingModule({
36       imports: [HttpClientTestingModule, NgReduxTestingModule],
37       providers: [
38         MockNgRedux,
39         DynamicInputsService,
40         DialogService,
41         VfModulePopupService,
42         VfModuleUpgradePopupService,
43         VnfPopupService,
44         DefaultDataGeneratorService,
45         SharedTreeService,
46         DuplicateService,
47         IframeService]
48     }).compileComponents();
49
50     injector = getTestBed();
51     _sharedTreeService = injector.get(SharedTreeService);
52     _store = injector.get(NgRedux);
53
54     relatedVnfMemeber = new RelatedVnfMemberInfoModel(
55       _sharedTreeService,
56       _dynamicInputsService,
57       _store);
58   });
59
60   test('relatedVnfMemeber should be defined', () => {
61     expect(relatedVnfMemeber).toBeDefined();
62   });
63
64   test('RelatedVnfMemeber should defined extra details', () => {
65     expect(relatedVnfMemeber.name).toEqual('vnfs');
66     expect(relatedVnfMemeber.type).toEqual('relatedVnfMember');
67   });
68
69   test('isEcompGeneratedNaming should return true if isEcompGeneratedNaming is "true" ', () => {
70     let isEcompGeneratedNaming: boolean = relatedVnfMemeber.isEcompGeneratedNaming(<any>{
71       properties: {
72         ecomp_generated_naming: 'true'
73       }
74     });
75     expect(isEcompGeneratedNaming).toBeTruthy();
76   });
77
78   test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is "false"', () => {
79     let isEcompGeneratedNaming: boolean = relatedVnfMemeber.isEcompGeneratedNaming({
80       properties: {
81         ecomp_generated_naming: 'false'
82       }
83     });
84     expect(isEcompGeneratedNaming).toBeFalsy();
85   });
86
87   test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is not defined', () => {
88     let isEcompGeneratedNaming: boolean = relatedVnfMemeber.isEcompGeneratedNaming({
89       properties: {
90       }
91     });
92     expect(isEcompGeneratedNaming).toBeFalsy();
93   });
94
95
96   test('getTooltip should return "VF"', () => {
97     let tooltip: string = relatedVnfMemeber.getTooltip();
98     expect(tooltip).toEqual('VF');
99   });
100
101   test('getType should return "VF"', () => {
102     let tooltip: string = relatedVnfMemeber.getType();
103     expect(tooltip).toEqual('VF');
104   });
105
106   test('getNextLevelObject should be null', () => {
107     let nextLevel = relatedVnfMemeber.getNextLevelObject();
108     expect(nextLevel).toBeNull();
109   });
110
111   test('getModel should return VNF model', () => {
112     expect(relatedVnfMemeber.getModel({})).toBeInstanceOf(VNFModel);
113   });
114
115
116   test('getMenuAction: delete', ()=>{
117     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"};
118     let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
119     let result = relatedVnfMemeber.getMenuAction(<any>node, serviceModelId);
120     spyOn(result['delete'], 'method');
121     expect(result['delete']).toBeDefined();
122     expect(result['delete'].visible).toBeTruthy();
123     expect(result['delete'].enable).toBeTruthy();
124     result['delete']['method'](node, serviceModelId);
125     expect(result['delete']['method']).toHaveBeenCalledWith(node, serviceModelId);
126   });
127
128
129   test('getMenuAction: undoDelete', ()=>{
130     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"};
131     let serviceModelId = "d6557200-ecf2-4641-8094-5393ae3aae60";
132     let result = relatedVnfMemeber.getMenuAction(<any>node, serviceModelId);
133     spyOn(result['undoDelete'], 'method');
134     expect(result['undoDelete']).toBeDefined();
135     expect(result['undoDelete'].visible).toBeDefined();
136     expect(result['undoDelete'].enable).toBeDefined();
137     result['undoDelete']['method'](node, serviceModelId);
138     expect(result['undoDelete']['method']).toHaveBeenCalledWith(node, serviceModelId);
139   });
140
141 });