Merge changes from topics "VID-14", "VID-13", "VID-12"
[vid.git] / vid-webpack-master / src / app / shared / storeUtil / utils / vnf / vnf.reducers.spec.ts
1 import {VnfInstance} from "../../../models/vnfInstance";
2 import {
3   CreateVnfInstanceAction,
4   RemoveVnfInstanceAction,
5   UpdateVnfPosition, UpgradeVnfAction,
6   VNFActions
7 } from "./vnf.actions";
8 import {vnfReducer} from "./vnf.reducers";
9 import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
10 import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions";
11
12 describe('vnfReducer', () => {
13   test('#UPDATE_VNF_POSITION', () => {
14     let vnfInstance: VnfInstance = new VnfInstance();
15     vnfInstance.isMissingData = false;
16     vnfInstance.instanceName = 'instanceName';
17     let vnfState = vnfReducer(<any>{
18         serviceInstance : {
19           'serviceModelId' : {
20             vnfs : {
21               "vnfStoreKey" : {
22
23               }
24             }
25           }
26         }},
27       <UpdateVnfPosition>{
28         type: VNFActions.UPDATE_VNF_POSITION,
29         node : <any>{
30           position : 1
31         },
32         vnfStoreKey : 'vnfStoreKey',
33         instanceId : 'serviceModelId'
34       }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'];
35
36     expect(vnfState).toBeDefined();
37     expect(vnfState.position).toEqual(1);
38   });
39
40   test('#CREATE_NETWORK_INSTANCE', () => {
41     let vnfInstance: VnfInstance = new VnfInstance();
42     vnfInstance.isMissingData = false;
43     vnfInstance.instanceName = 'instanceName';
44     let vnfState = vnfReducer(<any>{serviceInstance : {
45           'serviceModelId' : {
46             vnfs : {
47
48             }
49           }
50         }},
51       <CreateVnfInstanceAction>{
52         type: VNFActions.CREATE_VNF_INSTANCE,
53         vnfInstance : vnfInstance,
54         vnfStoreKey : null,
55         vnfModelName : 'vnfModelName',
56         serviceUuid : 'serviceModelId'
57       }).serviceInstance['serviceModelId'].vnfs['vnfModelName'];
58
59     expect(vnfState).toBeDefined();
60     expect(vnfState.isMissingData).toBeFalsy();
61   });
62
63   test('#DELETE_ACTION_VNF_INSTANCE', () => {
64     let vnfState = vnfReducer(<any>{serviceInstance : {
65           'serviceModelId' : {
66             vnfs : {
67               'vnfStoreKey' : {
68                 isMissingData : true,
69                 action : 'None'
70               }
71             }
72           }
73         }},
74       <ActionOnFirstLevel>{
75         type: VNFActions.DELETE_ACTION_VNF_INSTANCE,
76         firstLevelName: 'vnfs',
77         storeKey: 'vnfStoreKey',
78         serviceId: 'serviceModelId'
79       }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'];
80
81     expect(vnfState).toBeDefined();
82     expect(vnfState.action).toEqual(ServiceInstanceActions.None_Delete);
83   });
84
85   test('#UNDO_DELETE_ACTION_VNF_INSTANCE', () => {
86     let vnfState = vnfReducer(<any>{serviceInstance : {
87           'serviceModelId' : {
88             vnfs : {
89               'vnfStoreKey' : {
90                 isMissingData : true,
91                 action : 'Update_Delete'
92               }
93             }
94           }
95         }},
96       <ActionOnFirstLevel>{
97         type: VNFActions.UNDO_DELETE_ACTION_VNF_INSTANCE,
98         storeKey: 'vnfStoreKey',
99         firstLevelName: 'vnfs',
100         serviceId: 'serviceModelId'
101       }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'];
102
103     expect(vnfState).toBeDefined();
104     expect(vnfState.action).toEqual(ServiceInstanceActions.Update);
105   });
106
107   test('#REMOVE_VNF_INSTANCE', () => {
108     let vnfs = vnfReducer(<any>{serviceInstance : {
109           'serviceModelId' : {
110             vnfs : {
111               'vnfStoreKey' : {
112                 isMissingData : true,
113                 action : 'Update_Delete'
114               },
115               'vnfStoreKey_1' : {
116                 isMissingData : true,
117                 action : 'Update_Delete'
118               }
119             }
120           }
121         }},
122       <RemoveVnfInstanceAction>{
123         type: VNFActions.REMOVE_VNF_INSTANCE,
124         vnfStoreKey: 'vnfStoreKey',
125         serviceId: 'serviceModelId'
126       }).serviceInstance['serviceModelId'].vnfs;
127
128     expect(vnfs).toBeDefined();
129     expect(vnfs['vnfStoreKey']).toBeUndefined();
130   });
131
132   test('#UPGRADE_VNF_ACTION', () => {
133     const vnfStoreKey: string  = 'vnfStoreKey';
134     const serviceModelId: string  = 'serviceModelId';
135     let vnfs = vnfReducer(<any>{serviceInstance : {
136           [serviceModelId] : {
137             vnfs : {
138               [vnfStoreKey] : {
139                 isMissingData : true,
140                 action : 'None'
141               }
142             }
143           }
144         }},
145       <UpgradeVnfAction>{
146         type: VNFActions.UPGRADE_VNF_ACTION,
147         vnfStoreKey: vnfStoreKey,
148         serviceUuid: serviceModelId
149       }).serviceInstance[serviceModelId].vnfs[vnfStoreKey];
150
151     expect(vnfs).toBeDefined();
152     expect(vnfs[vnfStoreKey]).toBeUndefined();
153   });
154   test('#UNDO_UPGRADE_VNF_ACTION', () => {
155     const vnfStoreKey: string  = 'vnfStoreKey';
156     const serviceModelId: string  = 'serviceModelId';
157     let vnfs = vnfReducer(<any>{serviceInstance : {
158           [serviceModelId] : {
159             vnfs : {
160               [vnfStoreKey] : {
161                 isMissingData : true,
162                 action : 'None_Upgrade'
163               }
164             }
165           }
166         }},
167       <UpgradeVnfAction>{
168         type: VNFActions.UNDO_UPGRADE_VNF_ACTION,
169         vnfStoreKey: vnfStoreKey,
170         serviceUuid: serviceModelId
171       }).serviceInstance[serviceModelId].vnfs[vnfStoreKey];
172
173     expect(vnfs).toBeDefined();
174     expect(vnfs[vnfStoreKey]).toBeUndefined();
175   });
176
177 });