Merge changes from topics "VID-14", "VID-13", "VID-12"
[vid.git] / vid-webpack-master / src / app / shared / storeUtil / utils / vfModule / vfModule.reducers.spec.ts
1 import {
2   CreateVFModuleInstanceAction,
3   DeleteActionVfModuleInstanceAction,
4   DeleteVfModuleInstanceAction,
5   UndoDeleteActionVfModuleInstanceAction,
6   UpdateVFModluePosition,
7   UpgradeVfModuleInstanceAction,
8   VfModuleActions
9 } from "./vfModule.actions";
10 import {vfModuleReducer} from "./vfModule.reducers";
11 import {VfModuleInstance} from "../../../models/vfModuleInstance";
12 import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
13
14
15 describe('vfModuleReducer', () => {
16   test('#REMOVE_VNF_MODULE_INSTANCE : should delete existing vnf module by dynamicModelName', () => {
17     let state = vfModuleReducer(<any>{serviceInstance : {
18           'serviceModelId' : {
19             vnfs : {
20               'vfName' : {
21                 vfModules : {
22                   'modelName' : {
23                     'dynamicModelName1': {},
24                     'dynamicModelName2': {},
25                   }
26                 }
27               }
28             }
29           }
30         }},
31       <DeleteVfModuleInstanceAction>{
32         type: VfModuleActions.REMOVE_VNF_MODULE_INSTANCE,
33         modelName : 'modelName',
34         vfName : 'vfName',
35         vnfStoreKey : 'vfName',
36         serviceModelId : 'serviceModelId',
37         dynamicModelName: 'dynamicModelName1'
38       });
39
40     expect(state).toBeDefined();
41     expect(state.serviceInstance['serviceModelId'].vnfs['vfName'].vfModules['modelName']['dynamicModelName2']).toBeDefined();
42     expect(state.serviceInstance['serviceModelId'].vnfs['vfName'].vfModules['modelName']['dynamicModelName1']).not.toBeDefined();
43   });
44
45   test('#DELETE_LAST_VNF_MODULE_INSTANCE : should delete existing vnf module', () => {
46     let state = vfModuleReducer(<any>{serviceInstance : {
47           'serviceModelId' : {
48             vnfs : {
49               'vfName' : {
50                 vfModules : {
51                   'modelName' : {
52                     'dynamicModelName': {
53                     }
54                   }
55                 }
56               }
57             }
58           }
59         }},
60       <DeleteVfModuleInstanceAction>{
61         type: VfModuleActions.REMOVE_VNF_MODULE_INSTANCE,
62         modelName : 'modelName',
63         vfName : 'vfName',
64         vnfStoreKey : 'vfName',
65         serviceModelId : 'serviceModelId',
66         dynamicModelName: 'dynamicModelName'
67       });
68
69     expect(state).toBeDefined();
70     expect(state.serviceInstance['serviceModelId'].vnfs['vfName'].vfModules['modelName']).not.toBeDefined();
71   });
72
73   test('#CREATE_VF_MODULE: should create new vfModule to existing VNF', ()=>{
74     let vfModuleInstance : VfModuleInstance = new VfModuleInstance();
75     vfModuleInstance.instanceName = 'instanceName';
76     vfModuleInstance.isMissingData = false;
77     vfModuleInstance.volumeGroupName = 'volumeGroupName';
78     let vfModule = vfModuleReducer(<any>{serviceInstance : {
79           'serviceUuid' : {
80             vnfs : {
81               'vnfStoreKey' : {
82                 'vfModules' : {
83                 }
84               }
85             }
86           }
87         }},
88       <CreateVFModuleInstanceAction>{
89         type: VfModuleActions.CREATE_VF_MODULE,
90         vfId : 'vfId',
91         vfInstance : new VfModuleInstance(),
92         vnfStoreKey : 'vnfStoreKey',
93         serviceUuid : 'serviceUuid',
94         index : 1
95       }).serviceInstance['serviceUuid'].vnfs['vnfStoreKey'].vfModules;
96
97     let firstVfModuleName = Object.keys(vfModule)[0];
98     expect(vfModule[firstVfModuleName]).toBeDefined();
99     expect(vfModule[firstVfModuleName].isMissingData).toBeFalsy();
100   });
101
102   test('#UPDATE_VF_MODULE: should update existing VFModule', ()=>{
103     let vfModuleInstance : VfModuleInstance = new VfModuleInstance();
104     vfModuleInstance.instanceName = 'instanceName';
105     vfModuleInstance.isMissingData = false;
106     vfModuleInstance.volumeGroupName = 'volumeGroupName';
107     let vfModule = vfModuleReducer(<any>{
108         serviceHierarchy : {
109           'serviceModelId' : {}
110         },
111         serviceInstance : {
112           'serviceModelId' : {
113             vnfs : {
114               'vfName' : {
115                 vfModules : {
116                   'modelName' : {
117                     'dynamicModelName1': {
118                       isMissingData : true
119                     },
120                     'dynamicModelName2': {},
121                   }
122                 }
123               }
124             }
125           }
126         }},
127       <CreateVFModuleInstanceAction>{
128         type: VfModuleActions.UPDATE_VF_MODULE,
129         vfId : 'modelName',
130         vfInstance : new VfModuleInstance(),
131         vnfStoreKey : 'vfName',
132         dynamicModelName : 'dynamicModelName1',
133         serviceUuid : 'serviceModelId',
134         index : 1
135       }).serviceInstance['serviceModelId'].vnfs['vfName'].vfModules;
136
137     let firstVfModuleName = Object.keys(vfModule)[0];
138     expect(vfModule[firstVfModuleName]).toBeDefined();
139     expect(vfModule[firstVfModuleName].isMissingData).toBeFalsy();
140   });
141
142
143   test('#UPDATE_VFMODULE_POSITION: should update position', ()=>{
144     let vfModule = vfModuleReducer(<any>{
145         serviceHierarchy : {
146           'serviceModelId' : {}
147         },
148         serviceInstance : {
149           'serviceModelId' : {
150             vnfs : {
151               'vfName' : {
152                 vfModules : {
153                   'modelName' : {
154                     'dynamicModelName': {
155                       isMissingData : true
156                     }
157                   }
158                 }
159               }
160             }
161           }
162         }},
163       <UpdateVFModluePosition>{
164         type: VfModuleActions.UPDATE_VFMODULE_POSITION,
165         node: {
166           position : 1,
167           dynamicModelName : "dynamicModelName",
168           modelName : "modelName"
169         },
170         instanceId : "serviceModelId",
171         vnfStoreKey : "vfName"
172
173       }).serviceInstance['serviceModelId'].vnfs['vfName'].vfModules["modelName"]["dynamicModelName"];
174
175     expect(vfModule.position).toEqual(1);
176   });
177
178
179   test('#DELETE_ACTION_VF_MODULE_INSTANCE', ()=>{
180     let vfModule = vfModuleReducer(<any>{
181         serviceHierarchy : {
182           'serviceModelId' : {}
183         },
184         serviceInstance : {
185           'serviceModelId' : {
186             vnfs : {
187               'vnfStoreKey' : {
188                 vfModules : {
189                   'modelName' : {
190                     'dynamicModelName1': {
191                       isMissingData : true,
192                       action : 'None'
193                     },
194                     'dynamicModelName2': {},
195                   }
196                 }
197               }
198             }
199           }
200         }},
201       <DeleteActionVfModuleInstanceAction>{
202         type: VfModuleActions.DELETE_ACTION_VF_MODULE_INSTANCE,
203         dynamicModelName: 'dynamicModelName1',
204         vnfStoreKey : 'vnfStoreKey',
205         serviceId: 'serviceModelId'
206       }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
207
208     console.log(vfModule.action);
209     expect(vfModule).toBeDefined();
210     expect(vfModule.isMissingData).toBeTruthy();
211     expect(vfModule.action).toEqual(ServiceInstanceActions.None_Delete);
212   });
213
214   test('#UNDO_DELETE_ACTION_VF_MODULE_INSTANCE', ()=>{
215     let vfModule = vfModuleReducer(<any>{
216         serviceHierarchy : {
217           'serviceModelId' : {}
218         },
219         serviceInstance : {
220           'serviceModelId' : {
221             vnfs : {
222               'vnfStoreKey' : {
223                 vfModules : {
224                   'modelName' : {
225                     'dynamicModelName1': {
226                       isMissingData : true,
227                       action : 'None_Delete'
228                     },
229                     'dynamicModelName2': {},
230                   }
231                 }
232               }
233             }
234           }
235         }},
236       <UndoDeleteActionVfModuleInstanceAction>{
237         type: VfModuleActions.UNDO_DELETE_ACTION_VF_MODULE_INSTANCE,
238         dynamicModelName: 'dynamicModelName1',
239         vnfStoreKey : 'vnfStoreKey',
240         serviceId: 'serviceModelId'
241       }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
242
243     console.log(vfModule.action);
244     expect(vfModule).toBeDefined();
245     expect(vfModule.action).toEqual(ServiceInstanceActions.None);
246   });
247
248   test('#UPGRADE_VFMODULE', ()=>{
249     let vfModule = vfModuleReducer(<any>{
250         serviceHierarchy : {
251           'serviceModelId' : {}
252         },
253         serviceInstance : {
254           'serviceModelId' : {
255             vnfs : {
256               'vnfStoreKey' : {
257                 vfModules : {
258                   'modelName' : {
259                     'dynamicModelName1': {
260                       isMissingData : true,
261                       action : 'None'
262                     },
263                     'dynamicModelName2': {},
264                   }
265                 }
266               }
267             }
268           }
269         }},
270       <UpgradeVfModuleInstanceAction>{
271         type: VfModuleActions.UPGRADE_VFMODULE,
272         dynamicModelName: 'dynamicModelName1',
273         vnfStoreKey : 'vnfStoreKey',
274         serviceId: 'serviceModelId',
275         modelName: 'modelName'
276       }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
277
278     expect(vfModule.action).toEqual(ServiceInstanceActions.None_Upgrade);
279   });
280
281   test('#UNDO_UPGRADE_VFMODULE', ()=>{
282     let vfModule = vfModuleReducer(<any>{
283         serviceHierarchy : {
284           'serviceModelId' : {}
285         },
286         serviceInstance : {
287           'serviceModelId' : {
288             vnfs : {
289               'vnfStoreKey' : {
290                 vfModules : {
291                   'modelName' : {
292                     'dynamicModelName1': {
293                       isMissingData : true,
294                       action : 'None_Upgrade'
295                     },
296                     'dynamicModelName2': {},
297                   }
298                 }
299               }
300             }
301           }
302         }},
303       <UpgradeVfModuleInstanceAction>{
304         type: VfModuleActions.UNDO_UPGRADE_VFMODULE_ACTION,
305         dynamicModelName: 'dynamicModelName1',
306         vnfStoreKey : 'vnfStoreKey',
307         serviceId: 'serviceModelId',
308         modelName: 'modelName'
309       }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
310
311     expect(vfModule.action).toEqual(ServiceInstanceActions.None);
312   });
313
314 });