From d02143c0c616a32dcc095877fea5c87c05e4adab Mon Sep 17 00:00:00 2001 From: Bogumil Zebek Date: Fri, 18 Sep 2020 09:11:26 +0200 Subject: Fix an unexpected error in tests - Fix an error reported by DMaapEventPublisher test when pk is not available. Issue-ID: DCAEGEN2-2374 Change-Id: I69c0f89b292c8454f3eebaffe4884928d241f235 Signed-off-by: Zebek Bogumil --- .../common/publishing/DMaaPEventPublisherTest.java | 154 +++++++++++++-------- .../onap/dcae/restapi/VesRestControllerTest.java | 5 +- 2 files changed, 97 insertions(+), 62 deletions(-) (limited to 'src/test') diff --git a/src/test/java/org/onap/dcae/common/publishing/DMaaPEventPublisherTest.java b/src/test/java/org/onap/dcae/common/publishing/DMaaPEventPublisherTest.java index 99505bfd..e4b6fd91 100644 --- a/src/test/java/org/onap/dcae/common/publishing/DMaaPEventPublisherTest.java +++ b/src/test/java/org/onap/dcae/common/publishing/DMaaPEventPublisherTest.java @@ -20,6 +20,14 @@ */ package org.onap.dcae.common.publishing; +import com.att.nsa.cambria.client.CambriaBatchingPublisher; +import org.json.JSONObject; +import org.junit.Before; +import org.junit.Test; +import org.onap.dcae.common.model.VesEvent; + +import java.io.IOException; + import static io.vavr.API.Option; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.BDDMockito.given; @@ -27,66 +35,92 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import com.att.nsa.cambria.client.CambriaBatchingPublisher; -import java.io.IOException; -import org.json.JSONObject; -import org.junit.Before; -import org.junit.Test; -import org.slf4j.Logger; - public class DMaaPEventPublisherTest { - private static final String STREAM_ID = "sampleStreamId"; - - private DMaaPEventPublisher eventPublisher; - private CambriaBatchingPublisher cambriaPublisher; - private DMaaPPublishersCache DMaaPPublishersCache; - - @Before - public void setUp() { - cambriaPublisher = mock(CambriaBatchingPublisher.class); - DMaaPPublishersCache = mock(DMaaPPublishersCache.class); - when(DMaaPPublishersCache.getPublisher(anyString())).thenReturn(Option(cambriaPublisher)); - eventPublisher = new DMaaPEventPublisher(DMaaPPublishersCache); - } - - @Test - public void shouldSendEventToTopic() throws Exception { - // given - JSONObject event = new JSONObject("{\"event\":{\"commonEventHeader\":{\"startEpochMicrosec\":1537562659253019,\"sourceId\":\"79e90d76-513a-4f79-886d-470a0037c5cf\",\"eventId\":\"Heartbeat_vDNS_100.100.10.10\",\"nfcNamingCode\":\"DNS\",\"reportingEntityId\":\"79e90d76-513a-4f79-886d-470a0037c5cf\",\"eventType\":\"applicationVnf\",\"priority\":\"Normal\",\"version\":3,\"reportingEntityName\":\"dns01cmd004\",\"sequence\":36312,\"domain\":\"heartbeat\",\"lastEpochMicrosec\":1537562659253019,\"eventName\":\"Heartbeat_vDNS\",\"sourceName\":\"dns01cmd004\",\"nfNamingCode\":\"MDNS\"}}}"); - - - // when - eventPublisher.sendEvent(event, STREAM_ID); - - // then - verify(cambriaPublisher).send("dns01cmd004", event.toString()); - } - - - @Test - public void shouldRemoveInternalVESUIDBeforeSending() throws Exception { - // given - JSONObject event = new JSONObject( - "{\"VESuniqueId\": \"362e0146-ec5f-45f3-8d8f-bfe877c3f58e\",\"event\":{\"commonEventHeader\":{\"startEpochMicrosec\":1537562659253019,\"sourceId\":\"79e90d76-513a-4f79-886d-470a0037c5cf\",\"eventId\":\"Heartbeat_vDNS_100.100.10.10\",\"nfcNamingCode\":\"DNS\",\"reportingEntityId\":\"79e90d76-513a-4f79-886d-470a0037c5cf\",\"eventType\":\"applicationVnf\",\"priority\":\"Normal\",\"version\":3,\"reportingEntityName\":\"dns01cmd004\",\"sequence\":36312,\"domain\":\"heartbeat\",\"lastEpochMicrosec\":1537562659253019,\"eventName\":\"Heartbeat_vDNS\",\"sourceName\":\"dns01cmd004\",\"nfNamingCode\":\"MDNS\"}}}"); - - // when - eventPublisher.sendEvent(event, STREAM_ID); - - // then - verify(cambriaPublisher).send("dns01cmd004", new JSONObject("{\"event\":{\"commonEventHeader\":{\"startEpochMicrosec\":1537562659253019,\"sourceId\":\"79e90d76-513a-4f79-886d-470a0037c5cf\",\"eventId\":\"Heartbeat_vDNS_100.100.10.10\",\"nfcNamingCode\":\"DNS\",\"reportingEntityId\":\"79e90d76-513a-4f79-886d-470a0037c5cf\",\"eventType\":\"applicationVnf\",\"priority\":\"Normal\",\"version\":3,\"reportingEntityName\":\"dns01cmd004\",\"sequence\":36312,\"domain\":\"heartbeat\",\"lastEpochMicrosec\":1537562659253019,\"eventName\":\"Heartbeat_vDNS\",\"sourceName\":\"dns01cmd004\",\"nfNamingCode\":\"MDNS\"}}}").toString()); - } - - @Test - public void shouldCloseConnectionWhenExceptionOccurred() throws Exception { - // given - JSONObject event = new JSONObject("{}"); - given(cambriaPublisher.send(anyString(), anyString())).willThrow(new IOException("epic fail")); - - // when - eventPublisher.sendEvent(event, STREAM_ID); - - // then - verify(DMaaPPublishersCache).closePublisherFor(STREAM_ID); - } + private static final String STREAM_ID = "sampleStreamId"; + + private static final JSONObject EXPECTED_EVENT = + new JSONObject( + "{\"VESversion\":\"v7\",\"event\":{" + + "\"commonEventHeader\":{\"startEpochMicrosec\":1537562659253019," + + "\"sourceId\":\"79e90d76-513a-4f79-886d-470a0037c5cf\"," + + "\"eventId\":\"Heartbeat_vDNS_100.100.10.10\",\"nfcNamingCode\":\"DNS\"," + + "\"reportingEntityId\":\"79e90d76-513a-4f79-886d-470a0037c5cf\"," + + "\"eventType\":\"applicationVnf\",\"priority\":\"Normal\",\"version\":3," + + "\"reportingEntityName\":\"dns01cmd004\",\"sequence\":36312,\"domain\":\"heartbeat\"," + + "\"lastEpochMicrosec\":1537562659253019,\"eventName\":\"Heartbeat_vDNS\"," + + "\"sourceName\":\"dns01cmd004\",\"nfNamingCode\":\"MDNS\"}}}"); + + private static final String PARTITION = "dns01cmd004"; + + private DMaaPEventPublisher eventPublisher; + private CambriaBatchingPublisher cambriaPublisher; + private DMaaPPublishersCache DMaaPPublishersCache; + + @Before + public void setUp() { + cambriaPublisher = mock(CambriaBatchingPublisher.class); + DMaaPPublishersCache = mock(DMaaPPublishersCache.class); + when(DMaaPPublishersCache.getPublisher(anyString())).thenReturn(Option(cambriaPublisher)); + eventPublisher = new DMaaPEventPublisher(DMaaPPublishersCache); + } + + @Test + public void shouldSendEventToTopic() throws Exception { + // when + eventPublisher.sendEvent(givenVesEventWithoutVESuniqueIdField(), STREAM_ID); + + // then + verify(cambriaPublisher).send(PARTITION, EXPECTED_EVENT.toString()); + } + + @Test + public void shouldRemoveInternalVESUIDBeforeSending() throws Exception { + // when + eventPublisher.sendEvent(givenVesEventWithVESUniqueIdField(), STREAM_ID); + + // then + verify(cambriaPublisher).send(PARTITION, EXPECTED_EVENT.toString()); + } + + @Test + public void shouldCloseConnectionWhenExceptionOccurred() throws Exception { + // given + given(cambriaPublisher.send(anyString(), anyString())) + .willThrow(new IOException("Expected exception - test case scenario!")); + + // when + eventPublisher.sendEvent(givenVesEventWithVESUniqueIdField(), STREAM_ID); + + // then + verify(DMaaPPublishersCache).closePublisherFor(STREAM_ID); + } + + private VesEvent givenVesEventWithVESUniqueIdField() { + return new VesEvent( + new JSONObject( + "{\"VESversion\":\"v7\",\"VESuniqueId\":\"fd69d432-5cd5-4c15-9d34-407c81c61c6a-0\"," + + "\"event\":{" + + "\"commonEventHeader\":{\"startEpochMicrosec\":1537562659253019," + + "\"sourceId\":\"79e90d76-513a-4f79-886d-470a0037c5cf\"," + + "\"eventId\":\"Heartbeat_vDNS_100.100.10.10\",\"nfcNamingCode\":\"DNS\"," + + "\"reportingEntityId\":\"79e90d76-513a-4f79-886d-470a0037c5cf\",\"eventType\":\"applicationVnf\"," + + "\"priority\":\"Normal\",\"version\":3,\"reportingEntityName\":\"dns01cmd004\",\"sequence\":36312," + + "\"domain\":\"heartbeat\",\"lastEpochMicrosec\":1537562659253019,\"eventName\":\"Heartbeat_vDNS\"," + + "\"sourceName\":\"dns01cmd004\",\"nfNamingCode\":\"MDNS\"}}}")); + } + + private VesEvent givenVesEventWithoutVESuniqueIdField() { + return new VesEvent( + new JSONObject( + "{\"VESversion\":\"v7\"," + + "\"event\":{" + + "\"commonEventHeader\":{\"startEpochMicrosec\":1537562659253019," + + "\"sourceId\":\"79e90d76-513a-4f79-886d-470a0037c5cf\"," + + "\"eventId\":\"Heartbeat_vDNS_100.100.10.10\",\"nfcNamingCode\":\"DNS\"," + + "\"reportingEntityId\":\"79e90d76-513a-4f79-886d-470a0037c5cf\",\"eventType\":\"applicationVnf\"," + + "\"priority\":\"Normal\",\"version\":3,\"reportingEntityName\":\"dns01cmd004\",\"sequence\":36312," + + "\"domain\":\"heartbeat\",\"lastEpochMicrosec\":1537562659253019,\"eventName\":\"Heartbeat_vDNS\"," + + "\"sourceName\":\"dns01cmd004\",\"nfNamingCode\":\"MDNS\"}}}")); + } } diff --git a/src/test/java/org/onap/dcae/restapi/VesRestControllerTest.java b/src/test/java/org/onap/dcae/restapi/VesRestControllerTest.java index ce7e09d3..5504ca8e 100644 --- a/src/test/java/org/onap/dcae/restapi/VesRestControllerTest.java +++ b/src/test/java/org/onap/dcae/restapi/VesRestControllerTest.java @@ -40,6 +40,7 @@ import org.onap.dcae.common.EventSender; import org.onap.dcae.common.EventTransformation; import org.onap.dcae.common.HeaderUtils; import org.onap.dcae.common.JsonDataLoader; +import org.onap.dcae.common.model.VesEvent; import org.onap.dcae.common.validator.StndDefinedDataValidator; import org.onap.dcae.common.publishing.DMaaPEventPublisher; import org.slf4j.Logger; @@ -323,11 +324,11 @@ public class VesRestControllerTest { assertThat(eventBeforeTransformation).contains("\"version\": \"4.0.1\""); assertThat(eventBeforeTransformation).contains("\"faultFieldsVersion\": \"4.0\""); - ArgumentCaptor argument = ArgumentCaptor.forClass(JSONObject.class); + ArgumentCaptor argument = ArgumentCaptor.forClass(VesEvent.class); ArgumentCaptor domain = ArgumentCaptor.forClass(String.class); verify(eventPublisher).sendEvent(argument.capture(), domain.capture()); - final String transformedEvent = argument.getValue().toString(); + final String transformedEvent = argument.getValue().asJsonObject().toString(); final String eventSentAtTopic = domain.getValue(); // event after transformation -- cgit 1.2.3-korg