b4230d68bcf38e075c08e9a14b69cf04dcdbd840
[dcaegen2/services/mapper.git] /
1 /*\r
2 * ============LICENSE_START=======================================================\r
3 * ONAP : DCAE\r
4 * ================================================================================\r
5 * Copyright 2018 TechMahindra\r
6 *=================================================================================\r
7 * Licensed under the Apache License, Version 2.0 (the "License");\r
8 * you may not use this file except in compliance with the License.\r
9 * You may obtain a copy of the License at\r
10 *\r
11 *     http://www.apache.org/licenses/LICENSE-2.0\r
12 *\r
13 * Unless required by applicable law or agreed to in writing, software\r
14 * distributed under the License is distributed on an "AS IS" BASIS,\r
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16 * See the License for the specific language governing permissions and\r
17 * limitations under the License.\r
18 * ============LICENSE_END=========================================================\r
19 */\r
20 package org.onap.universalvesadapter.adapter;\r
21 \r
22 import static org.junit.Assert.assertNotEquals;\r
23 import static org.junit.Assert.assertNotNull;\r
24 \r
25 import java.util.HashMap;\r
26 import java.util.Map;\r
27 \r
28 import org.junit.Before;\r
29 import org.junit.Ignore;\r
30 import org.junit.Test;\r
31 import org.junit.runner.RunWith;\r
32 import org.mockito.InjectMocks;\r
33 import org.mockito.Mock;\r
34 import org.mockito.MockitoAnnotations;\r
35 import org.onap.universalvesadapter.Application;\r
36 import org.onap.universalvesadapter.exception.VesException;\r
37 import org.onap.universalvesadapter.service.VESAdapterInitializer;\r
38 import org.slf4j.Logger;\r
39 import org.slf4j.LoggerFactory;\r
40 import org.springframework.boot.test.context.SpringBootTest;\r
41 import org.springframework.test.context.junit4.SpringRunner;\r
42 \r
43 @RunWith(SpringRunner.class)\r
44 @SpringBootTest(classes=Application.class)\r
45 @Ignore\r
46 public class UniversalEventAdapterTest  {\r
47                 \r
48          private static final Logger errorLogger = LoggerFactory.getLogger("errorLogger");\r
49     \r
50     @Mock\r
51     private VESAdapterInitializer vESAdapterInitializer;  \r
52     \r
53     @InjectMocks\r
54     private UniversalEventAdapter universalVesAdapter;\r
55     \r
56     \r
57     @Before\r
58     public void init() {\r
59         MockitoAnnotations.initMocks(this);\r
60     } \r
61         \r
62     \r
63         \r
64     @Test\r
65         public void testtransform()  {\r
66         StringBuffer incomingJsonString = new StringBuffer("{ ")\r
67                 .append("\"protocol version\":\"v2c\", ") \r
68                 .append("\"notify OID\":\".1.3.6.1.4.1.1751.2.46.12.1.1\", ")\r
69                 .append("\"cambria.partition\":\"dcae-snmp.client.research.att.com\", ")\r
70                 .append("\"trap category\":\"UCSNMP-HEARTBEAT\", ")\r
71                 .append("\"epoch_serno\": 15161177410000, ")\r
72                 .append("\"community\":\"public\", ")\r
73                 .append("\"time received\": 1516117741, ")\r
74                 .append("\"agent name\":\"localhost\", ")\r
75                 .append("\"agent address\":\"127.0.0.1\", ")\r
76                 .append("\"community len\": 6, ")\r
77                 .append("\"notify OID len\": 12, ")\r
78                 .append("\"varbinds\": [{ ")\r
79                 .append("    \"varbind_type\":\"octet\", ")\r
80                 .append("    \"varbind_oid\":\".1.3.6.1.4.1.74.2.46.12.1.1.1\", ")\r
81                 .append("    \"varbind_value\":\"ucsnmp heartbeat - ignore\" ")\r
82                 .append(" }, { ")\r
83                 .append("    \"varbind_type\":\"octet\", ")\r
84                 .append("    \"varbind_oid\":\".1.3.6.1.4.1.74.2.46.12.1.1.2\", ")\r
85                 .append("    \"varbind_value\":\"Tue Jan 16 10:49:01 EST 2018\" ")\r
86                 .append(" }] ")\r
87                 .append("}");\r
88         \r
89         Map<String,String> testMap=new HashMap<String,String>();\r
90         testMap.put("defaultSnmpMappingFile", "<?xml version=\"1.0\"?>\r\n" + \r
91                         "<smooks-resource-list\r\n" + \r
92                         "        xmlns=\"http://www.milyn.org/xsd/smooks-1.1.xsd\"\r\n" + \r
93                         "        xmlns:json=\"http://www.milyn.org/xsd/smooks/json-1.1.xsd\"\r\n" + \r
94                         "        xmlns:jb=\"http://www.milyn.org/xsd/smooks/javabean-1.4.xsd\">\r\n" + \r
95                         "    <json:reader rootName=\"vesevent\"  keyWhitspaceReplacement=\"-\">\r\n" + \r
96                         "    <json:keyMap>\r\n" + \r
97                         "               <json:key from=\"date&amp;time\" to=\"date-and-time\" />\r\n" + \r
98                         "           </json:keyMap>\r\n" + \r
99                         "       </json:reader>\r\n" + \r
100                         "   \r\n" + \r
101                         "     <jb:bean class=\"org.onap.dcaegen2.ves.domain.VesEvent\" beanId=\"vesEvent\" createOnElement=\"vesevent\">\r\n" + \r
102                         "       <jb:wiring property=\"event\" beanIdRef=\"event\"/>\r\n" + \r
103                         "    </jb:bean>\r\n" + \r
104                         " \r\n" + \r
105                         "     <jb:bean class=\"org.onap.dcaegen2.ves.domain.Event\" beanId=\"event\" createOnElement=\"vesevent\">\r\n" + \r
106                         "       <jb:wiring property=\"commonEventHeader\" beanIdRef=\"commonEventHeader\"/>\r\n" + \r
107                         "       <jb:wiring property=\"faultFields\" beanIdRef=\"faultFields\"/>         \r\n" + \r
108                         "       <!--<jb:wiring property=\"measurementsForVfScalingFields\" beanIdRef=\"measurementsForVfScalingFields\"/> -->           \r\n" + \r
109                         "    </jb:bean>   \r\n" + \r
110                         "    <!--<jb:bean class=\"org.onap.dcaegen2.ves.domain.MeasurementsForVfScalingFields\" beanId=\"measurementsForVfScalingFields\" createOnElement=\"simple\">\r\n" + \r
111                         "       <jb:wiring property=\"additionalMeasurements\" beanIdRef=\"additionalMeasurements\"/>\r\n" + \r
112                         "    </jb:bean>-->\r\n" + \r
113                         "    \r\n" + \r
114                         "    <jb:bean class=\"org.onap.dcaegen2.ves.domain.CommonEventHeader\" beanId=\"commonEventHeader\" createOnElement=\"vesevent\">\r\n" + \r
115                         "               <jb:expression property=\"version\">\"3.0\"</jb:expression>\r\n" + \r
116                         "               <jb:expression property=\"eventId\">\"XXXX\"</jb:expression>\r\n" + \r
117                         "               <jb:expression property=\"reportingEntityName\">\"VesAdapter\"</jb:expression>\r\n" + \r
118                         "               <jb:expression property=\"domain\">\"fault\"</jb:expression>\r\n" + \r
119                         "               <jb:expression property=\"eventName\" execOnElement=\"vesevent\" >commonEventHeader.domain+\"_\"+commonEventHeader.reportingEntityName +\"_\"+ faultFields.alarmCondition;</jb:expression>\r\n" + \r
120                         "       <jb:value property=\"sequence\" data=\"0\" default=\"0\" decoder=\"Long\"/>\r\n" + \r
121                         "       <jb:value property=\"lastEpochMicrosec\" data=\"#/time-received\"  decoder=\"Double\" />\r\n" + \r
122                         "       <jb:value property=\"startEpochMicrosec\" data=\"#/time-received\"  decoder=\"Double\"/>\r\n" + \r
123                         "               <jb:expression property=\"priority\">\"Medium\"</jb:expression>\r\n" + \r
124                         "       <jb:expression property=\"sourceName\">\"VesAdapter\"</jb:expression>\r\n" + \r
125                         "    </jb:bean>   \r\n" + \r
126                         "    \r\n" + \r
127                         "    <jb:bean class=\"org.onap.dcaegen2.ves.domain.FaultFields\" beanId=\"faultFields\" createOnElement=\"vesevent\">\r\n" + \r
128                         "       <jb:value property=\"alarmCondition\" data=\"#/trap-category\" />\r\n" + \r
129                         "               <jb:expression property=\"eventSeverity\">\"MINOR\"</jb:expression>\r\n" + \r
130                         "               <jb:expression property=\"eventSourceType\">\"SNMP Agent\"</jb:expression>\r\n" + \r
131                         "       <jb:expression property=\"specificProblem\">\"SNMP Fault\"</jb:expression>\r\n" + \r
132                         "       <jb:value property=\"faultFieldsVersion\" data=\"2.0\" default=\"2.0\" decoder=\"Double\" />\r\n" + \r
133                         "       <jb:wiring property=\"alarmAdditionalInformation\" beanIdRef=\"alarmAdditionalInformationroot\"/>   \r\n" + \r
134                         "               <jb:expression property=\"vfStatus\">\"Active\"</jb:expression>\r\n" + \r
135                         "       \r\n" + \r
136                         "    </jb:bean>  \r\n" + \r
137                         "     <jb:bean class=\"java.util.ArrayList\" beanId=\"alarmAdditionalInformationroot\" createOnElement=\"vesevent\">\r\n" + \r
138                         "       <jb:wiring beanIdRef=\"alarmAdditionalInformation\"/>\r\n" + \r
139                         "    </jb:bean>\r\n" + \r
140                         "    \r\n" + \r
141                         "      <jb:bean class=\"org.onap.dcaegen2.ves.domain.AlarmAdditionalInformation\" beanId=\"alarmAdditionalInformation\" createOnElement=\"varbinds/element\">\r\n" + \r
142                         "       <jb:value property=\"name\" data=\"#/varbind_oid\"/>\r\n" + \r
143                         "        <jb:value property=\"value\" data=\"#/varbind_value\" />\r\n" + \r
144                         "    </jb:bean>\r\n" + \r
145                         "       <!--<jb:bean class=\"java.util.ArrayList\" beanId=\"additionalMeasurements\" createOnElement=\"simple\">\r\n" + \r
146                         "       <jb:wiring beanIdRef=\"additionalMeasurement\"/>\r\n" + \r
147                         "    </jb:bean>    \r\n" + \r
148                         "    \r\n" + \r
149                         "    <jb:bean class=\"org.onap.dcaegen2.ves.domain.AdditionalMeasurement\" beanId=\"additionalMeasurement\" createOnElement=\"varbinds/element\">\r\n" + \r
150                         "       <jb:value property=\"name\" data=\"#/varbind_value\" />\r\n" + \r
151                         "    </jb:bean>  -->  \r\n" + \r
152                         "    \r\n" + \r
153                         "</smooks-resource-list>");\r
154         testMap.put(".1.3.6.1.4.1.1751.2.46.12", "<?xml version=\"1.0\"?>\r\n" + \r
155                         "<smooks-resource-list\r\n" + \r
156                         "        xmlns=\"http://www.milyn.org/xsd/smooks-1.1.xsd\"\r\n" + \r
157                         "        xmlns:json=\"http://www.milyn.org/xsd/smooks/json-1.1.xsd\"\r\n" + \r
158                         "        xmlns:jb=\"http://www.milyn.org/xsd/smooks/javabean-1.4.xsd\">\r\n" + \r
159                         "    <json:reader rootName=\"vesevent\"  keyWhitspaceReplacement=\"-\">\r\n" + \r
160                         "    <json:keyMap>\r\n" + \r
161                         "               <json:key from=\"date&amp;time\" to=\"date-and-time\" />\r\n" + \r
162                         "           </json:keyMap>\r\n" + \r
163                         "       </json:reader>\r\n" + \r
164                         "   \r\n" + \r
165                         "     <jb:bean class=\"org.onap.dcaegen2.ves.domain.VesEvent\" beanId=\"vesEvent\" createOnElement=\"vesevent\">\r\n" + \r
166                         "       <jb:wiring property=\"event\" beanIdRef=\"event\"/>\r\n" + \r
167                         "    </jb:bean>\r\n" + \r
168                         " \r\n" + \r
169                         "     <jb:bean class=\"org.onap.dcaegen2.ves.domain.Event\" beanId=\"event\" createOnElement=\"vesevent\">\r\n" + \r
170                         "       <jb:wiring property=\"commonEventHeader\" beanIdRef=\"commonEventHeader\"/>\r\n" + \r
171                         "       <jb:wiring property=\"faultFields\" beanIdRef=\"faultFields\"/>         \r\n" + \r
172                         "       <!--<jb:wiring property=\"measurementsForVfScalingFields\" beanIdRef=\"measurementsForVfScalingFields\"/> -->           \r\n" + \r
173                         "    </jb:bean>   \r\n" + \r
174                         "    <!--<jb:bean class=\"org.onap.dcaegen2.ves.domain.MeasurementsForVfScalingFields\" beanId=\"measurementsForVfScalingFields\" createOnElement=\"simple\">\r\n" + \r
175                         "       <jb:wiring property=\"additionalMeasurements\" beanIdRef=\"additionalMeasurements\"/>\r\n" + \r
176                         "    </jb:bean>-->\r\n" + \r
177                         "    \r\n" + \r
178                         "    <jb:bean class=\"org.onap.dcaegen2.ves.domain.CommonEventHeader\" beanId=\"commonEventHeader\" createOnElement=\"vesevent\">\r\n" + \r
179                         "               <jb:expression property=\"version\">\"3.0\"</jb:expression>\r\n" + \r
180                         "               <jb:expression property=\"eventId\">\"XXXX\"</jb:expression>\r\n" + \r
181                         "               <jb:expression property=\"reportingEntityName\">\"VesAdapter\"</jb:expression>\r\n" + \r
182                         "               <jb:expression property=\"domain\">\"fault\"</jb:expression>\r\n" + \r
183                         "               <jb:expression property=\"eventName\" execOnElement=\"vesevent\" >commonEventHeader.domain+\"_\"+commonEventHeader.reportingEntityName +\"_\"+ faultFields.alarmCondition;</jb:expression>\r\n" + \r
184                         "       <jb:value property=\"sequence\" data=\"0\" default=\"0\" decoder=\"Long\"/>\r\n" + \r
185                         "       <jb:value property=\"lastEpochMicrosec\" data=\"#/time-received\"  decoder=\"Double\" />\r\n" + \r
186                         "       <jb:value property=\"startEpochMicrosec\" data=\"#/time-received\"  decoder=\"Double\"/>\r\n" + \r
187                         "               <jb:expression property=\"priority\">\"Medium\"</jb:expression>\r\n" + \r
188                         "       <jb:expression property=\"sourceName\">\"VesAdapter\"</jb:expression>\r\n" + \r
189                         "    </jb:bean>   \r\n" + \r
190                         "    \r\n" + \r
191                         "    <jb:bean class=\"org.onap.dcaegen2.ves.domain.FaultFields\" beanId=\"faultFields\" createOnElement=\"vesevent\">\r\n" + \r
192                         "       <jb:value property=\"alarmCondition\" data=\"#/trap-category\" />\r\n" + \r
193                         "               <jb:expression property=\"eventSeverity\">\"MINOR\"</jb:expression>\r\n" + \r
194                         "               <jb:expression property=\"eventSourceType\">\"SNMP Agent\"</jb:expression>\r\n" + \r
195                         "       <jb:expression property=\"specificProblem\">\"SNMP Fault\"</jb:expression>\r\n" + \r
196                         "       <jb:value property=\"faultFieldsVersion\" data=\"2.0\" default=\"2.0\" decoder=\"Double\" />\r\n" + \r
197                         "       <jb:wiring property=\"alarmAdditionalInformation\" beanIdRef=\"alarmAdditionalInformationroot\"/>   \r\n" + \r
198                         "               <jb:expression property=\"vfStatus\">\"Active\"</jb:expression>\r\n" + \r
199                         "       \r\n" + \r
200                         "    </jb:bean>  \r\n" + \r
201                         "     <jb:bean class=\"java.util.ArrayList\" beanId=\"alarmAdditionalInformationroot\" createOnElement=\"vesevent\">\r\n" + \r
202                         "       <jb:wiring beanIdRef=\"alarmAdditionalInformation\"/>\r\n" + \r
203                         "    </jb:bean>\r\n" + \r
204                         "    \r\n" + \r
205                         "      <jb:bean class=\"org.onap.dcaegen2.ves.domain.AlarmAdditionalInformation\" beanId=\"alarmAdditionalInformation\" createOnElement=\"varbinds/element\">\r\n" + \r
206                         "       <jb:value property=\"name\" data=\"#/varbind_oid\"/>\r\n" + \r
207                         "        <jb:value property=\"value\" data=\"#/varbind_value\" />\r\n" + \r
208                         "    </jb:bean>\r\n" + \r
209                         "       <!--<jb:bean class=\"java.util.ArrayList\" beanId=\"additionalMeasurements\" createOnElement=\"simple\">\r\n" + \r
210                         "       <jb:wiring beanIdRef=\"additionalMeasurement\"/>\r\n" + \r
211                         "    </jb:bean>    \r\n" + \r
212                         "    \r\n" + \r
213                         "    <jb:bean class=\"org.onap.dcaegen2.ves.domain.AdditionalMeasurement\" beanId=\"additionalMeasurement\" createOnElement=\"varbinds/element\">\r\n" + \r
214                         "       <jb:value property=\"name\" data=\"#/varbind_value\" />\r\n" + \r
215                         "    </jb:bean>  -->  \r\n" + \r
216                         "    \r\n" + \r
217                         "</smooks-resource-list>");\r
218         \r
219         try {\r
220                 \r
221             VESAdapterInitializer.setMappingFiles(testMap);\r
222                 String actualResult = universalVesAdapter.transform(incomingJsonString.toString());\r
223             assertNotNull(actualResult);\r
224             assertNotEquals("", actualResult);\r
225         } catch (VesException exception) {\r
226                 errorLogger.error("Error occurred : {}", exception );\r
227         }\r
228         }\r
229 \r
230 \r
231 \r
232 \r
233 }\r