1 import {HttpClientTestingModule} from "@angular/common/http/testing";
2 import {getTestBed, TestBed} from "@angular/core/testing";
3 import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
4 import {VnfGroupingModelInfo} from "./vnfGrouping.model.info";
5 import {DynamicInputsService} from "../../dynamicInputs.service";
6 import {SharedTreeService} from "../../shared.tree.service";
7 import {VnfGroupPopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service";
8 import {DialogService} from "ng2-bootstrap-modal";
9 import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
10 import {VnfGroupModel} from "../../../../../shared/models/vnfGroupModel";
11 import {IframeService} from "../../../../../shared/utils/iframe.service";
12 import {RouterTestingModule} from "@angular/router/testing";
13 import {DrawingBoardModes} from "../../../drawing-board.modes";
14 import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
15 import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
16 import {ITableContent} from "../../../../../shared/components/searchMembersModal/members-table/element-table-row.model";
17 import {VNFModel} from "../../../../../shared/models/vnfModel";
19 describe('VnfGroupingModelInfo Model Info', () => {
21 let _dialogService : DialogService;
22 let _vnfGroupPopupService : VnfGroupPopupService;
23 let _dynamicInputsService : DynamicInputsService;
24 let _sharedTreeService : SharedTreeService;
25 let _iframeService : IframeService;
26 let vnfGroupModel: VnfGroupingModelInfo;
27 let _aaiService : AaiService;
28 beforeAll(done => (async () => {
29 TestBed.configureTestingModule({
30 imports: [HttpClientTestingModule, NgReduxTestingModule, RouterTestingModule],
41 await TestBed.compileComponents();
42 injector = getTestBed();
43 _sharedTreeService = injector.get(SharedTreeService);
44 _aaiService = injector.get(AaiService);
46 vnfGroupModel = new VnfGroupingModelInfo(_dynamicInputsService, _sharedTreeService, _dialogService, _vnfGroupPopupService, _iframeService, _aaiService, MockNgRedux.getInstance());
47 })().then(done).catch(done.fail));
50 test('VnfGroupingModelInfo should be defined', () => {
51 expect(vnfGroupModel).toBeDefined();
54 test('VnfGroupingModelInfo should defined extra details', () => {
55 expect(vnfGroupModel.name).toEqual('vnfGroups');
56 expect(vnfGroupModel.type).toEqual('VnfGroup');
59 test('isEcompGeneratedNaming should return true if vnf group has isEcompGeneratedNaming is "true" ', () => {
60 let isEcompGeneratedNaming : boolean = vnfGroupModel.isEcompGeneratedNaming({
62 ecomp_generated_naming: 'true'
65 expect(isEcompGeneratedNaming).toBeTruthy();
68 test('getTooltip should return "vnfGrouping"', () => {
69 let tooltip: string = vnfGroupModel.getTooltip();
70 expect(tooltip).toEqual('VnfGroup');
73 test('getType should return "vnfGrouping"', () => {
74 let tooltip: string = vnfGroupModel.getType();
75 expect(tooltip).toEqual('VnfGroup');
78 test('getNextLevelObject should return null', () => {
79 let nextLevel = vnfGroupModel.getNextLevelObject();
80 expect(nextLevel).not.toBeNull();
83 test('showNodeIcons should return true if not reachLimit of max', ()=>{
84 let serviceId : string = 'servicedId';
91 jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
93 drawingBoardStatus: "EDIT"
108 'existingVnfGroupCounterMap' : {
121 let result = vnfGroupModel.showNodeIcons(<any>node, serviceId);
122 expect(result).toEqual(new AvailableNodeIcons(true , false));
125 test('getNodeCount should return number of nodes', ()=>{
126 let serviceId : string = 'servicedId';
127 jest.spyOn(_sharedTreeService, 'getExistingInstancesWithDeleteMode').mockReturnValue(0);
128 jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
143 'existingVnfGroupCounterMap' : {
148 'originalName' : 'vnfGroupName'
159 name : 'vnfGroupName',
160 modelUniqueId: 'vnfGroupId',
163 let result = vnfGroupModel.getNodeCount(<any>node , serviceId);
164 expect(result).toEqual(1);
166 node.data.modelUniqueId = 'vnfGroupId_notExist';
167 result = vnfGroupModel.getNodeCount(<any>node , serviceId);
168 expect(result).toEqual(0);
170 result = vnfGroupModel.getNodeCount(<any>node , serviceId + '_notExist');
171 expect(result).toEqual(0);
174 test('getModel should return VnfGroup model', () => {
175 expect(vnfGroupModel.getModel({})).toBeInstanceOf(VnfGroupModel);
178 test('getMenuAction: showAuditInfoVnfGroup', ()=>{
180 jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
182 "drawingBoardStatus": DrawingBoardModes.RETRY
185 jest.spyOn(_sharedTreeService, 'isRetryMode').mockReturnValue(true);
188 "modelId": "6b528779-44a3-4472-bdff-9cd15ec93450",
193 let serviceModelId = "6b528779-44a3-4472-bdff-9cd15ec93450";
194 let result = vnfGroupModel.getMenuAction(<any>node, serviceModelId);
195 spyOn(result['showAuditInfo'], 'method');
196 expect(result['showAuditInfo']).toBeDefined();
197 expect(result['showAuditInfo'].visible(node)).toBeTruthy();
198 expect(result['showAuditInfo'].enable(node)).toBeTruthy();
199 result['showAuditInfo']['method'](node, serviceModelId);
200 expect(result['showAuditInfo']['method']).toHaveBeenCalledWith(node, serviceModelId);
204 test('generateRelatedMemberTableContent', ()=> {
205 const tableContents: ITableContent[] = vnfGroupModel.generateRelatedMemberTableContent();
206 expect(tableContents).toEqual([
210 id: ['instanceName'],
211 value: ['instanceName']
214 value: ["instanceId"],
221 id: ['modelInfo', 'modelVersion'],
222 value: ['modelInfo', 'modelVersion']
228 id: ['modelInfo', 'modelName'],
229 value: ['modelInfo', 'modelName']
236 value: ['provStatus']
240 id: 'serviceInstance',
242 id: ['serviceInstanceName'],
243 value: ['serviceInstanceName']
245 id: ['serviceInstanceId'],
246 value: ["serviceInstanceId"],
253 id: ['lcpCloudRegionId'],
254 value: ['lcpCloudRegionId']
261 value: ['tenantName']