* limitations under the License.\r
* ============LICENSE_END=========================================================\r
*/\r
+\r
package org.onap.universalvesadapter.adapter;\r
\r
import static org.junit.Assert.assertNotEquals;\r
\r
import java.util.HashMap;\r
import java.util.Map;\r
-\r
import org.junit.Before;\r
-import org.junit.Ignore;\r
import org.junit.Test;\r
import org.junit.runner.RunWith;\r
import org.mockito.InjectMocks;\r
import org.onap.universalvesadapter.Application;\r
import org.onap.universalvesadapter.exception.VesException;\r
import org.onap.universalvesadapter.service.VESAdapterInitializer;\r
+import org.onap.universalvesadapter.utils.CollectorConfigPropertyRetrival;\r
+import org.powermock.api.mockito.PowerMockito;\r
+import org.powermock.core.classloader.annotations.PrepareForTest;\r
+import org.powermock.modules.junit4.PowerMockRunner;\r
import org.slf4j.Logger;\r
import org.slf4j.LoggerFactory;\r
import org.springframework.boot.test.context.SpringBootTest;\r
-import org.springframework.test.context.junit4.SpringRunner;\r
\r
-@RunWith(SpringRunner.class)\r
-@SpringBootTest(classes=Application.class)\r
-@Ignore\r
-public class UniversalEventAdapterTest {\r
- \r
- private static final Logger errorLogger = LoggerFactory.getLogger("errorLogger");\r
- \r
- @Mock\r
- private VESAdapterInitializer vESAdapterInitializer; \r
- \r
- @InjectMocks\r
- private UniversalEventAdapter universalVesAdapter;\r
- \r
- \r
- @Before\r
- public void init() {\r
- MockitoAnnotations.initMocks(this);\r
- } \r
- \r
- \r
- \r
- @Test\r
- public void testtransform() {\r
- StringBuffer incomingJsonString = new StringBuffer("{ ")\r
- .append("\"protocol version\":\"v2c\", ") \r
- .append("\"notify OID\":\".1.3.6.1.4.1.1751.2.46.12.1.1\", ")\r
- .append("\"cambria.partition\":\"dcae-snmp.client.research.att.com\", ")\r
- .append("\"trap category\":\"UCSNMP-HEARTBEAT\", ")\r
- .append("\"epoch_serno\": 15161177410000, ")\r
- .append("\"community\":\"public\", ")\r
- .append("\"time received\": 1516117741, ")\r
- .append("\"agent name\":\"localhost\", ")\r
- .append("\"agent address\":\"127.0.0.1\", ")\r
- .append("\"community len\": 6, ")\r
- .append("\"notify OID len\": 12, ")\r
- .append("\"varbinds\": [{ ")\r
- .append(" \"varbind_type\":\"octet\", ")\r
- .append(" \"varbind_oid\":\".1.3.6.1.4.1.74.2.46.12.1.1.1\", ")\r
- .append(" \"varbind_value\":\"ucsnmp heartbeat - ignore\" ")\r
- .append(" }, { ")\r
- .append(" \"varbind_type\":\"octet\", ")\r
- .append(" \"varbind_oid\":\".1.3.6.1.4.1.74.2.46.12.1.1.2\", ")\r
- .append(" \"varbind_value\":\"Tue Jan 16 10:49:01 EST 2018\" ")\r
- .append(" }] ")\r
- .append("}");\r
- \r
- Map<String,String> testMap=new HashMap<String,String>();\r
- testMap.put("defaultSnmpMappingFile", "<?xml version=\"1.0\"?>\r\n" + \r
- "<smooks-resource-list\r\n" + \r
- " xmlns=\"http://www.milyn.org/xsd/smooks-1.1.xsd\"\r\n" + \r
- " xmlns:json=\"http://www.milyn.org/xsd/smooks/json-1.1.xsd\"\r\n" + \r
- " xmlns:jb=\"http://www.milyn.org/xsd/smooks/javabean-1.4.xsd\">\r\n" + \r
- " <json:reader rootName=\"vesevent\" keyWhitspaceReplacement=\"-\">\r\n" + \r
- " <json:keyMap>\r\n" + \r
- " <json:key from=\"date&time\" to=\"date-and-time\" />\r\n" + \r
- " </json:keyMap>\r\n" + \r
- " </json:reader>\r\n" + \r
- " \r\n" + \r
- " <jb:bean class=\"org.onap.dcaegen2.ves.domain.VesEvent\" beanId=\"vesEvent\" createOnElement=\"vesevent\">\r\n" + \r
- " <jb:wiring property=\"event\" beanIdRef=\"event\"/>\r\n" + \r
- " </jb:bean>\r\n" + \r
- " \r\n" + \r
- " <jb:bean class=\"org.onap.dcaegen2.ves.domain.Event\" beanId=\"event\" createOnElement=\"vesevent\">\r\n" + \r
- " <jb:wiring property=\"commonEventHeader\" beanIdRef=\"commonEventHeader\"/>\r\n" + \r
- " <jb:wiring property=\"faultFields\" beanIdRef=\"faultFields\"/> \r\n" + \r
- " <!--<jb:wiring property=\"measurementsForVfScalingFields\" beanIdRef=\"measurementsForVfScalingFields\"/> --> \r\n" + \r
- " </jb:bean> \r\n" + \r
- " <!--<jb:bean class=\"org.onap.dcaegen2.ves.domain.MeasurementsForVfScalingFields\" beanId=\"measurementsForVfScalingFields\" createOnElement=\"simple\">\r\n" + \r
- " <jb:wiring property=\"additionalMeasurements\" beanIdRef=\"additionalMeasurements\"/>\r\n" + \r
- " </jb:bean>-->\r\n" + \r
- " \r\n" + \r
- " <jb:bean class=\"org.onap.dcaegen2.ves.domain.CommonEventHeader\" beanId=\"commonEventHeader\" createOnElement=\"vesevent\">\r\n" + \r
- " <jb:expression property=\"version\">\"3.0\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"eventId\">\"XXXX\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"reportingEntityName\">\"VesAdapter\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"domain\">\"fault\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"eventName\" execOnElement=\"vesevent\" >commonEventHeader.domain+\"_\"+commonEventHeader.reportingEntityName +\"_\"+ faultFields.alarmCondition;</jb:expression>\r\n" + \r
- " <jb:value property=\"sequence\" data=\"0\" default=\"0\" decoder=\"Long\"/>\r\n" + \r
- " <jb:value property=\"lastEpochMicrosec\" data=\"#/time-received\" decoder=\"Double\" />\r\n" + \r
- " <jb:value property=\"startEpochMicrosec\" data=\"#/time-received\" decoder=\"Double\"/>\r\n" + \r
- " <jb:expression property=\"priority\">\"Medium\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"sourceName\">\"VesAdapter\"</jb:expression>\r\n" + \r
- " </jb:bean> \r\n" + \r
- " \r\n" + \r
- " <jb:bean class=\"org.onap.dcaegen2.ves.domain.FaultFields\" beanId=\"faultFields\" createOnElement=\"vesevent\">\r\n" + \r
- " <jb:value property=\"alarmCondition\" data=\"#/trap-category\" />\r\n" + \r
- " <jb:expression property=\"eventSeverity\">\"MINOR\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"eventSourceType\">\"SNMP Agent\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"specificProblem\">\"SNMP Fault\"</jb:expression>\r\n" + \r
- " <jb:value property=\"faultFieldsVersion\" data=\"2.0\" default=\"2.0\" decoder=\"Double\" />\r\n" + \r
- " <jb:wiring property=\"alarmAdditionalInformation\" beanIdRef=\"alarmAdditionalInformationroot\"/> \r\n" + \r
- " <jb:expression property=\"vfStatus\">\"Active\"</jb:expression>\r\n" + \r
- " \r\n" + \r
- " </jb:bean> \r\n" + \r
- " <jb:bean class=\"java.util.ArrayList\" beanId=\"alarmAdditionalInformationroot\" createOnElement=\"vesevent\">\r\n" + \r
- " <jb:wiring beanIdRef=\"alarmAdditionalInformation\"/>\r\n" + \r
- " </jb:bean>\r\n" + \r
- " \r\n" + \r
- " <jb:bean class=\"org.onap.dcaegen2.ves.domain.AlarmAdditionalInformation\" beanId=\"alarmAdditionalInformation\" createOnElement=\"varbinds/element\">\r\n" + \r
- " <jb:value property=\"name\" data=\"#/varbind_oid\"/>\r\n" + \r
- " <jb:value property=\"value\" data=\"#/varbind_value\" />\r\n" + \r
- " </jb:bean>\r\n" + \r
- " <!--<jb:bean class=\"java.util.ArrayList\" beanId=\"additionalMeasurements\" createOnElement=\"simple\">\r\n" + \r
- " <jb:wiring beanIdRef=\"additionalMeasurement\"/>\r\n" + \r
- " </jb:bean> \r\n" + \r
- " \r\n" + \r
- " <jb:bean class=\"org.onap.dcaegen2.ves.domain.AdditionalMeasurement\" beanId=\"additionalMeasurement\" createOnElement=\"varbinds/element\">\r\n" + \r
- " <jb:value property=\"name\" data=\"#/varbind_value\" />\r\n" + \r
- " </jb:bean> --> \r\n" + \r
- " \r\n" + \r
- "</smooks-resource-list>");\r
- testMap.put(".1.3.6.1.4.1.1751.2.46.12", "<?xml version=\"1.0\"?>\r\n" + \r
- "<smooks-resource-list\r\n" + \r
- " xmlns=\"http://www.milyn.org/xsd/smooks-1.1.xsd\"\r\n" + \r
- " xmlns:json=\"http://www.milyn.org/xsd/smooks/json-1.1.xsd\"\r\n" + \r
- " xmlns:jb=\"http://www.milyn.org/xsd/smooks/javabean-1.4.xsd\">\r\n" + \r
- " <json:reader rootName=\"vesevent\" keyWhitspaceReplacement=\"-\">\r\n" + \r
- " <json:keyMap>\r\n" + \r
- " <json:key from=\"date&time\" to=\"date-and-time\" />\r\n" + \r
- " </json:keyMap>\r\n" + \r
- " </json:reader>\r\n" + \r
- " \r\n" + \r
- " <jb:bean class=\"org.onap.dcaegen2.ves.domain.VesEvent\" beanId=\"vesEvent\" createOnElement=\"vesevent\">\r\n" + \r
- " <jb:wiring property=\"event\" beanIdRef=\"event\"/>\r\n" + \r
- " </jb:bean>\r\n" + \r
- " \r\n" + \r
- " <jb:bean class=\"org.onap.dcaegen2.ves.domain.Event\" beanId=\"event\" createOnElement=\"vesevent\">\r\n" + \r
- " <jb:wiring property=\"commonEventHeader\" beanIdRef=\"commonEventHeader\"/>\r\n" + \r
- " <jb:wiring property=\"faultFields\" beanIdRef=\"faultFields\"/> \r\n" + \r
- " <!--<jb:wiring property=\"measurementsForVfScalingFields\" beanIdRef=\"measurementsForVfScalingFields\"/> --> \r\n" + \r
- " </jb:bean> \r\n" + \r
- " <!--<jb:bean class=\"org.onap.dcaegen2.ves.domain.MeasurementsForVfScalingFields\" beanId=\"measurementsForVfScalingFields\" createOnElement=\"simple\">\r\n" + \r
- " <jb:wiring property=\"additionalMeasurements\" beanIdRef=\"additionalMeasurements\"/>\r\n" + \r
- " </jb:bean>-->\r\n" + \r
- " \r\n" + \r
- " <jb:bean class=\"org.onap.dcaegen2.ves.domain.CommonEventHeader\" beanId=\"commonEventHeader\" createOnElement=\"vesevent\">\r\n" + \r
- " <jb:expression property=\"version\">\"3.0\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"eventId\">\"XXXX\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"reportingEntityName\">\"VesAdapter\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"domain\">\"fault\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"eventName\" execOnElement=\"vesevent\" >commonEventHeader.domain+\"_\"+commonEventHeader.reportingEntityName +\"_\"+ faultFields.alarmCondition;</jb:expression>\r\n" + \r
- " <jb:value property=\"sequence\" data=\"0\" default=\"0\" decoder=\"Long\"/>\r\n" + \r
- " <jb:value property=\"lastEpochMicrosec\" data=\"#/time-received\" decoder=\"Double\" />\r\n" + \r
- " <jb:value property=\"startEpochMicrosec\" data=\"#/time-received\" decoder=\"Double\"/>\r\n" + \r
- " <jb:expression property=\"priority\">\"Medium\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"sourceName\">\"VesAdapter\"</jb:expression>\r\n" + \r
- " </jb:bean> \r\n" + \r
- " \r\n" + \r
- " <jb:bean class=\"org.onap.dcaegen2.ves.domain.FaultFields\" beanId=\"faultFields\" createOnElement=\"vesevent\">\r\n" + \r
- " <jb:value property=\"alarmCondition\" data=\"#/trap-category\" />\r\n" + \r
- " <jb:expression property=\"eventSeverity\">\"MINOR\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"eventSourceType\">\"SNMP Agent\"</jb:expression>\r\n" + \r
- " <jb:expression property=\"specificProblem\">\"SNMP Fault\"</jb:expression>\r\n" + \r
- " <jb:value property=\"faultFieldsVersion\" data=\"2.0\" default=\"2.0\" decoder=\"Double\" />\r\n" + \r
- " <jb:wiring property=\"alarmAdditionalInformation\" beanIdRef=\"alarmAdditionalInformationroot\"/> \r\n" + \r
- " <jb:expression property=\"vfStatus\">\"Active\"</jb:expression>\r\n" + \r
- " \r\n" + \r
- " </jb:bean> \r\n" + \r
- " <jb:bean class=\"java.util.ArrayList\" beanId=\"alarmAdditionalInformationroot\" createOnElement=\"vesevent\">\r\n" + \r
- " <jb:wiring beanIdRef=\"alarmAdditionalInformation\"/>\r\n" + \r
- " </jb:bean>\r\n" + \r
- " \r\n" + \r
- " <jb:bean class=\"org.onap.dcaegen2.ves.domain.AlarmAdditionalInformation\" beanId=\"alarmAdditionalInformation\" createOnElement=\"varbinds/element\">\r\n" + \r
- " <jb:value property=\"name\" data=\"#/varbind_oid\"/>\r\n" + \r
- " <jb:value property=\"value\" data=\"#/varbind_value\" />\r\n" + \r
- " </jb:bean>\r\n" + \r
- " <!--<jb:bean class=\"java.util.ArrayList\" beanId=\"additionalMeasurements\" createOnElement=\"simple\">\r\n" + \r
- " <jb:wiring beanIdRef=\"additionalMeasurement\"/>\r\n" + \r
- " </jb:bean> \r\n" + \r
- " \r\n" + \r
- " <jb:bean class=\"org.onap.dcaegen2.ves.domain.AdditionalMeasurement\" beanId=\"additionalMeasurement\" createOnElement=\"varbinds/element\">\r\n" + \r
- " <jb:value property=\"name\" data=\"#/varbind_value\" />\r\n" + \r
- " </jb:bean> --> \r\n" + \r
- " \r\n" + \r
- "</smooks-resource-list>");\r
- \r
- try {\r
- \r
- VESAdapterInitializer.setMappingFiles(testMap);\r
- String actualResult = universalVesAdapter.transform(incomingJsonString.toString());\r
- assertNotNull(actualResult);\r
- assertNotEquals("", actualResult);\r
- } catch (VesException exception) {\r
- errorLogger.error("Error occurred : {}", exception );\r
- }\r
+@RunWith(PowerMockRunner.class)\r
+@SpringBootTest(classes = Application.class)\r
+public class UniversalEventAdapterTest {\r
+\r
+ private static final Logger errorLogger = LoggerFactory.getLogger("errorLogger");\r
+\r
+ @Mock\r
+ private VESAdapterInitializer vesAdapterInitializer;\r
+\r
+ @InjectMocks\r
+ private UniversalEventAdapter universalVesAdapter;\r
+\r
+ @Before\r
+ public void init() {\r
+ MockitoAnnotations.initMocks(this);\r
}\r
\r
+ @PrepareForTest({ CollectorConfigPropertyRetrival.class })\r
+ @Test\r
+ public void testtransform() {\r
+\r
+ StringBuffer incomingJsonString = new StringBuffer("{\n" + " \"rule-id\": \"12121\",\n"\r
+ + " \"notification\": {\n" + " \"event-time\": \"2018-03-15T08:15:32.000Z\",\n"\r
+ + " \"notification-id\": \"2541256\",\n" + " \"message\": {\n"\r
+ + " \"topic\":\"resource\",\n" + " \"object-type\":\"onu\", \n"\r
+ + " \"version\": \"v1\", \n" + " \"operation\": \"create\", \n"\r
+ + " \"target\": \"ont/ont=23hk1231231232\", \n" + " \"content\": {\n"\r
+ + " \"onu\": {\n" + " \"sn\": \"48575443FA637D1A\",\n"\r
+ + " \"refParentNE\": \"550e8400-e29b-41d4-a716-446655440000\",\n"\r
+ + " \"refParentNeNativeId\": \"FDN\",\n"\r
+ + " \"refParentLTP\": \"8c0db89e-218c-4e18-b0de-7a6788b3dda4\",\n"\r
+ + " \"refParentLTPNativeId\": \"FDN\",\n"\r
+ + " \"onuId\": \"213\",\n" + " \"accessID\": \"HG65875420001\"\n"\r
+ + " }\n" + " }\n" + " }\n" + " }\n" + "}");\r
+ Map<String, String> testMap = new HashMap<String, String>();\r
+ testMap.put("defaultMappingFile-" + Thread.currentThread().getName(),\r
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"\r
+ + "<smooks-resource-list xmlns=\"http://www.milyn.org/xsd/smooks-1.1.xsd\" xmlns:jb=\"http://www.milyn.org/xsd/smooks/javabean-1.4.xsd\" xmlns:json=\"http://www.milyn.org/xsd/smooks/json-1.1.xsd\">\n"\r
+ + " <json:reader rootName=\"vesevent\" keyWhitspaceReplacement=\"-\">\n"\r
+ + " <json:keyMap>\n"\r
+ + " <json:key from=\"date&time\" to=\"date-and-time\" />\n"\r
+ + " </json:keyMap>\n" + " </json:reader>\n"\r
+ + " <jb:bean class=\"org.onap.dcaegen2.ves.domain.ves7_0.VesEvent\""\r
+ + " beanId=\"vesEvent\" createOnElement=\"vesevent\">\n"\r
+ + " <jb:wiring property=\"event\" beanIdRef=\"event\" />\n" + " </jb:bean>\n"\r
+ + " <jb:bean class=\"org.onap.dcaegen2.ves.domain.ves7_0.Event\" "\r
+ + "beanId=\"event\" createOnElement=\"vesevent\">\n"\r
+ + " <jb:wiring property=\"commonEventHeader\" beanIdRef=\"commonEventHeader\" />\n"\r
+ + " <jb:wiring property=\"pnfRegistrationFields\" beanIdRef=\"pnfRegistrationFields\" />\n"\r
+ + " </jb:bean>\n"\r
+ + " <jb:bean class=\"org.onap.dcaegen2.ves.domain.ves7_0.CommonEventHeader\""\r
+ + " beanId=\"commonEventHeader\" createOnElement=\"vesevent\">\n"\r
+ + "<jb:expression property=\"version\">"\r
+ + "org.onap.dcaegen2.ves.domain.ves7_0.CommonEventHeader.Version._4_0_1</jb:expression> \n"\r
+ + "<jb:expression property=\"eventType\">\"pnfRegistration\"</jb:expression>\n"\r
+ + "<jb:expression property=\"vesEventListenerVersion\">"\r
+ + "org.onap.dcaegen2.ves.domain.ves7_0.CommonEventHeader.VesEventListenerVersion._7_0_1</jb:expression>\n"\r
+ + " <jb:expression property=\"eventId\" execOnElement=\"vesevent\">"\r
+ + "\"registration_\"+commonEventHeader.ts1</jb:expression>\n"\r
+ + "<jb:expression property=\"reportingEntityName\">\"VESMapper\"</jb:expression>\n"\r
+ + " <jb:expression property=\"domain\">"\r
+ + "org.onap.dcaegen2.ves.domain.ves7_0.CommonEventHeader.Domain.PNF_REGISTRATION</jb:expression>\n"\r
+ + " <jb:expression property=\"eventName\" execOnElement=\"vesevent\">"\r
+ + "commonEventHeader.domain</jb:expression>\n"\r
+ + "<jb:value property=\"sequence\" data=\"0\" default=\"0\" decoder=\"Long\" />\n"\r
+ + "<jb:expression property=\"lastEpochMicrosec\" execOnElement=\"vesevent\">"\r
+ + "commonEventHeader.ts1</jb:expression>\n"\r
+ + " <jb:expression property=\"startEpochMicrosec\" execOnElement=\"vesevent\">"\r
+ + "commonEventHeader.ts1</jb:expression>\n" + " <jb:expression property=\"priority\">"\r
+ + "org.onap.dcaegen2.ves.domain.ves7_0.CommonEventHeader.Priority.NORMAL</jb:expression>\n"\r
+ + " <jb:value property=\"sourceName\" data=\"notification/message/target\" />\n"\r
+ + " </jb:bean>\n"\r
+ + " <jb:bean class=\"org.onap.dcaegen2.ves.domain.ves7_0.PnfRegistrationFields\""\r
+ + " beanId=\"pnfRegistrationFields\" createOnElement=\"vesevent\">\n" + " \n"\r
+ + " <jb:expression property=\"pnfRegistrationFieldsVersion\">"\r
+ + "org.onap.dcaegen2.ves.domain.ves7_0.PnfRegistrationFields.PnfRegistrationFieldsVersion._2_0"\r
+ + "</jb:expression>\n"\r
+ + " <jb:value property=\"serialNumber\" data=\"notification/message/content/onu/sn\" />\n"\r
+ + " \n" + " </jb:bean>\n" + "</smooks-resource-list>");\r
\r
+ try {\r
+ vesAdapterInitializer.setMappingFiles(testMap);\r
\r
+ String identifiertest[] = CollectorConfigPropertyRetrival.getProperyArray("identifier", "kvTest.json");\r
+ PowerMockito.mockStatic(CollectorConfigPropertyRetrival.class);\r
+ PowerMockito.when(CollectorConfigPropertyRetrival.getProperyArray("identifier", null))\r
+ .thenReturn(identifiertest);\r
+\r
+ String actualResult = universalVesAdapter.transform(incomingJsonString.toString());\r
+ assertNotNull(actualResult);\r
+ assertNotEquals("", actualResult);\r
+ } catch (VesException exception) {\r
+ errorLogger.error("Error occurred : {}", exception);\r
+ }\r
+ }\r
\r
}\r