summaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/shared/storeUtil/utils/vnfGroup/vnfGroup.reducers.spec.ts
blob: 16c1c45cd4e87867265aa21a04280e53d5d8122d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
import {VnfGroupInstance} from "../../../models/vnfGroupInstance";
import {
  CreateVnfGroupInstanceAction,
  DeleteActionVnfGroupInstanceAction,
  SetOptionalMembersVnfGroupInstanceAction,
  UpdateVnfGroupInstanceAction,
  VnfGroupActions
} from "./vnfGroup.actions";
import {vnfGroupReducer} from "./vnfGroup.reducers";
import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
import {VnfMember} from "../../../models/VnfMember";


describe('vnfGroupReducer', () => {
  test('#CREATE_VNF_GROUP_INSTANCE', () => {
    let vnfGroupInstance: VnfGroupInstance = new VnfGroupInstance();
    vnfGroupInstance.isMissingData = false;
    vnfGroupInstance.instanceName = 'instanceName';
    let vnfGroupState = vnfGroupReducer(<any>{serviceInstance : {
          'serviceModelId' : {
            vnfGroups : {

            }
          }
        }},
      <CreateVnfGroupInstanceAction>{
        type: VnfGroupActions.CREATE_VNF_GROUP_INSTANCE,
        vnfGroupInstance : vnfGroupInstance,
        vnfGroupStoreKey : null,
        vnfGroupModelName : 'vnfGroupModelName',
        serviceUuid : 'serviceModelId'
      }).serviceInstance['serviceModelId'].vnfGroups['vnfGroupModelName'];

    expect(vnfGroupState).toBeDefined();
    expect(vnfGroupState.isMissingData).toBeFalsy();
  });

  test('#UPDATE_VNF_GROUP_INSTANCE', () => {
    let vnfGroupInstance: VnfGroupInstance = new VnfGroupInstance();
    vnfGroupInstance.isMissingData = false;
    vnfGroupInstance.instanceName = 'instanceName';
    let vnfGroupState = vnfGroupReducer(<any>{serviceInstance : {
        'serviceModelId' : {
          vnfGroups : {
            'vnfGroupStoreKey' : {
              isMissingData : true
            }
          }
        }
      }},
      <UpdateVnfGroupInstanceAction>{
        type: VnfGroupActions.UPDATE_VNF_GROUP_INSTANCE,
        vnfGroupInstance : new VnfGroupInstance(),
        vnfGroupStoreKey : 'vnfGroupStoreKey',
        vnfGroupModelName : 'vnfGroupModelName',
        serviceUuid : 'serviceModelId'
      }).serviceInstance['serviceModelId'].vnfGroups['vnfGroupStoreKey'];

    expect(vnfGroupState).toBeDefined();
    expect(vnfGroupState.isMissingData).toBeFalsy();
  });

  test('#DELETE_ACTION_VNF_GROUP_INSTANCE', () => {
    let vnfGroupInstance: VnfGroupInstance = new VnfGroupInstance();
    vnfGroupInstance.isMissingData = false;
    vnfGroupInstance.instanceName = 'instanceName';
    vnfGroupInstance.action = ServiceInstanceActions.None;
    let vnfGroupState = vnfGroupReducer(<any>{serviceInstance : {
        'serviceModelId' : {
          vnfGroups : {
            'vnfGroupStoreKey' : {
              isMissingData : true,
              action : 'None'
            }
          }
        }
      }},
      <DeleteActionVnfGroupInstanceAction>{
        type: VnfGroupActions.DELETE_ACTION_VNF_GROUP_INSTANCE,
        vnfGroupStoreKey: 'vnfGroupStoreKey',
        serviceId: 'serviceModelId'
      }).serviceInstance['serviceModelId'].vnfGroups['vnfGroupStoreKey'];

    expect(vnfGroupState).toBeDefined();
    expect(vnfGroupState.action).toEqual(ServiceInstanceActions.None_Delete);
  });

  test('#UNDO_DELETE_ACTION_VNF_GROUP_INSTANCE', () => {
    let vnfGroupInstance: VnfGroupInstance = new VnfGroupInstance();
    vnfGroupInstance.isMissingData = false;
    vnfGroupInstance.instanceName = 'instanceName';
    vnfGroupInstance.action = ServiceInstanceActions.None_Delete;
    let vnfGroupState = vnfGroupReducer(<any>{serviceInstance : {
          'serviceModelId' : {
            vnfGroups : {
              'vnfGroupStoreKey' : {
                isMissingData : true,
                action : 'None_Delete'
              }
            }
          }
        }},
      <DeleteActionVnfGroupInstanceAction>{
        type: VnfGroupActions.UNDO_DELETE_ACTION_VNF_GROUP_INSTANCE,
        vnfGroupStoreKey: 'vnfGroupStoreKey',
        serviceId: 'serviceModelId'
      }).serviceInstance['serviceModelId'].vnfGroups['vnfGroupStoreKey'];

    expect(vnfGroupState).toBeDefined();
    expect(vnfGroupState.action).toEqual(ServiceInstanceActions.None);
  });

  test('#SET_OPTIONAL_MEMBERS_VNF_GROUP_INSTANCE', () => {
    let vnf1: VnfMember = new VnfMember();
    vnf1.serviceInstanceId = 'aa';
    vnf1.instanceId = 'aaa';
    let vnf2: VnfMember = new VnfMember();
    vnf2.serviceInstanceId = 'bb';
    vnf2.instanceId = 'bbb';
    let optionalGroupMembersMap = vnfGroupReducer(<any>{
        serviceInstance: {
          'serviceModelId': {
            optionalGroupMembersMap : {}
          }
        }
      },
      <SetOptionalMembersVnfGroupInstanceAction>{
        type: VnfGroupActions.SET_OPTIONAL_MEMBERS_VNF_GROUP_INSTANCE,
        path: 'path1',
        serviceId: 'serviceModelId',
        vnfMembers: [vnf1, vnf2]
      }).serviceInstance['serviceModelId'].optionalGroupMembersMap;

    optionalGroupMembersMap['path1']= [vnf1, vnf2];
    expect(optionalGroupMembersMap).toEqual({'path1':[vnf1, vnf2]});
  });
});