aboutsummaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/shared/storeUtil/utils/pnf/pnf.reducers.spec.ts
blob: b92495773a6d3926ab7bf0661a6e65736324120c (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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
import {
  CreatePnfInstanceAction,
  RemovePnfInstanceAction,
  UpdatePnfPosition,
  UpdatePnfInstanceAction,
  PNFActions
} from "./pnf.actions";
import {pnfReducer} from "./pnf.reducers";
import {ServiceInstanceActions} from "../../../models/serviceInstanceActions";
import {ActionOnFirstLevel} from "../firstLevel/firstLevel.actions";
import {PnfInstance} from "../../../models/pnfInstance";

describe('pnfReducer', () => {

  test('#CREATE_PNF_INSTANCE', () => {
    let pnfInstance: PnfInstance = new PnfInstance();
    pnfInstance.isMissingData = false;
    pnfInstance.instanceName = 'instanceName';
    let pnfState = pnfReducer(<any>{
        serviceInstance: {
          'serviceModelId': {
            pnfs: {}
          }
        }
      },
      <CreatePnfInstanceAction>{
        type: PNFActions.CREATE_PNF_INSTANCE,
        pnfInstance: pnfInstance,
        pnfStoreKey: null,
        pnfModelName: 'pnfModelName',
        serviceUuid: 'serviceModelId'
      }).serviceInstance['serviceModelId'].pnfs['pnfModelName'];

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

  test('#UPDATE_PNF_INSTANCE_NAME', () => {
    let newInstanceName: string = "newInstanceName"
    let pnfInstance: PnfInstance = new PnfInstance();
    pnfInstance.isMissingData = false;
    pnfInstance.instanceName = newInstanceName;

    let pnfState = pnfReducer(<any>{
        serviceInstance: {
          'serviceModelId': {
            pnfs: {
              "pnfStoreKey": {
                instanceName: 'oldInstanceName'
              }
            },
            existingNames: {
              'oldinstancename': {}
            }
          }
        }
      },
      <UpdatePnfInstanceAction>{
        type: PNFActions.UPDATE_PNF_INSTANCE,
        pnfInstance: pnfInstance,
        pnfStoreKey: 'pnfStoreKey',
        pnfModelName: 'pnfModelName',
        serviceUuid: 'serviceModelId'
      }).serviceInstance['serviceModelId'];

    expect(pnfState).toBeDefined();
    expect(pnfState.pnfs['pnfStoreKey'].instanceName).toEqual(newInstanceName);
    expect(newInstanceName.toLowerCase() in pnfState.existingNames).toBeTruthy();
  });

  test('#DELETE_ACTION_PNF_INSTANCE', () => {
    let pnfState = pnfReducer(<any>{
        serviceInstance: {
          'serviceModelId': {
            pnfs: {
              'pnfStoreKey': {
                isMissingData: true,
                action: 'None'
              }
            }
          }
        }
      },
      <ActionOnFirstLevel>{
        type: PNFActions.DELETE_ACTION_PNF_INSTANCE,
        firstLevelName: 'pnfs',
        storeKey: 'pnfStoreKey',
        serviceId: 'serviceModelId'
      }).serviceInstance['serviceModelId'].pnfs['pnfStoreKey'];

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

  test('#UNDO_DELETE_ACTION_PNF_INSTANCE', () => {
    let pnfState = pnfReducer(<any>{
        serviceInstance: {
          'serviceModelId': {
            pnfs: {
              'pnfStoreKey': {
                isMissingData: true,
                action: 'Update_Delete'
              }
            }
          }
        }
      },
      <ActionOnFirstLevel>{
        type: PNFActions.UNDO_DELETE_ACTION_PNF_INSTANCE,
        storeKey: 'pnfStoreKey',
        firstLevelName: 'pnfs',
        serviceId: 'serviceModelId'
      }).serviceInstance['serviceModelId'].pnfs['pnfStoreKey'];

    expect(pnfState).toBeDefined();
    expect(pnfState.action).toEqual(ServiceInstanceActions.Update);
  });

  test('#REMOVE_PNF_INSTANCE', () => {
    let pnfs = pnfReducer(<any>{
        serviceInstance: {
          'serviceModelId': {
            pnfs: {
              'pnfStoreKey': {
                isMissingData: true,
                action: 'Update_Delete'
              },
              'pnfStoreKey_1': {
                isMissingData: true,
                action: 'Update_Delete'
              }
            }
          }
        }
      },
      <RemovePnfInstanceAction>{
        type: PNFActions.REMOVE_PNF_INSTANCE,
        pnfStoreKey: 'pnfStoreKey',
        serviceId: 'serviceModelId'
      }).serviceInstance['serviceModelId'].pnfs;

    expect(pnfs).toBeDefined();
    expect(pnfs['pnfStoreKey']).toBeUndefined();
    expect(pnfs['pnfStoreKey_1']).toBeDefined();
  });

  test('#UPDATE_PNF_POSITION', () => {
    let pnfInstance: PnfInstance = new PnfInstance();
    pnfInstance.isMissingData = false;
    pnfInstance.instanceName = 'instanceName';
    let pnfState = pnfReducer(<any>{
        serviceInstance: {
          'serviceModelId': {
            pnfs: {
              "pnfStoreKey": {}
            }
          }
        }
      },
      <UpdatePnfPosition>{
        type: PNFActions.UPDATE_PNF_POSITION,
        node: <any>{
          position: 2
        },
        pnfStoreKey: 'pnfStoreKey',
        instanceId: 'serviceModelId'
      }).serviceInstance['serviceModelId'].pnfs['pnfStoreKey'];

    expect(pnfState).toBeDefined();
    expect(pnfState.position).toEqual(2);
  });
});