2 CreateVFModuleInstanceAction,
3 DeleteActionVfModuleInstanceAction,
5 DeleteVfModuleInstanceAction,
6 UndoDeleteActionVfModuleInstanceAction,
7 UpdateVFModluePosition,
9 UpgradeVfModuleInstanceAction,
11 } from "./vfModule.actions";
12 import {vfModuleReducer} from "./vfModule.reducers";
13 import {VfModuleInstance} from "../../../models/vfModuleInstance";
14 import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
15 import each from "jest-each";
18 describe('vfModuleReducer', () => {
19 test('#REMOVE_VNF_MODULE_INSTANCE : should delete existing vnf module by dynamicModelName', () => {
20 let state = vfModuleReducer(<any>{
27 'dynamicModelName1': {},
28 'dynamicModelName2': {},
36 <DeleteVfModuleInstanceAction>{
37 type: VfModuleActions.REMOVE_VNF_MODULE_INSTANCE,
38 modelName: 'modelName',
40 vnfStoreKey: 'vfName',
41 serviceModelId: 'serviceModelId',
42 dynamicModelName: 'dynamicModelName1'
45 expect(state).toBeDefined();
46 expect(state.serviceInstance['serviceModelId'].vnfs['vfName'].vfModules['modelName']['dynamicModelName2']).toBeDefined();
47 expect(state.serviceInstance['serviceModelId'].vnfs['vfName'].vfModules['modelName']['dynamicModelName1']).not.toBeDefined();
50 test('#DELETE_LAST_VNF_MODULE_INSTANCE : should delete existing vnf module', () => {
51 let state = vfModuleReducer(<any>{
58 'dynamicModelName': {}
66 <DeleteVfModuleInstanceAction>{
67 type: VfModuleActions.REMOVE_VNF_MODULE_INSTANCE,
68 modelName: 'modelName',
70 vnfStoreKey: 'vfName',
71 serviceModelId: 'serviceModelId',
72 dynamicModelName: 'dynamicModelName'
75 expect(state).toBeDefined();
76 expect(state.serviceInstance['serviceModelId'].vnfs['vfName'].vfModules['modelName']).not.toBeDefined();
79 test('#CREATE_VF_MODULE: should create new vfModule to existing VNF', () => {
80 let vfModuleInstance: VfModuleInstance = new VfModuleInstance();
81 vfModuleInstance.instanceName = 'instanceName';
82 vfModuleInstance.isMissingData = false;
83 vfModuleInstance.volumeGroupName = 'volumeGroupName';
84 let vfModule = vfModuleReducer(<any>{
95 <CreateVFModuleInstanceAction>{
96 type: VfModuleActions.CREATE_VF_MODULE,
98 vfInstance: new VfModuleInstance(),
99 vnfStoreKey: 'vnfStoreKey',
100 serviceUuid: 'serviceUuid',
102 }).serviceInstance['serviceUuid'].vnfs['vnfStoreKey'].vfModules;
104 let firstVfModuleName = Object.keys(vfModule)[0];
105 expect(vfModule[firstVfModuleName]).toBeDefined();
106 expect(vfModule[firstVfModuleName].isMissingData).toBeFalsy();
109 test('#UPDATE_VFMODULE_FEILD: should update field with some value', () => {
110 const newFieldName = 'newFieldName';
111 const newFieldValue = 'newFieldValue';
112 let oldState = getReduxState();
114 let newState = vfModuleReducer(<any>oldState,
115 <UpdateVFModuleField>{
116 type: VfModuleActions.UPDATE_VFMODULE_FEILD,
117 dynamicModelName: 'dynamicModelName1',
118 vnfStoreKey: 'vnfStoreKey',
119 serviceId: 'serviceModelId',
120 modelName: 'vfModuleModelName',
121 fieldName: newFieldName,
122 fieldValue: newFieldValue
125 let vfModule = newState.serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['vfModuleModelName']['dynamicModelName1'];
127 expect(vfModule[newFieldName]).toEqual(newFieldValue);
130 test('#DELETE_VFMODULE_FEILD: should update field with some value', () => {
131 const deleteFieldName = 'deleteFieldName';
142 'dynamicModelName1': {
144 [deleteFieldName]: true,
147 'dynamicModelName2': {},
155 let newState = vfModuleReducer(<any>oldState,
156 <DeleteVFModuleField>{
157 type: VfModuleActions.DELETE_VFMODULE_FIELD,
158 dynamicModelName: 'dynamicModelName1',
159 vnfStoreKey: 'vnfStoreKey',
160 serviceId: 'serviceModelId',
161 modelName: 'modelName',
162 deleteFieldName: deleteFieldName,
165 let vfModule = newState.serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
167 expect(vfModule[deleteFieldName]).toBeUndefined();
170 test('#UPDATE_VFMODULE_POSITION: should update position', () => {
171 let vfModule = vfModuleReducer(<any>{
181 'dynamicModelName': {
191 <UpdateVFModluePosition>{
192 type: VfModuleActions.UPDATE_VFMODULE_POSITION,
195 dynamicModelName: "dynamicModelName",
196 modelName: "modelName"
198 instanceId: "serviceModelId",
199 vnfStoreKey: "vfName"
201 }).serviceInstance['serviceModelId'].vnfs['vfName'].vfModules["modelName"]["dynamicModelName"];
203 expect(vfModule.position).toEqual(1);
207 ['for the first vfModule', 'dynamicModelName1'],
208 ['for the second vfModule', 'dynamicModelName2'],
210 test('#DELETE_ACTION_VF_MODULE_INSTANCE %s', (description, dynamicModelName: string) => {
211 let vfModule = vfModuleReducer(<any>getReduxState(), getDeleteActionVfModule(dynamicModelName))
212 .serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['vfModuleModelName'][dynamicModelName];
214 expect(vfModule).toBeDefined();
215 expect(vfModule.isMissingData).toBeTruthy();
216 expect(vfModule.action).toEqual(ServiceInstanceActions.None_Delete);
219 test('#DELETE_ACTION_VF_MODULE_INSTANCE set tenantId and lcpCloudRegion to VFM', () => {
220 let vfModule = vfModuleReducer(<any>getReduxState(), getDeleteActionVfModule('dynamicModelName1'))
221 .serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['vfModuleModelName']['dynamicModelName1'];
223 expect(vfModule).toBeDefined();
224 expect(vfModule.tenantId).toEqual('tenantId');
225 expect(vfModule.lcpCloudRegionId).toEqual('lcpCloudRegionId');
230 ['for the first vfModule', 'dynamicModelName1', true],
231 ['for the second vfModule', 'dynamicModelName2', true],
233 test('#UNDO_DELETE_ACTION_VF_MODULE_INSTANCE %s', (description, dynamicModelName: string) => {
234 let vfModule = vfModuleReducer(<any>getDeleteRedux(), getUndoDeleteActionVfModule(dynamicModelName))
235 .serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['vfModuleModelName'][dynamicModelName];
237 expect(vfModule).toBeDefined();
238 expect(vfModule.action).toEqual(ServiceInstanceActions.None);
241 test('#UPGRADE_VFMODULE', () => {
242 let vfModule = vfModuleReducer(<any>getReduxState(),
243 <UpgradeVfModuleInstanceAction>{
244 type: VfModuleActions.UPGRADE_VFMODULE,
245 dynamicModelName: 'dynamicModelName1',
246 vnfStoreKey: 'vnfStoreKey',
247 serviceId: 'serviceModelId',
248 modelName: 'vfModuleModelName'
249 }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['vfModuleModelName']['dynamicModelName1'];
251 expect(vfModule.action).toEqual(ServiceInstanceActions.None_Upgrade);
254 test('#UNDO_UPGRADE_VFMODULE', () => {
255 let vfModule = vfModuleReducer(<any>{
265 'dynamicModelName1': {
267 action: 'None_Upgrade'
269 'dynamicModelName2': {},
277 <UpgradeVfModuleInstanceAction>{
278 type: VfModuleActions.UNDO_UPGRADE_VFMODULE_ACTION,
279 dynamicModelName: 'dynamicModelName1',
280 vnfStoreKey: 'vnfStoreKey',
281 serviceId: 'serviceModelId',
282 modelName: 'modelName'
283 }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
285 expect(vfModule.action).toEqual(ServiceInstanceActions.None);
288 function getReduxState() {
297 tenantId: 'tenantId',
298 lcpCloudRegionId: 'lcpCloudRegionId',
300 'vfModuleModelName': {
301 'dynamicModelName1': {
305 'dynamicModelName2': {
318 function getDeleteActionVfModule(dynamicModelName?: string) {
319 return <DeleteActionVfModuleInstanceAction>{
320 type: VfModuleActions.DELETE_ACTION_VF_MODULE_INSTANCE,
321 dynamicModelName: dynamicModelName,
322 vnfStoreKey: 'vnfStoreKey',
323 serviceId: 'serviceModelId',
324 vfModuleModelName: 'vfModuleModelName',
328 function getUndoDeleteActionVfModule(dynamicModelName?: string) {
329 return <UndoDeleteActionVfModuleInstanceAction>{
330 type: VfModuleActions.UNDO_DELETE_ACTION_VF_MODULE_INSTANCE,
331 dynamicModelName: dynamicModelName,
332 vnfStoreKey: 'vnfStoreKey',
333 serviceId: 'serviceModelId',
334 vfModuleModelName: 'vfModuleModelName',
338 function getDeleteRedux() {
348 'vfModuleModelName': {
349 'dynamicModelName1': {
351 action: 'None_Delete'
353 'dynamicModelName2': {
355 action: 'None_Delete'