6540a6551b80524831c7a78570624a8674dce104
[vid.git] /
1 import {getTestBed, TestBed} from '@angular/core/testing';
2 import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
3 import {InstantiationTemplatesModalService} from "./instantiation.templates.modal.service";
4 import {AaiService} from "../../../services/aaiService/aai.service";
5 import {ActivatedRoute} from "@angular/router";
6 import {IframeService} from "../../../utils/iframe.service";
7 import {NgRedux} from "@angular-redux/store";
8 import {FeatureFlagsService} from "../../../services/featureFlag/feature-flags.service";
9 import {InstantiationTemplatesRowModel} from "./instantiation.templates.row.model";
10
11
12 class ActivatedRouteMock<T> {
13   queryParams() {
14     return {
15       serviceModelId: '6e59c5de-f052-46fa-aa7e-2fca9d674c44'
16     }
17   }
18 }
19
20 class MockAppStore {
21
22 }
23
24 describe('instantiation templates modal service', () => {
25   let injector;
26   let service: InstantiationTemplatesModalService;
27   let httpMock: HttpTestingController;
28   let _aaiService: AaiService;
29   let _activatedRoute: ActivatedRoute;
30
31   beforeAll(done => (async () => {
32     TestBed.configureTestingModule({
33       imports: [HttpClientTestingModule],
34       providers: [InstantiationTemplatesModalService,
35         IframeService,
36         AaiService,
37         FeatureFlagsService,
38         {provide: ActivatedRoute, useClass: ActivatedRouteMock},
39         {provide: NgRedux, useClass: MockAppStore}
40       ]
41     });
42     await TestBed.compileComponents();
43
44     injector = getTestBed();
45     service = injector.get(InstantiationTemplatesModalService);
46     httpMock = injector.get(HttpTestingController);
47     _aaiService = injector.get(AaiService);
48     _activatedRoute = injector.get(ActivatedRoute);
49
50   })().then(done).catch(done.fail));
51
52
53   test('service should be defined', () => {
54     expect(service).toBeDefined();
55   });
56
57   test('convert map to json', () => {
58     let result:InstantiationTemplatesRowModel = new InstantiationTemplatesRowModel({
59       "requestSummary": {
60         "vnf": 2,
61         "vfModule": 3,
62         "network": 1
63       }
64     });
65     expect(result.summary).toEqual( "{\"vnf\":2,\"vfModule\":3,\"network\":1}");
66   });
67
68
69   test('convertResponseToUI - should return table data', () => {
70     const jobs = [{
71       "id": 5,
72       "created": 1524995555000,
73       "modified": 1524995556000,
74       "action": "INSTANTIATE",
75       "createdId": null,
76       "modifiedId": null,
77       "rowNum": null,
78       "auditUserId": null,
79       "auditTrail": null,
80       "jobId": "9f88fdb5-bb47-4bf3-8c5f-98f1ad0ec87c",
81       "templateId": "ce4ec177-cfc8-483e-8a2c-b7aea53fd740",
82       "userId": "16807000",
83       "msoRequestId": "c0011670-0e1a-4b74-945d-8bf5aede1d91",
84       "requestId": null,
85       "jobStatus": "FAILED",
86       "statusModifiedDate": 1524995555000,
87       "hidden": false,
88       "pause": false,
89       "owningEntityId": "aaa1",
90       "owningEntityName": "aaa1",
91       "project": "WATKINS",
92       "aicZoneId": "BAN1",
93       "aicZoneName": "VSDKYUTP-BAN1",
94       "tenantId": "1178612d2b394be4834ad77f567c0af2",
95       "tenantName": "AIN Web Tool-15-D-SSPtestcustome",
96       "regionId": "hvf6",
97       "regionName": null,
98       "serviceType": "TYLER SILVIA",
99       "subscriberName": "e433710f-9217-458d-a79d-1c7aff376d89",
100       "serviceInstanceId": null,
101       "serviceInstanceName": 'serviceInstanceName',
102       "serviceModelId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
103       "serviceModelName": "ComplexService",
104       "serviceModelVersion": "1.0",
105       "createdBulkDate": 1524995555000,
106     }];
107     const tableRows: InstantiationTemplatesRowModel[] = service.convertResponseToUI(jobs);
108     expect(tableRows).toHaveLength(1);
109     expect(tableRows[0].userId).toEqual('16807000');
110     expect((new Date(tableRows[0].createDate)).toISOString()).toEqual('2018-04-29T09:52:35.000Z');
111     expect(tableRows[0].instanceName).toEqual('serviceInstanceName');
112     expect(tableRows[0].instantiationStatus).toEqual('FAILED');
113     expect(tableRows[0].region).toEqual('hvf6 (AAA1)');
114     expect(tableRows[0].tenant).toEqual('AIN Web Tool-15-D-SSPtestcustome');
115     expect(tableRows[0].aicZone).toEqual('VSDKYUTP-BAN1');
116     expect(tableRows[0].jobId).toEqual('9f88fdb5-bb47-4bf3-8c5f-98f1ad0ec87c');
117   });
118
119
120   test('getCloudOwner should remove "-att" from owningEntityName : "att-owner', () => {
121     let result: InstantiationTemplatesRowModel = new InstantiationTemplatesRowModel({
122       owningEntityName: 'att-owner',
123       regionId: 'regionId'
124     });
125     expect(result.region).toEqual('regionId (OWNER)');
126   });
127
128   test('getCloudOwner should not return owningEntityName if not exist', () => {
129     let result: InstantiationTemplatesRowModel = new InstantiationTemplatesRowModel({owningEntityName: null, regionId: 'regionId'});
130     expect(result.region).toEqual('regionId');
131   });
132
133   test('getInstanceName should  return instance name id exist if not exist', () => {
134     let result: InstantiationTemplatesRowModel = new InstantiationTemplatesRowModel({serviceInstanceName: 'instanceName'});
135     expect(result.instanceName).toEqual('instanceName');
136   });
137
138   test('getInstanceName should return <Automatically generated> if instance name not exist', () => {
139     let result: InstantiationTemplatesRowModel = new InstantiationTemplatesRowModel({});
140     expect(result.instanceName).toEqual('<Automatically generated>');
141   });
142
143   test('filterByUserId should filter table data by userId: not empty list', () => {
144     const jobs : InstantiationTemplatesRowModel[] = [
145       new InstantiationTemplatesRowModel({userId : 'userId_1'}),
146       new InstantiationTemplatesRowModel({userId : 'userId'}),
147       new InstantiationTemplatesRowModel({userId : 'userId'}),
148       new InstantiationTemplatesRowModel({userId : 'userId_1'})
149     ];
150     let result: InstantiationTemplatesRowModel[] = service.filterByUserId('userId', jobs);
151     expect(result).toHaveLength(2);
152   });
153
154   test('filterByUserId should filter table data by userId:  empty list should return empty list', () => {
155     const jobs : InstantiationTemplatesRowModel[] = [];
156     let result: InstantiationTemplatesRowModel[] = service.filterByUserId('userId', jobs);
157     expect(result).toHaveLength(0);
158   });
159
160 });