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