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