Merged DSA into the Engine Mgmt Module
[holmes/engine-management.git] / engine-d / src / test / java / org / onap / holmes / dsa / dmaappolling / DMaaPResponseUtilTest.java
1 /*
2  * Copyright 2017 ZTE Corporation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.onap.holmes.dsa.dmaappolling;
17
18 import com.alibaba.fastjson.JSONException;
19 import org.junit.Before;
20 import org.junit.Rule;
21 import org.junit.Test;
22 import org.junit.rules.ExpectedException;
23 import org.onap.holmes.common.api.stat.AlarmAdditionalField;
24 import org.onap.holmes.common.api.stat.VesAlarm;
25 import org.onap.holmes.dsa.dmaappolling.DMaaPResponseUtil;
26 import org.powermock.core.classloader.annotations.PrepareForTest;
27
28 import java.io.IOException;
29 import java.util.ArrayList;
30 import java.util.List;
31
32 import static org.hamcrest.CoreMatchers.equalTo;
33 import static org.junit.Assert.assertThat;
34
35
36 @PrepareForTest(DMaaPResponseUtil.class)
37 public class DMaaPResponseUtilTest {
38
39     @Rule
40     public ExpectedException thrown = ExpectedException.none();
41
42     private DMaaPResponseUtil dMaaPResponseUtil;
43
44     @Before
45     public void setUp() {
46         dMaaPResponseUtil = new DMaaPResponseUtil();
47     }
48
49     @Test
50     public void testDMaaPResponseUtil_input_normal() throws IOException {
51         String json = "{\"event\":{"
52                 + "\"commonEventHeader\":{"
53                 + "\"domain\":\"fault\","
54                 + "\"eventId\":\"112355255-24345\","
55                 + "\"eventName\":\"4333454333\","
56                 + "\"eventType\":\"remote\","
57                 + "\"lastEpochMicrosec\":333434333,"
58                 + "\"nfcNamingCode\":\"567422\","
59                 + "\"nfNamingCode\":\"qweertrr\","
60                 + "\"priority\":\"High\","
61                 + "\"reportingEntityId\":\"99888888888\","
62                 + "\"reportingEntityName\":\"tianshisdlsdjf\","
63                 + "\"sequence\":34566,"
64                 + "\"sourceId\":\"3345556444\","
65                 + "\"sourceName\":\"nihoahh\","
66                 + "\"startEpochMicrosec\":54545454,"
67                 + "\"version\":998989879"
68                 + "},"
69                 + "\"faultFields\":{"
70                 + "\"alarmAdditionalInformation\":["
71                 + "{"
72                 + "\"name\":\"niaho\","
73                 + "\"value\":\"1111\""
74                 + "},"
75                 + "{"
76                 + "\"name\":\"tian\","
77                 + "\"value\":\"22222\""
78                 + "}"
79                 + "],"
80                 + "\"alarmCondition\":\"fadilel\","
81                 + "\"alarmInterfaceA\":\"generating the alarm\","
82                 + "\"eventCategory\":\"Event category\","
83                 + "\"eventSeverity\":\"CRITICAL\","
84                 + "\"eventSourceType\":\"type of event source\","
85                 + "\"faultFieldsVersion\":567567567,"
86                 + "\"specificProblem\":\"short description\","
87                 + "\"vfStatus\":\"Preparing to terminate\""
88                 + "}"
89                 + "}"
90                 + "}";
91         VesAlarm expected = new VesAlarm();
92         expected.setDomain("fault");
93         expected.setEventId("112355255-24345");
94         expected.setEventName("4333454333");
95         expected.setEventType("remote");
96         expected.setLastEpochMicrosec((long) 333434333);
97         expected.setNfcNamingCode("567422");
98         expected.setNfNamingCode("qweertrr");
99         expected.setPriority("High");
100         expected.setReportingEntityId("99888888888");
101         expected.setReportingEntityName("tianshisdlsdjf");
102         expected.setSequence(34566);
103         expected.setSourceId("3345556444");
104         expected.setSourceName("nihoahh");
105         expected.setStartEpochMicrosec((long) 54545454);
106         expected.setVersion((long) 998989879);
107
108         List<AlarmAdditionalField> alarmAdditionalFields = new ArrayList<>();
109         AlarmAdditionalField alarmAdditionalField1 = new AlarmAdditionalField();
110         alarmAdditionalField1.setName("niaho");
111         alarmAdditionalField1.setName("1111");
112         alarmAdditionalFields.add(alarmAdditionalField1);
113         AlarmAdditionalField alarmAdditionalField2 = new AlarmAdditionalField();
114         alarmAdditionalField2.setName("tian");
115         alarmAdditionalField2.setName("22222");
116         alarmAdditionalFields.add(alarmAdditionalField2);
117         expected.setAlarmAdditionalInformation(alarmAdditionalFields);
118
119         expected.setAlarmCondition("fadilel");
120         expected.setAlarmInterfaceA("generating the alarm");
121         expected.setEventCategory("Event category");
122         expected.setEventSeverity("CRITICAL");
123         expected.setEventSourceType("type of event source");
124         expected.setFaultFieldsVersion((long) 567567567);
125         expected.setSpecificProblem("short description");
126         expected.setVfStatus("Preparing to terminate");
127
128         VesAlarm result = dMaaPResponseUtil.convertJsonToVesAlarm(json);
129
130         assertThat(expected.getDomain(), equalTo(result.getDomain()));
131         assertThat(expected.getEventId(), equalTo(result.getEventId()));
132         assertThat(expected.getEventName(), equalTo(result.getEventName()));
133         assertThat(expected.getEventType(), equalTo(result.getEventType()));
134         assertThat(expected.getLastEpochMicrosec(), equalTo(result.getLastEpochMicrosec()));
135         assertThat(expected.getNfcNamingCode(), equalTo(result.getNfcNamingCode()));
136         assertThat(expected.getNfNamingCode(), equalTo(result.getNfNamingCode()));
137         assertThat(expected.getPriority(), equalTo(result.getPriority()));
138         assertThat(expected.getReportingEntityId(), equalTo(result.getReportingEntityId()));
139         assertThat(expected.getReportingEntityName(), equalTo(result.getReportingEntityName()));
140         assertThat(expected.getSequence(), equalTo(result.getSequence()));
141         assertThat(expected.getSourceId(), equalTo(result.getSourceId()));
142         assertThat(expected.getSourceName(), equalTo(result.getSourceName()));
143         assertThat(expected.getStartEpochMicrosec(), equalTo(result.getStartEpochMicrosec()));
144         assertThat(expected.getVersion(), equalTo(result.getVersion()));
145
146         assertThat(expected.getAlarmCondition(), equalTo(result.getAlarmCondition()));
147         assertThat(expected.getAlarmInterfaceA(), equalTo(result.getAlarmInterfaceA()));
148         assertThat(expected.getEventCategory(), equalTo(result.getEventCategory()));
149         assertThat(expected.getEventSeverity(), equalTo(result.getEventSeverity()));
150         assertThat(expected.getEventSourceType(), equalTo(result.getEventSourceType()));
151         assertThat(expected.getFaultFieldsVersion(), equalTo(result.getFaultFieldsVersion()));
152         assertThat(expected.getSpecificProblem(), equalTo(result.getSpecificProblem()));
153         assertThat(expected.getVfStatus(), equalTo(result.getVfStatus()));
154
155     }
156
157     @Test
158     public void testDMaaPResponseUtil_throws_nullPointerException() throws Exception {
159         String json = "{}";
160         thrown.expect(NullPointerException.class);
161         dMaaPResponseUtil.convertJsonToVesAlarm(json);
162     }
163
164     @Test
165     public void testDMaaPResponseUtil_input_illegal() throws Exception {
166         String json = "***";
167         thrown.expect(JSONException.class);
168         dMaaPResponseUtil.convertJsonToVesAlarm(json);
169     }
170
171     @Test
172     public void testDMaaPResponseUtil_only_necessary_information() throws IOException {
173         String json = "{\"event\":{"
174                 + "\"commonEventHeader\":{"
175                 + "\"domain\":\"fault\","
176                 + "\"eventId\":\"112355255-24345\","
177                 + "\"eventName\":\"4333454333\","
178                 + "\"eventType\":\"remote\","
179                 + "\"lastEpochMicrosec\":333434333,"
180                 + "\"priority\":\"High\","
181                 + "\"reportingEntityName\":\"tianshisdlsdjf\","
182                 + "\"sequence\":34566,"
183                 + "\"sourceName\":\"nihoahh\","
184                 + "\"startEpochMicrosec\":54545454,"
185                 + "\"version\":998989879"
186                 + "},"
187                 + "\"faultFields\":{"
188                 + "\"alarmAdditionalInformation\":["
189                 + "{"
190                 + "\"name\":\"niaho\","
191                 + "\"value\":\"1111\""
192                 + "},"
193                 + "{"
194                 + "\"name\":\"tian\","
195                 + "\"value\":\"22222\""
196                 + "}"
197                 + "],"
198                 + "\"alarmCondition\":\"fadilel\","
199                 + "\"eventSeverity\":\"CRITICAL\","
200                 + "\"eventSourceType\":\"type of event source\","
201                 + "\"faultFieldsVersion\":567567567,"
202                 + "\"specificProblem\":\"short description\","
203                 + "\"vfStatus\":\"Preparing to terminate\""
204                 + "}"
205                 + "}"
206                 + "}";
207         VesAlarm expected = new VesAlarm();
208         expected.setDomain("fault");
209         expected.setEventId("112355255-24345");
210         expected.setEventName("4333454333");
211         expected.setPriority("High");
212         expected.setReportingEntityName("tianshisdlsdjf");
213         expected.setSequence(34566);
214         expected.setSourceName("nihoahh");
215         expected.setStartEpochMicrosec((long) 54545454);
216         expected.setVersion((long) 998989879);
217
218         List<AlarmAdditionalField> alarmAdditionalFields = new ArrayList<>();
219         AlarmAdditionalField alarmAdditionalField1 = new AlarmAdditionalField();
220         alarmAdditionalField1.setName("niaho");
221         alarmAdditionalField1.setName("1111");
222         alarmAdditionalFields.add(alarmAdditionalField1);
223         AlarmAdditionalField alarmAdditionalField2 = new AlarmAdditionalField();
224         alarmAdditionalField2.setName("tian");
225         alarmAdditionalField2.setName("22222");
226         alarmAdditionalFields.add(alarmAdditionalField2);
227         expected.setAlarmAdditionalInformation(alarmAdditionalFields);
228
229         expected.setAlarmCondition("fadilel");
230         expected.setEventSeverity("CRITICAL");
231         expected.setEventSourceType("type of event source");
232         expected.setFaultFieldsVersion((long) 567567567);
233         expected.setSpecificProblem("short description");
234         expected.setVfStatus("Preparing to terminate");
235
236         VesAlarm result = dMaaPResponseUtil.convertJsonToVesAlarm(json);
237
238         assertThat(expected.getDomain(), equalTo(result.getDomain()));
239         assertThat(expected.getEventId(), equalTo(result.getEventId()));
240         assertThat(expected.getEventName(), equalTo(result.getEventName()));
241         assertThat(expected.getPriority(), equalTo(result.getPriority()));
242         assertThat(expected.getReportingEntityName(), equalTo(result.getReportingEntityName()));
243         assertThat(expected.getSequence(), equalTo(result.getSequence()));
244         assertThat(expected.getSourceName(), equalTo(result.getSourceName()));
245         assertThat(expected.getStartEpochMicrosec(), equalTo(result.getStartEpochMicrosec()));
246         assertThat(expected.getVersion(), equalTo(result.getVersion()));
247
248         assertThat(expected.getAlarmCondition(), equalTo(result.getAlarmCondition()));
249         assertThat(expected.getEventSeverity(), equalTo(result.getEventSeverity()));
250         assertThat(expected.getEventSourceType(), equalTo(result.getEventSourceType()));
251         assertThat(expected.getFaultFieldsVersion(), equalTo(result.getFaultFieldsVersion()));
252         assertThat(expected.getSpecificProblem(), equalTo(result.getSpecificProblem()));
253         assertThat(expected.getVfStatus(), equalTo(result.getVfStatus()));
254     }
255
256     @Test
257     public void testDMaaPResponseUtil_input_array_illegal() throws IOException {
258         String json = "{\"event\":{"
259                 + "\"commonEventHeader\":{"
260                 + "\"domain\":\"fault\","
261                 + "\"eventId\":\"112355255-24345\","
262                 + "\"eventName\":\"4333454333\","
263                 + "\"eventType\":\"remote\","
264                 + "\"lastEpochMicrosec\":333434333,"
265                 + "\"priority\":\"High\","
266                 + "\"reportingEntityName\":\"tianshisdlsdjf\","
267                 + "\"sequence\":34566,"
268                 + "\"sourceName\":\"nihoahh\","
269                 + "\"startEpochMicrosec\":54545454,"
270                 + "\"version\":998989879"
271                 + "},"
272                 + "\"faultFields\":{"
273                 + "\"alarmAdditionalInformation\":["
274                 + "{"
275                 + "\"nam\":\"niaho\","
276                 + "\"value\":\"1111\""
277                 + "},"
278                 + "{"
279                 + "\"name\":\"tian\","
280                 + "\"value\":\"22222\""
281                 + "}"
282                 + "],"
283                 + "\"alarmCondition\":\"fadilel\","
284                 + "\"eventSeverity\":\"CRITICAL\","
285                 + "\"eventSourceType\":\"type of event source\","
286                 + "\"faultFieldsVersion\":567567567,"
287                 + "\"specificProblem\":\"short description\","
288                 + "\"vfStatus\":\"Preparing to terminate\""
289                 + "}"
290                 + "}"
291                 + "}";
292         VesAlarm expected = new VesAlarm();
293         expected.setDomain("fault");
294         expected.setEventId("112355255-24345");
295         expected.setEventName("4333454333");
296         expected.setPriority("High");
297         expected.setReportingEntityName("tianshisdlsdjf");
298         expected.setSequence(34566);
299         expected.setSourceName("nihoahh");
300         expected.setStartEpochMicrosec((long) 54545454);
301         expected.setVersion((long) 998989879);
302
303         List<AlarmAdditionalField> alarmAdditionalFields = new ArrayList<>();
304         AlarmAdditionalField alarmAdditionalField = new AlarmAdditionalField();
305         alarmAdditionalField.setName("tian");
306         alarmAdditionalField.setValue("22222");
307         alarmAdditionalFields.add(alarmAdditionalField);
308         expected.setAlarmAdditionalInformation(alarmAdditionalFields);
309
310         expected.setAlarmCondition("fadilel");
311         expected.setEventSeverity("CRITICAL");
312         expected.setEventSourceType("type of event source");
313         expected.setFaultFieldsVersion((long) 567567567);
314         expected.setSpecificProblem("short description");
315         expected.setVfStatus("Preparing to terminate");
316
317         VesAlarm result = dMaaPResponseUtil.convertJsonToVesAlarm(json);
318
319         assertThat(expected.getDomain(), equalTo(result.getDomain()));
320         assertThat(expected.getEventId(), equalTo(result.getEventId()));
321         assertThat(expected.getEventName(), equalTo(result.getEventName()));
322         assertThat(expected.getPriority(), equalTo(result.getPriority()));
323         assertThat(expected.getReportingEntityName(), equalTo(result.getReportingEntityName()));
324         assertThat(expected.getSequence(), equalTo(result.getSequence()));
325         assertThat(expected.getSourceName(), equalTo(result.getSourceName()));
326         assertThat(expected.getStartEpochMicrosec(), equalTo(result.getStartEpochMicrosec()));
327         assertThat(expected.getVersion(), equalTo(result.getVersion()));
328
329         assertThat(expected.getAlarmAdditionalInformation().get(0).getName(),
330                 equalTo(result.getAlarmAdditionalInformation().get(0).getName()));
331         assertThat(expected.getAlarmAdditionalInformation().get(0).getValue(),
332                 equalTo(result.getAlarmAdditionalInformation().get(0).getValue()));
333
334         assertThat(expected.getAlarmCondition(), equalTo(result.getAlarmCondition()));
335         assertThat(expected.getEventSeverity(), equalTo(result.getEventSeverity()));
336         assertThat(expected.getEventSourceType(), equalTo(result.getEventSourceType()));
337         assertThat(expected.getFaultFieldsVersion(), equalTo(result.getFaultFieldsVersion()));
338         assertThat(expected.getSpecificProblem(), equalTo(result.getSpecificProblem()));
339         assertThat(expected.getVfStatus(), equalTo(result.getVfStatus()));
340     }
341 }