summaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/shared/storeUtil/utils/cr
diff options
context:
space:
mode:
Diffstat (limited to 'vid-webpack-master/src/app/shared/storeUtil/utils/cr')
-rw-r--r--vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.actions.ts21
-rw-r--r--vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.spec.ts56
-rw-r--r--vid-webpack-master/src/app/shared/storeUtil/utils/cr/cr.reducer.ts23
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;
+ }
+ }
+ }