2 CreateVFModuleInstanceAction,
3 DeleteActionVfModuleInstanceAction, DeleteVFModuleField,
4 DeleteVfModuleInstanceAction,
5 UndoDeleteActionVfModuleInstanceAction,
6 UpdateVFModluePosition, UpdateVFModuleField,
7 UpgradeVfModuleInstanceAction,
9 } from "./vfModule.actions";
10 import {vfModuleReducer} from "./vfModule.reducers";
11 import {VfModuleInstance} from "../../../models/vfModuleInstance";
12 import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
15 describe('vfModuleReducer', () => {
16 test('#REMOVE_VNF_MODULE_INSTANCE : should delete existing vnf module by dynamicModelName', () => {
17 let state = vfModuleReducer(<any>{
24 'dynamicModelName1': {},
25 'dynamicModelName2': {},
33 <DeleteVfModuleInstanceAction>{
34 type: VfModuleActions.REMOVE_VNF_MODULE_INSTANCE,
35 modelName: 'modelName',
37 vnfStoreKey: 'vfName',
38 serviceModelId: 'serviceModelId',
39 dynamicModelName: 'dynamicModelName1'
42 expect(state).toBeDefined();
43 expect(state.serviceInstance['serviceModelId'].vnfs['vfName'].vfModules['modelName']['dynamicModelName2']).toBeDefined();
44 expect(state.serviceInstance['serviceModelId'].vnfs['vfName'].vfModules['modelName']['dynamicModelName1']).not.toBeDefined();
47 test('#DELETE_LAST_VNF_MODULE_INSTANCE : should delete existing vnf module', () => {
48 let state = vfModuleReducer(<any>{
55 'dynamicModelName': {}
63 <DeleteVfModuleInstanceAction>{
64 type: VfModuleActions.REMOVE_VNF_MODULE_INSTANCE,
65 modelName: 'modelName',
67 vnfStoreKey: 'vfName',
68 serviceModelId: 'serviceModelId',
69 dynamicModelName: 'dynamicModelName'
72 expect(state).toBeDefined();
73 expect(state.serviceInstance['serviceModelId'].vnfs['vfName'].vfModules['modelName']).not.toBeDefined();
76 test('#CREATE_VF_MODULE: should create new vfModule to existing VNF', () => {
77 let vfModuleInstance: VfModuleInstance = new VfModuleInstance();
78 vfModuleInstance.instanceName = 'instanceName';
79 vfModuleInstance.isMissingData = false;
80 vfModuleInstance.volumeGroupName = 'volumeGroupName';
81 let vfModule = vfModuleReducer(<any>{
92 <CreateVFModuleInstanceAction>{
93 type: VfModuleActions.CREATE_VF_MODULE,
95 vfInstance: new VfModuleInstance(),
96 vnfStoreKey: 'vnfStoreKey',
97 serviceUuid: 'serviceUuid',
99 }).serviceInstance['serviceUuid'].vnfs['vnfStoreKey'].vfModules;
101 let firstVfModuleName = Object.keys(vfModule)[0];
102 expect(vfModule[firstVfModuleName]).toBeDefined();
103 expect(vfModule[firstVfModuleName].isMissingData).toBeFalsy();
106 test('#UPDATE_VFMODULE_FEILD: should update field with some value', () => {
107 const newFieldName = 'newFieldName';
108 const newFieldValue = 'newFieldValue';
109 let oldState = getReduxState();
111 let newState = vfModuleReducer(<any>oldState,
112 <UpdateVFModuleField>{
113 type: VfModuleActions.UPDATE_VFMODULE_FEILD,
114 dynamicModelName: 'dynamicModelName1',
115 vnfStoreKey: 'vnfStoreKey',
116 serviceId: 'serviceModelId',
117 modelName: 'modelName',
118 fieldName: newFieldName,
119 fieldValue: newFieldValue
122 let vfModule = newState.serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
124 expect(vfModule[newFieldName]).toEqual(newFieldValue);
127 test('#DELETE_VFMODULE_FEILD: should update field with some value', () => {
128 const deleteFieldName = 'deleteFieldName';
139 'dynamicModelName1': {
141 [deleteFieldName]: true,
144 'dynamicModelName2': {},
152 let newState = vfModuleReducer(<any>oldState,
153 <DeleteVFModuleField>{
154 type: VfModuleActions.DELETE_VFMODULE_FIELD,
155 dynamicModelName: 'dynamicModelName1',
156 vnfStoreKey: 'vnfStoreKey',
157 serviceId: 'serviceModelId',
158 modelName: 'modelName',
159 deleteFieldName: deleteFieldName,
162 let vfModule = newState.serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
164 expect(vfModule[deleteFieldName]).toBeUndefined();
167 test('#UPDATE_VFMODULE_POSITION: should update position', () => {
168 let vfModule = vfModuleReducer(<any>{
178 'dynamicModelName': {
188 <UpdateVFModluePosition>{
189 type: VfModuleActions.UPDATE_VFMODULE_POSITION,
192 dynamicModelName: "dynamicModelName",
193 modelName: "modelName"
195 instanceId: "serviceModelId",
196 vnfStoreKey: "vfName"
198 }).serviceInstance['serviceModelId'].vnfs['vfName'].vfModules["modelName"]["dynamicModelName"];
200 expect(vfModule.position).toEqual(1);
203 test('#DELETE_ACTION_VF_MODULE_INSTANCE', () => {
204 let vfModule = vfModuleReducer(<any>getReduxState(), getDeleteActionVfModule())
205 .serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
207 expect(vfModule).toBeDefined();
208 expect(vfModule.isMissingData).toBeTruthy();
209 expect(vfModule.action).toEqual(ServiceInstanceActions.None_Delete);
212 test('#DELETE_ACTION_VF_MODULE_INSTANCE set tenantId and lcpCloudRegion to VFM', () => {
213 let vfModule = vfModuleReducer(<any>getReduxState(), getDeleteActionVfModule())
214 .serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
216 expect(vfModule).toBeDefined();
217 expect(vfModule.tenantId).toEqual('tenantId');
218 expect(vfModule.lcpCloudRegionId).toEqual('lcpCloudRegionId');
222 test('#UNDO_DELETE_ACTION_VF_MODULE_INSTANCE', () => {
223 let vfModule = vfModuleReducer(<any>{
233 'dynamicModelName1': {
235 action: 'None_Delete'
237 'dynamicModelName2': {},
245 <UndoDeleteActionVfModuleInstanceAction>{
246 type: VfModuleActions.UNDO_DELETE_ACTION_VF_MODULE_INSTANCE,
247 dynamicModelName: 'dynamicModelName1',
248 vnfStoreKey: 'vnfStoreKey',
249 serviceId: 'serviceModelId'
250 }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
252 expect(vfModule).toBeDefined();
253 expect(vfModule.action).toEqual(ServiceInstanceActions.None);
256 test('#UPGRADE_VFMODULE', () => {
257 let vfModule = vfModuleReducer(<any>getReduxState(),
258 <UpgradeVfModuleInstanceAction>{
259 type: VfModuleActions.UPGRADE_VFMODULE,
260 dynamicModelName: 'dynamicModelName1',
261 vnfStoreKey: 'vnfStoreKey',
262 serviceId: 'serviceModelId',
263 modelName: 'modelName'
264 }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
266 expect(vfModule.action).toEqual(ServiceInstanceActions.None_Upgrade);
269 test('#UNDO_UPGRADE_VFMODULE', () => {
270 let vfModule = vfModuleReducer(<any>{
280 'dynamicModelName1': {
282 action: 'None_Upgrade'
284 'dynamicModelName2': {},
292 <UpgradeVfModuleInstanceAction>{
293 type: VfModuleActions.UNDO_UPGRADE_VFMODULE_ACTION,
294 dynamicModelName: 'dynamicModelName1',
295 vnfStoreKey: 'vnfStoreKey',
296 serviceId: 'serviceModelId',
297 modelName: 'modelName'
298 }).serviceInstance['serviceModelId'].vnfs['vnfStoreKey'].vfModules['modelName']['dynamicModelName1'];
300 expect(vfModule.action).toEqual(ServiceInstanceActions.None);
303 function getReduxState() {
312 tenantId: 'tenantId',
313 lcpCloudRegionId: 'lcpCloudRegionId',
316 'dynamicModelName1': {
320 'dynamicModelName2': {},
330 function getDeleteActionVfModule() {
331 return <DeleteActionVfModuleInstanceAction>{
332 type: VfModuleActions.DELETE_ACTION_VF_MODULE_INSTANCE,
333 dynamicModelName: 'dynamicModelName1',
334 vnfStoreKey: 'vnfStoreKey',
335 serviceId: 'serviceModelId'