From f3cbb41773aac52da6c1763fb25a6e0f749229ac Mon Sep 17 00:00:00 2001 From: Zlatko Murgoski Date: Wed, 19 Dec 2018 15:00:14 +0100 Subject: Fix bug with processing event list DMaapEventPublisher processing of eventList Issue-ID: DCAEGEN2-1035 Change-Id: If62ec51d1dc1f0e501fda624dae23c7a83d3727b Signed-off-by: Zlatko Murgoski --- .../commonFunction/ConfigProcessorAdapterTest.java | 2 +- .../dcae/commonFunction/EventProcessorTest.java | 105 --------------------- .../onap/dcae/commonFunction/EventSenderTest.java | 69 ++++++++++++++ 3 files changed, 70 insertions(+), 106 deletions(-) delete mode 100644 src/test/java/org/onap/dcae/commonFunction/EventProcessorTest.java create mode 100644 src/test/java/org/onap/dcae/commonFunction/EventSenderTest.java (limited to 'src/test/java/org') diff --git a/src/test/java/org/onap/dcae/commonFunction/ConfigProcessorAdapterTest.java b/src/test/java/org/onap/dcae/commonFunction/ConfigProcessorAdapterTest.java index 1ad55897..f2cb3646 100644 --- a/src/test/java/org/onap/dcae/commonFunction/ConfigProcessorAdapterTest.java +++ b/src/test/java/org/onap/dcae/commonFunction/ConfigProcessorAdapterTest.java @@ -38,7 +38,7 @@ public class ConfigProcessorAdapterTest { private ConfigProcessors configProcessors; @InjectMocks - private EventProcessor.ConfigProcessorAdapter configProcessorAdapter; + private ConfigProcessorAdapter configProcessorAdapter; @Test diff --git a/src/test/java/org/onap/dcae/commonFunction/EventProcessorTest.java b/src/test/java/org/onap/dcae/commonFunction/EventProcessorTest.java deleted file mode 100644 index 697510c4..00000000 --- a/src/test/java/org/onap/dcae/commonFunction/EventProcessorTest.java +++ /dev/null @@ -1,105 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * org.onap.dcaegen2.collectors.ves - * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright (C) 2018 Nokia. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.dcae.commonFunction; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.onap.dcae.commonFunction.EventProcessor.EVENT_LIST_TYPE; - -import com.google.gson.Gson; -import java.util.List; -import org.json.JSONObject; -import org.junit.Before; -import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.onap.dcae.ApplicationSettings; -import org.onap.dcae.CLIUtils; -import org.onap.dcae.commonFunction.event.publishing.EventPublisher; - - -public class EventProcessorTest { - - private final String ev = "{\"event\": {\"commonEventHeader\": { \"reportingEntityName\": " - + "\"VM name will be provided by ECOMP\", \"startEpochMicrosec\": 1477012779802988,\"lastEpochMicrosec\": " - + "1477012789802988,\"eventId\": \"83\",\"sourceName\": \"Dummy VM name - No Metadata available\"," - + "\"sequence\": 83,\"priority\": \"Normal\",\"functionalRole\": \"vFirewall\",\"domain\": " - + "\"measurementsForVfScaling\",\"reportingEntityId\": \"VM UUID will be provided by ECOMP\"," - + "\"sourceId\": \"Dummy VM UUID - No Metadata available\",\"version\": 1.1},\"measurementsForVfScalingFields\":" - + " {\"measurementInterval\": 10,\"measurementsForVfScalingVersion\": 1.1,\"vNicUsageArray\": " - + "[{\"multicastPacketsIn\": 0,\"bytesIn\": 3896,\"unicastPacketsIn\": 0, " - + "\"multicastPacketsOut\": 0,\"broadcastPacketsOut\": 0, " - + "\"packetsOut\": 28,\"bytesOut\": 12178,\"broadcastPacketsIn\": " - + "0,\"packetsIn\": 58,\"unicastPacketsOut\": 0,\"vNicIdentifier\": \"eth0\"}]}}}"; - - private ApplicationSettings properties; - - @Before - public void setUp() { - properties = new ApplicationSettings(new String[]{}, CLIUtils::processCmdLine); - } - - @Test - public void testLoad() { - //given - EventProcessor ec = new EventProcessor(mock(EventPublisher.class), properties); - ec.event = new org.json.JSONObject(ev); - //when - ec.overrideEvent(); - - //then - Boolean hasSourceNameNode = ec.event.getJSONObject("event").getJSONObject("commonEventHeader").has("sourceName"); - assertTrue(hasSourceNameNode); - } - - @Test - public void shouldParseJsonEvents() throws ReflectiveOperationException { - //given - EventProcessor eventProcessor = new EventProcessor(mock(EventPublisher.class), properties); - String event_json = - "[{ \"filter\": {\"event.commonEventHeader.domain\":\"heartbeat\",\"VESversion\":\"v4\"},\"processors\":[" - + "{\"functionName\": \"concatenateValue\",\"args\":{\"field\":\"event.commonEventHeader.eventName\"," - + "\"concatenate\": [\"$event.commonEventHeader.domain\",\"$event.commonEventHeader.eventType\"," - + "\"$event.faultFields.alarmCondition\"], \"delimiter\":\"_\"}}" - + ",{\"functionName\": \"addAttribute\",\"args\":{\"field\": " - + "\"event.heartbeatFields.heartbeatFieldsVersion\",\"value\": \"1.0\",\"fieldType\": \"number\"}}" - + ",{\"functionName\": \"map\",\"args\":{\"field\": \"event.commonEventHeader.nfNamingCode\"," - + "\"oldField\": \"event.commonEventHeader.functionalRole\"}}]}]"; - List events = new Gson().fromJson(event_json, EVENT_LIST_TYPE); - EventProcessor.ConfigProcessorAdapter configProcessorAdapter = mock(EventProcessor.ConfigProcessorAdapter.class); - - when(configProcessorAdapter.isFilterMet(any(JSONObject.class))).thenReturn(true); - ArgumentCaptor stringArgumentCaptor = ArgumentCaptor.forClass(String.class); - ArgumentCaptor jsonObjectArgumentCaptor = ArgumentCaptor.forClass(JSONObject.class); - //when - eventProcessor.parseEventsJson(events, configProcessorAdapter); - - //then - verify(configProcessorAdapter, times(3)).runConfigProcessorFunctionByName(stringArgumentCaptor.capture(), jsonObjectArgumentCaptor.capture()); - assertThat(stringArgumentCaptor.getAllValues()).contains("concatenateValue", "addAttribute", "map"); - } - -} \ No newline at end of file diff --git a/src/test/java/org/onap/dcae/commonFunction/EventSenderTest.java b/src/test/java/org/onap/dcae/commonFunction/EventSenderTest.java new file mode 100644 index 00000000..f3cebdb2 --- /dev/null +++ b/src/test/java/org/onap/dcae/commonFunction/EventSenderTest.java @@ -0,0 +1,69 @@ +/* + * ============LICENSE_START======================================================= + * PROJECT + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2018 Nokia. All rights reserved.s + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.dcae.commonFunction; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import io.vavr.collection.HashMap; +import io.vavr.collection.Map; +import org.json.JSONObject; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +import org.onap.dcae.ApplicationSettings; +import org.onap.dcae.commonFunction.event.publishing.EventPublisher; + +@RunWith(MockitoJUnitRunner.Silent.class) +public class EventSenderTest { + + + private String event = "{\"VESversion\":\"v7\",\"VESuniqueId\":\"fd69d432-5cd5-4c15-9d34-407c81c61c6a-0\",\"event\":{\"commonEventHeader\":{\"startEpochMicrosec\":1544016106000000,\"eventId\":\"fault33\",\"timeZoneOffset\":\"UTC+00.00\",\"priority\":\"Normal\",\"version\":\"4.0.1\",\"nfVendorName\":\"Ericsson\",\"reportingEntityName\":\"1\",\"sequence\":1,\"domain\":\"fault\",\"lastEpochMicrosec\":1544016106000000,\"eventName\":\"Fault_KeyFileFault\",\"vesEventListenerVersion\":\"7.0.1\",\"sourceName\":\"1\"},\"faultFields\":{\"eventSeverity\":\"CRITICAL\",\"alarmCondition\":\"KeyFileFault\",\"faultFieldsVersion\":\"4.0\",\"eventCategory\":\"PROCESSINGERRORALARM\",\"specificProblem\":\"License Key File Fault_1\",\"alarmAdditionalInformation\":{\"probableCause\":\"ConfigurationOrCustomizationError\",\"additionalText\":\"test_1\",\"source\":\"ManagedElement=1,SystemFunctions=1,Lm=1\"},\"eventSourceType\":\"Lm\",\"vfStatus\":\"Active\"}}}\n"; + + @Mock + private EventPublisher eventPublisher; + @Mock + private ApplicationSettings settings; + + private EventSender eventSender; + + + @Test + public void shouldntSendEventWhenStreamIdsIsEmpty() { + when(settings.dMaaPStreamsMapping()).thenReturn(HashMap.empty()); + eventSender = new EventSender(eventPublisher, settings ); + eventSender.send(new JSONObject(event)); + verify(eventPublisher,never()).sendEvent(any(),any()); + } + + @Test + public void shouldSendEvent() { + Map streams = HashMap.of("fault", new String[]{"ves-fault", "fault-ves"}); + when(settings.dMaaPStreamsMapping()).thenReturn(streams); + eventSender = new EventSender(eventPublisher, settings ); + eventSender.send(new JSONObject(event)); + verify(eventPublisher, times(2)).sendEvent(any(),any()); + } +} \ No newline at end of file -- cgit 1.2.3-korg