aboutsummaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/shared/storeUtil/utils/ncf
diff options
context:
space:
mode:
Diffstat (limited to 'vid-webpack-master/src/app/shared/storeUtil/utils/ncf')
-rw-r--r--vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.actions.ts33
-rw-r--r--vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.spec.ts64
-rw-r--r--vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.ts26
3 files changed, 123 insertions, 0 deletions
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.actions.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.actions.ts
new file mode 100644
index 000000000..00b5d9f02
--- /dev/null
+++ b/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.actions.ts
@@ -0,0 +1,33 @@
+import {Action, ActionCreator} from "redux";
+
+export enum NcfActions{
+ DELETE_ACTION_NCF_INSTANCE = "DELETE_ACTION_NCF_INSTANCE",
+ UNDO_DELETE_ACTION_NCF_INSTANCE = "UNDO_DELETE_ACTION_NCF_INSTANCE"
+
+}
+export interface DeleteActionNcfInstanceAction extends Action {
+ collectionResourceStoreKey: string,
+ ncfStoreKey : string;
+ serviceId : string;
+}
+
+export interface UndoDeleteActionNcfInstanceAction extends Action {
+ collectionResourceStoreKey: string,
+ ncfStoreKey: string;
+ serviceId?: string;
+}
+
+
+export const deleteActionNcfInstance: ActionCreator<DeleteActionNcfInstanceAction> = (collectionResourceStoreKey, ncfStoreKey, serviceId) => ({
+ type: NcfActions.DELETE_ACTION_NCF_INSTANCE,
+ collectionResourceStoreKey: collectionResourceStoreKey,
+ ncfStoreKey: ncfStoreKey,
+ serviceId: serviceId
+});
+
+export const undoDeleteActionNcfInstance: ActionCreator<UndoDeleteActionNcfInstanceAction> = (collectionResourceStoreKey, ncfStoreKey, serviceId) => ({
+ type: NcfActions.UNDO_DELETE_ACTION_NCF_INSTANCE,
+ collectionResourceStoreKey: collectionResourceStoreKey,
+ ncfStoreKey: ncfStoreKey,
+ serviceId: serviceId
+});
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.spec.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.spec.ts
new file mode 100644
index 000000000..ac7ab7419
--- /dev/null
+++ b/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.spec.ts
@@ -0,0 +1,64 @@
+
+import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import {ncfReducer} from "./ncf.reducer";
+import {DeleteActionNcfInstanceAction, NcfActions, UndoDeleteActionNcfInstanceAction} from "./ncf.actions";
+describe('ncfReducer', () => {
+
+ test('#DELETE_ACTION_NCF_INSTANCE', () => {
+ let ncfState = ncfReducer(<any>{
+ serviceInstance: {
+ 'serviceModelId': {
+ collectionResources: {
+ 'collectionResourceStoreKey': {
+ ncfs: {
+ 'ncfStoreKey': {
+ isMissingData: true,
+ action: 'None'
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ <DeleteActionNcfInstanceAction>{
+ type: NcfActions.DELETE_ACTION_NCF_INSTANCE,
+ collectionResourceStoreKey: 'collectionResourceStoreKey',
+ ncfStoreKey: 'ncfStoreKey',
+ serviceId: 'serviceModelId'
+ }).serviceInstance['serviceModelId']['collectionResources']['collectionResourceStoreKey']['ncfs']['ncfStoreKey'];
+
+ expect(ncfState).toBeDefined();
+ expect(ncfState.action).toEqual(ServiceInstanceActions.None_Delete);
+ });
+
+ test('#UNDO_DELETE_ACTION_NCF_INSTANCE', () => {
+ let ncfState = ncfReducer(<any>{
+ serviceInstance: {
+ 'serviceModelId': {
+ collectionResources: {
+ 'collectionResourceStoreKey': {
+ ncfs: {
+ 'ncfStoreKey': {
+ isMissingData: true,
+ action: 'Update_Delete'
+ }
+ }
+ }
+
+ }
+ }
+ }
+ },
+ <UndoDeleteActionNcfInstanceAction>{
+ type: NcfActions.UNDO_DELETE_ACTION_NCF_INSTANCE,
+ collectionResourceStoreKey: 'collectionResourceStoreKey',
+ ncfStoreKey: 'ncfStoreKey',
+ serviceId: 'serviceModelId'
+ }).serviceInstance['serviceModelId']['collectionResources']['collectionResourceStoreKey']['ncfs']['ncfStoreKey'];
+
+ expect(ncfState).toBeDefined();
+ expect(ncfState.action).toEqual(ServiceInstanceActions.Update);
+ });
+
+});
diff --git a/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.ts b/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.ts
new file mode 100644
index 000000000..9bb069e0d
--- /dev/null
+++ b/vid-webpack-master/src/app/shared/storeUtil/utils/ncf/ncf.reducer.ts
@@ -0,0 +1,26 @@
+import {ServiceState} from "../main.reducer";
+import {Action} from "redux";
+import * as _ from "lodash";
+import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
+import {NcfActions, DeleteActionNcfInstanceAction, UndoDeleteActionNcfInstanceAction} from "./ncf.actions";
+
+export function ncfReducer(state: ServiceState, action: Action): ServiceState {
+ switch (action.type) {
+ case NcfActions.DELETE_ACTION_NCF_INSTANCE : {
+ let newState = _.cloneDeep(state);
+ let ncf = newState.serviceInstance[(<DeleteActionNcfInstanceAction>action).serviceId]['collectionResources'][(<DeleteActionNcfInstanceAction>action).collectionResourceStoreKey]['ncfs'][(<DeleteActionNcfInstanceAction>action).ncfStoreKey];
+ let oldAction = ncf.action;
+ if(oldAction === ServiceInstanceActions.None_Delete || oldAction === ServiceInstanceActions.Update_Delete) return newState;
+ newState.serviceInstance[(<DeleteActionNcfInstanceAction>action).serviceId]['collectionResources'][(<DeleteActionNcfInstanceAction>action).collectionResourceStoreKey]['ncfs'][(<DeleteActionNcfInstanceAction>action).ncfStoreKey].action = (oldAction + '_Delete') as ServiceInstanceActions;
+ return newState;
+ }
+
+ case NcfActions.UNDO_DELETE_ACTION_NCF_INSTANCE : {
+ let newState = _.cloneDeep(state);
+ let ncf = newState.serviceInstance[(<UndoDeleteActionNcfInstanceAction>action).serviceId]['collectionResources'][(<DeleteActionNcfInstanceAction>action).collectionResourceStoreKey]['ncfs'][(<UndoDeleteActionNcfInstanceAction>action).ncfStoreKey];
+ let oldState = ncf.action;
+ newState.serviceInstance[(<UndoDeleteActionNcfInstanceAction>action).serviceId]['collectionResources'][(<DeleteActionNcfInstanceAction>action).collectionResourceStoreKey]['ncfs'][(<UndoDeleteActionNcfInstanceAction>action).ncfStoreKey].action = (oldState.split('_')[0]) as ServiceInstanceActions;
+ return newState;
+ }
+ }
+}