2 import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing";
3 import {getTestBed, TestBed} from "@angular/core/testing";
4 import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
5 import {VnfGroupingModelInfo} from "./vnfGrouping.model.info";
6 import {DynamicInputsService} from "../../dynamicInputs.service";
7 import {SharedTreeService} from "../../shared.tree.service";
8 import {VnfGroupPopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vnfGroup/vnfGroup.popup.service";
9 import {DialogService} from "ng2-bootstrap-modal";
10 import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
11 import {VnfGroupModel} from "../../../../../shared/models/vnfGroupModel";
12 import {IframeService} from "../../../../../shared/utils/iframe.service";
13 import {ActivatedRoute} from "@angular/router";
14 import {RouterTestingModule} from "@angular/router/testing";
15 import {DrawingBoardModes} from "../../../drawing-board.modes";
17 describe('VnfGroupingModelInfo Model Info', () => {
19 let _dialogService : DialogService;
20 let _vnfGroupPopupService : VnfGroupPopupService;
21 let _dynamicInputsService : DynamicInputsService;
22 let _sharedTreeService : SharedTreeService;
23 let _iframeService : IframeService;
24 let vnfGroupModel: VnfGroupingModelInfo;
25 beforeAll(done => (async () => {
26 TestBed.configureTestingModule({
27 imports: [HttpClientTestingModule, NgReduxTestingModule, RouterTestingModule],
36 await TestBed.compileComponents();
37 injector = getTestBed();
38 _sharedTreeService = injector.get(SharedTreeService);
40 vnfGroupModel = new VnfGroupingModelInfo(_dynamicInputsService, _sharedTreeService, _dialogService, _vnfGroupPopupService, _iframeService, MockNgRedux.getInstance());
41 })().then(done).catch(done.fail));
44 test('VnfGroupingModelInfo should be defined', () => {
45 expect(vnfGroupModel).toBeDefined();
48 test('VnfGroupingModelInfo should defined extra details', () => {
49 expect(vnfGroupModel.name).toEqual('vnfGroups');
50 expect(vnfGroupModel.type).toEqual('VnfGroup');
53 test('isEcompGeneratedNaming should return true if vnf group has isEcompGeneratedNaming is "true" ', () => {
54 let isEcompGeneratedNaming : boolean = vnfGroupModel.isEcompGeneratedNaming({
56 ecomp_generated_naming: 'true'
59 expect(isEcompGeneratedNaming).toBeTruthy();
63 test('getTooltip should return "vnfGrouping"', () => {
64 let tooltip: string = vnfGroupModel.getTooltip();
65 expect(tooltip).toEqual('VnfGroup');
68 test('getType should return "vnfGrouping"', () => {
69 let tooltip: string = vnfGroupModel.getType();
70 expect(tooltip).toEqual('VnfGroup');
73 test('getNextLevelObject should return null', () => {
74 let nextLevel = vnfGroupModel.getNextLevelObject();
75 expect(nextLevel).not.toBeNull();
79 test('showNodeIcons should return true if not reachLimit of max', ()=>{
80 let serviceId : string = 'servicedId';
87 jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
89 drawingBoardStatus: "EDIT"
104 'existingVnfGroupCounterMap' : {
117 let result = vnfGroupModel.showNodeIcons(<any>node, serviceId);
118 expect(result).toEqual(new AvailableNodeIcons(true , false));
121 test('getNodeCount should return number of nodes', ()=>{
122 let serviceId : string = 'servicedId';
123 jest.spyOn(_sharedTreeService, 'getExistingInstancesWithDeleteMode').mockReturnValue(0);
124 jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
139 'existingVnfGroupCounterMap' : {
144 'originalName' : 'vnfGroupName'
155 name : 'vnfGroupName',
156 modelUniqueId: 'vnfGroupId',
159 let result = vnfGroupModel.getNodeCount(<any>node , serviceId);
160 expect(result).toEqual(1);
162 node.data.modelUniqueId = 'vnfGroupId_notExist';
163 result = vnfGroupModel.getNodeCount(<any>node , serviceId);
164 expect(result).toEqual(0);
166 result = vnfGroupModel.getNodeCount(<any>node , serviceId + '_notExist');
167 expect(result).toEqual(0);
170 test('getModel should return VnfGroup model', () => {
171 let model: VnfGroupModel = vnfGroupModel.getModel('ResourceGroup0', <any>{
172 originalName : 'ResourceGroup0'
173 }, getServiceHierarchy());
174 expect(model.type).toEqual('VnfGroup');
177 test('getMenuAction: showAuditInfoVnfGroup', ()=>{
179 jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
181 "drawingBoardStatus": DrawingBoardModes.RETRY
184 jest.spyOn(_sharedTreeService, 'isRetryMode').mockReturnValue(true);
187 "modelId": "6b528779-44a3-4472-bdff-9cd15ec93450",
192 let serviceModelId = "6b528779-44a3-4472-bdff-9cd15ec93450";
193 let result = vnfGroupModel.getMenuAction(<any>node, serviceModelId);
194 spyOn(result['showAuditInfo'], 'method');
195 expect(result['showAuditInfo']).toBeDefined();
196 expect(result['showAuditInfo'].visible(node)).toBeTruthy();
197 expect(result['showAuditInfo'].enable(node)).toBeTruthy();
198 result['showAuditInfo']['method'](node, serviceModelId);
199 expect(result['showAuditInfo']['method']).toHaveBeenCalledWith(node, serviceModelId);
202 function getServiceHierarchy(){
205 "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450",
206 "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
207 "name": "action-data",
209 "toscaModelURL": null,
214 "serviceEcompNaming": "false",
215 "instantiationType": "Macro",
217 "2017488_adiodvpe0_ASN": {
219 "description": "AV/PE",
220 "entry_schema": null,
221 "inputProperties": null,
228 "instantiationUI": "legacy",
229 "modelCategory": "other"
235 "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
236 "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
238 "name": "ResourceGroup0",
239 "modelCustomizationName": "ResourceGroup0",
241 "contained_resource_type": "VF",
242 "role": "SERVICE-ACCESS",
244 "description": "DDD0",
248 "vdbe_svc_vprs_proxy 0": {
249 "uuid": "65fadfa8-a0d9-443f-95ad-836cd044e26c",
250 "invariantUuid": "f4baae0c-b3a5-4ca1-a777-afbffe7010bc",
251 "description": "A Proxy for Service vDBE_Svc_vPRS",
252 "name": "vDBE_Svc_vPRS Service Proxy",
254 "customizationUuid": "bdb63d23-e132-4ce7-af2c-a493b4cafac9",
258 "type": "Service Proxy",
259 "sourceModelUuid": "da7827a2-366d-4be6-8c68-a69153c61274",
260 "sourceModelInvariant": "24632e6b-584b-4f45-80d4-fefd75fd9f14",
261 "sourceModelName": "vDBE_Svc_vPRS"
263 "vdbe_svc_vprs_proxy 1": {
264 "uuid": "111dfa8-a0d9-443f-95ad-836cd044e26c",
265 "invariantUuid": "111ae0c-b3a5-4ca1-a777-afbffe7010bc",
266 "description": "A Proxy for Service vDBE_Svc_vPRS",
267 "name": "111_Svc_vPRS Service Proxy",
269 "customizationUuid": "1113d23-e132-4ce7-af2c-a493b4cafac9",
273 "type": "Service Proxy",
274 "sourceModelUuid": "11127a2-366d-4be6-8c68-a69153c61274",
275 "sourceModelInvariant": "1112e6b-584b-4f45-80d4-fefd75fd9f14",
276 "sourceModelName": "111_Svc_vPRS"
282 "collectionResource": {},
283 "configurations": {},
284 "fabricConfigurations": {},
285 "serviceProxies": {},