diff options
author | Ittay Stern <ittay.stern@att.com> | 2019-07-07 19:23:03 +0300 |
---|---|---|
committer | Ittay Stern <ittay.stern@att.com> | 2019-07-08 16:13:43 +0300 |
commit | f792671ae247a931f34d902e9276202b5016ef9a (patch) | |
tree | 6104971e8074c9a3d720836276ff18619719ec02 /vid-webpack-master/src/app/shared/storeUtil/utils/cr | |
parent | fc62274e8d15964d63c62bf0e2f4abc040252ee9 (diff) |
Merge from ecomp 718fd196 - Modern UI
Issue-ID: VID-378
Change-Id: I2736b98426e324ec3aa233b034229ba84d99839f
Signed-off-by: Ittay Stern <ittay.stern@att.com>
Diffstat (limited to 'vid-webpack-master/src/app/shared/storeUtil/utils/cr')
3 files changed, 100 insertions, 0 deletions
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.actions.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.actions.ts new file mode 100644 index 000000000..428a309d7 --- /dev/null +++ b/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.actions.ts @@ -0,0 +1,21 @@ +import {Action, ActionCreator} from "redux"; +import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions"; + +export enum CrActions{ + DELETE_ACTION_CR_INSTANCE = "DELETE_ACTION_CR_INSTANCE", + UNDO_DELETE_ACTION_CR_INSTANCE = "UNDO_DELETE_ACTION_CR_INSTANCE" +} + +export const deleteActionCrInstance: ActionCreator<ActionOnFirstLevel> = (collectionResourceStoreKey, serviceId) => ({ + type: CrActions.DELETE_ACTION_CR_INSTANCE, + firstLevelName: 'collectionResources', + storeKey: collectionResourceStoreKey, + serviceId: serviceId +}); + +export const undoDeleteActionCrInstance: ActionCreator<ActionOnFirstLevel> = (collectionResourceStoreKey, serviceId) => ({ + type: CrActions.UNDO_DELETE_ACTION_CR_INSTANCE, + firstLevelName: 'collectionResources', + storeKey: collectionResourceStoreKey, + serviceId: serviceId +}); diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.spec.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.spec.ts new file mode 100644 index 000000000..e457cf9dc --- /dev/null +++ b/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.spec.ts @@ -0,0 +1,56 @@ + +import {ServiceInstanceActions} from "../../../models/serviceInstanceActions"; +import { crReducer} from "./cr.reducer"; +import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions"; +import {CrActions} from "./cr.actions"; +describe('crReducer', () => { + + test('#DELETE_ACTION_CR_INSTANCE', () => { + let crState = crReducer(<any>{ + serviceInstance: { + 'serviceModelId': { + collectionResources: { + 'crStoreKey': { + isMissingData: true, + action: 'None' + } + } + } + } + }, + <ActionOnFirstLevel>{ + type: CrActions.DELETE_ACTION_CR_INSTANCE, + storeKey: 'crStoreKey', + firstLevelName: 'collectionResources', + serviceId: 'serviceModelId' + }).serviceInstance['serviceModelId']['collectionResources']['crStoreKey']; + + expect(crState).toBeDefined(); + expect(crState.action).toEqual(ServiceInstanceActions.None_Delete); + }); + + test('#UNDO_DELETE_ACTION_CR_INSTANCE', () => { + let crState = crReducer(<any>{ + serviceInstance: { + 'serviceModelId': { + collectionResources: { + 'crStoreKey': { + isMissingData: true, + action: 'Update_Delete' + } + } + } + } + }, + <ActionOnFirstLevel>{ + type: CrActions.UNDO_DELETE_ACTION_CR_INSTANCE, + storeKey: 'crStoreKey', + firstLevelName: 'collectionResources', + serviceId: 'serviceModelId' + }).serviceInstance['serviceModelId']['collectionResources']['crStoreKey']; + + expect(crState).toBeDefined(); + expect(crState.action).toEqual(ServiceInstanceActions.Update); + }); + +}); diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.ts new file mode 100644 index 000000000..72894e6f0 --- /dev/null +++ b/vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.ts @@ -0,0 +1,23 @@ +import {ServiceState} from "../main.reducer"; +import {Action} from "redux"; +import * as _ from "lodash"; +import {ServiceInstanceActions} from "../../../models/serviceInstanceActions"; +import {CrActions} from "./cr.actions"; +import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions"; +import {deleteFirstLevel} from "../reducersHelper"; + +export function crReducer(state: ServiceState, action: Action): ServiceState { + switch (action.type) { + case CrActions.DELETE_ACTION_CR_INSTANCE : { + return deleteFirstLevel(state, <ActionOnFirstLevel>action, false); + } + + case CrActions.UNDO_DELETE_ACTION_CR_INSTANCE : { + let newState = _.cloneDeep(state); + let vnf = newState.serviceInstance[(<ActionOnFirstLevel>action).serviceId]['collectionResources'][(<ActionOnFirstLevel>action).storeKey]; + let oldState = vnf.action; + newState.serviceInstance[(<ActionOnFirstLevel>action).serviceId]['collectionResources'][(<ActionOnFirstLevel>action).storeKey].action = (oldState.split('_')[0]) as ServiceInstanceActions; + return newState; + } + } + } |