From 7fc8f9fe913e35121c8e9f6e222c9b741beefdda Mon Sep 17 00:00:00 2001 From: "shashikanth.vh" Date: Wed, 28 Mar 2018 17:32:01 +0530 Subject: [PATCH] coverage SdncAaiDmaapConsumer Coverage improvement for SdncAaiDmaapConsumer https://jira.onap.org/browse/CCSDK-213?jql=project%20%3D%20CCSDK%20AND%20text%20~%20coverage Issue-ID: CCSDK-213 Change-Id: Icc9af3a9f27d4bae543525b5651d1f6485ef8857 Signed-off-by: shashikanth.vh --- .../dmaapclient/TestSdncPserverDmaapReceiver.java | 90 +++++++++++++++++++++ .../incoming/src_test_resources_csars_nsepc.csar | Bin 0 -> 42569 bytes 2 files changed, 90 insertions(+) create mode 100644 ueb-listener/src/test/resources/incoming/src_test_resources_csars_nsepc.csar diff --git a/dmaap-listener/src/test/java/org/onap/ccsdk/sli/northbound/dmaapclient/TestSdncPserverDmaapReceiver.java b/dmaap-listener/src/test/java/org/onap/ccsdk/sli/northbound/dmaapclient/TestSdncPserverDmaapReceiver.java index db7cbd72c..963b20d68 100644 --- a/dmaap-listener/src/test/java/org/onap/ccsdk/sli/northbound/dmaapclient/TestSdncPserverDmaapReceiver.java +++ b/dmaap-listener/src/test/java/org/onap/ccsdk/sli/northbound/dmaapclient/TestSdncPserverDmaapReceiver.java @@ -10,8 +10,15 @@ package org.onap.ccsdk.sli.northbound.dmaapclient; import static org.junit.Assert.assertTrue; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.Field; +import java.util.Map; import java.util.Properties; +import org.apache.commons.io.FileUtils; + import org.junit.Before; import org.junit.Test; @@ -81,5 +88,88 @@ public class TestSdncPserverDmaapReceiver { assertTrue(rpcMsgbody.indexOf("common-header") != -1); } + @Test + public void testProcessMsgFieldMap() throws Exception { + + + String DMAAPLISTENERROOT = "DMAAPLISTENERROOT"; + File directory = new File("lib"); + + if (! directory.exists()){ + directory.mkdir(); + } + + File source = new File("src/main/resources"); + File dest = new File("lib/"); + try { + FileUtils.copyDirectory(source, dest); + } catch (IOException e) { + e.printStackTrace(); + } + + try { + Map env = System.getenv(); + Class cl = env.getClass(); + Field field = cl.getDeclaredField("m"); + field.setAccessible(true); + Map writableEnv = (Map) field.get(env); + writableEnv.put(DMAAPLISTENERROOT, "."); + } catch (Exception e) { + throw new IllegalStateException("Failed to set environment variable", e); + } + Properties props = new Properties(); + + SdncAaiDmaapConsumer consumer = new SdncAaiDmaapConsumer(); + + InputStream propStr = TestSdncPserverDmaapReceiver.class.getResourceAsStream("/dmaap-consumer-pserver.properties"); + + + props.load(propStr); + + consumer.init(props, "src/test/resources/dmaap-consumer-pserver.properties"); + consumer.processMsg(aaiInput); + } + + @Test(expected = InvalidMessageException.class) + public void testProcessMsgNullMessage() throws Exception { + Properties props = new Properties(); + + SdncAaiDmaapConsumer consumer = new SdncAaiDmaapConsumer(); + consumer.processMsg(null); + } + + @Test(expected = InvalidMessageException.class) + public void testProcessMsgInvalidMessage() throws Exception { + Properties props = new Properties(); + + SdncAaiDmaapConsumer consumer = new SdncAaiDmaapConsumer(); + consumer.processMsg("test"); + } + + @Test + public void testProcessMsgMissingEventHeader() throws Exception { + Properties props = new Properties(); + + SdncAaiDmaapConsumer consumer = new SdncAaiDmaapConsumer(); + consumer.processMsg("{\n" + + " \"input\" : { \n" + + " }\n" + + "}"); + } + + @Test + public void testProcessMsgInvalidEventType() throws Exception { + Properties props = new Properties(); + + String msg = "{\"cambria.partition\": \"AAI\",\r\n" + + " \"event-header\": {\"event-type\": \"TEST-EVENT\"}}"; + + SdncAaiDmaapConsumer consumer = new SdncAaiDmaapConsumer(); + consumer.processMsg(msg); + } + + + + } diff --git a/ueb-listener/src/test/resources/incoming/src_test_resources_csars_nsepc.csar b/ueb-listener/src/test/resources/incoming/src_test_resources_csars_nsepc.csar new file mode 100644 index 0000000000000000000000000000000000000000..087d8c3d814663e69c900984f0fe0eea663840cf GIT binary patch literal 42569 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