summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dmaap-listener/src/main/resources/generic-vnf.map5
-rw-r--r--dmaap-listener/src/main/resources/template-generic-vnf.vt15
-rw-r--r--dmaap-listener/src/main/resources/template-pserver.vt4
-rw-r--r--dmaap-listener/src/test/java/org/onap/ccsdk/sli/northbound/dmaapclient/TestSdncJsonDmaapConsumer.java106
-rw-r--r--dmaap-listener/src/test/java/org/onap/ccsdk/sli/northbound/dmaapclient/TestSdncPserverDmaapReceiver.java22
-rw-r--r--dmaap-listener/src/test/resources/dmaap-consumer-generic-vnf.properties34
-rw-r--r--dmaap-listener/src/test/resources/dmaap-consumer-pserver.properties2
7 files changed, 182 insertions, 6 deletions
diff --git a/dmaap-listener/src/main/resources/generic-vnf.map b/dmaap-listener/src/main/resources/generic-vnf.map
new file mode 100644
index 000000000..bc375eb28
--- /dev/null
+++ b/dmaap-listener/src/main/resources/generic-vnf.map
@@ -0,0 +1,5 @@
+# SDN-C URL
+SDNC.endpoint => config-selfservice-api:notification-callback
+
+# Field mapping
+SDNC.template => template-generic-vnf.vt
diff --git a/dmaap-listener/src/main/resources/template-generic-vnf.vt b/dmaap-listener/src/main/resources/template-generic-vnf.vt
new file mode 100644
index 000000000..c8a6b78ea
--- /dev/null
+++ b/dmaap-listener/src/main/resources/template-generic-vnf.vt
@@ -0,0 +1,15 @@
+{
+ "input": {
+ "common-header": {
+ "request-id": "$event-header.id",
+ "timestamp": "$curr_time",
+ "originator-id": "AAI",
+ "api-ver": "2.00"
+ },
+ "action-identifiers": {
+ "action-name": "dmaap-notification",
+ "mode": "async"
+ },
+ "payload": $full_message
+ }
+} \ No newline at end of file
diff --git a/dmaap-listener/src/main/resources/template-pserver.vt b/dmaap-listener/src/main/resources/template-pserver.vt
index 1df659e09..c8a6b78ea 100644
--- a/dmaap-listener/src/main/resources/template-pserver.vt
+++ b/dmaap-listener/src/main/resources/template-pserver.vt
@@ -6,6 +6,10 @@
"originator-id": "AAI",
"api-ver": "2.00"
},
+ "action-identifiers": {
+ "action-name": "dmaap-notification",
+ "mode": "async"
+ },
"payload": $full_message
}
} \ No newline at end of file
diff --git a/dmaap-listener/src/test/java/org/onap/ccsdk/sli/northbound/dmaapclient/TestSdncJsonDmaapConsumer.java b/dmaap-listener/src/test/java/org/onap/ccsdk/sli/northbound/dmaapclient/TestSdncJsonDmaapConsumer.java
index 01bd3cf28..620098cb7 100644
--- a/dmaap-listener/src/test/java/org/onap/ccsdk/sli/northbound/dmaapclient/TestSdncJsonDmaapConsumer.java
+++ b/dmaap-listener/src/test/java/org/onap/ccsdk/sli/northbound/dmaapclient/TestSdncJsonDmaapConsumer.java
@@ -10,6 +10,16 @@ package org.onap.ccsdk.sli.northbound.dmaapclient;
import org.junit.Test;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.InputStream;
+import java.lang.reflect.Field;
+
+import java.util.Map;
+import java.util.Properties;
+
public class TestSdncJsonDmaapConsumer {
private static final String DMAAP_LISTENER_PROPERTIES = "dmaap-listener.properties";
private static final String DMAAP_LISTENER_PROPERTIES_DIR = "src/test/resources";
@@ -19,9 +29,103 @@ public class TestSdncJsonDmaapConsumer {
SdncFlatJsonDmaapConsumer consumer = new SdncFlatJsonDmaapConsumer();
consumer.processMsg(null);
}
+
+ @Test
+ public void testProcessMsgFieldMap() throws Exception {
+ SdncFlatJsonDmaapConsumer consumer = new SdncFlatJsonDmaapConsumer();
+
+ String DMAAPLISTENERROOT = "DMAAPLISTENERROOT";
+ File directory = new File("lib");
+
+ if (! directory.exists()){
+ directory.mkdir();
+ }
+
+ File file = new File("lib" + "/" + "input.map");
+ try{
+ FileWriter fw = new FileWriter(file.getAbsoluteFile());
+ BufferedWriter bw = new BufferedWriter(fw);
+ bw.write("SDNC.endpoint=>http://localhost:8282/restconf/operations");
+ bw.close();
+ }
+ catch (Exception e){
+ e.printStackTrace();
+ }
+
+ try {
+ Map<String, String> env = System.getenv();
+ Class<?> cl = env.getClass();
+ Field field = cl.getDeclaredField("m");
+ field.setAccessible(true);
+ Map<String, String> writableEnv = (Map<String, String>) field.get(env);
+ writableEnv.put(DMAAPLISTENERROOT, ".");
+ } catch (Exception e) {
+ throw new IllegalStateException("Failed to set environment variable", e);
+ }
+
+ String msg = "{\n" +
+ " \"input\" : { \n" +
+ " }\n" +
+ "}";
+
+ InputStream propStr = TestSdncJsonDmaapConsumer.class.getResourceAsStream("/dmaap-consumer-pserver.properties");
+ Properties props = new Properties();
+
+ props.load(propStr);
+
+ consumer.init(props, "src/test/resources/dmaap-consumer-pserver.properties");
+ consumer.processMsg(msg);
+ }
+
+ @Test(expected = InvalidMessageException.class)
+ public void testProcessMsgFieldMapNoSdncEndPoint() throws Exception {
+ SdncFlatJsonDmaapConsumer consumer = new SdncFlatJsonDmaapConsumer();
+
+ String DMAAPLISTENERROOT = "DMAAPLISTENERROOT";
+ File directory = new File("lib");
+
+ if (! directory.exists()){
+ directory.mkdir();
+ }
+
+ File file = new File("lib" + "/" + "input.map");
+ try{
+ FileWriter fw = new FileWriter(file.getAbsoluteFile());
+ BufferedWriter bw = new BufferedWriter(fw);
+ bw.write("SDNC");
+ bw.close();
+ }
+ catch (Exception e){
+ e.printStackTrace();
+ }
+
+ try {
+ Map<String, String> env = System.getenv();
+ Class<?> cl = env.getClass();
+ Field field = cl.getDeclaredField("m");
+ field.setAccessible(true);
+ Map<String, String> writableEnv = (Map<String, String>) field.get(env);
+ writableEnv.put(DMAAPLISTENERROOT, ".");
+ } catch (Exception e) {
+ throw new IllegalStateException("Failed to set environment variable", e);
+ }
+
+ String msg = "{\n" +
+ " \"input\" : { \n" +
+ " }\n" +
+ "}";
+
+ InputStream propStr = TestSdncJsonDmaapConsumer.class.getResourceAsStream("/dmaap-consumer-pserver.properties");
+ Properties props = new Properties();
+
+ props.load(propStr);
+
+ consumer.init(props, "src/test/resources/dmaap-consumer-pserver.properties");
+ consumer.processMsg(msg);
+ }
@Test(expected = InvalidMessageException.class)
- public void testProcessMsgNullFieldMap_shouldThrowException() throws Exception {
+ public void testProcessMsgFieldMapNoFieldMap() throws Exception {
SdncFlatJsonDmaapConsumer consumer = new SdncFlatJsonDmaapConsumer();
String msg = "{\n" +
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 963b20d68..ec01df534 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
@@ -9,6 +9,7 @@
package org.onap.ccsdk.sli.northbound.dmaapclient;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
import java.io.File;
import java.io.IOException;
@@ -22,6 +23,9 @@ import org.apache.commons.io.FileUtils;
import org.junit.Before;
import org.junit.Test;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
public class TestSdncPserverDmaapReceiver {
private static final String aaiInput = "{\r\n" +
" \"cambria.partition\": \"AAI\",\r\n" +
@@ -82,10 +86,20 @@ public class TestSdncPserverDmaapReceiver {
Properties props = new Properties();
String rpcMsgbody = new SdncAaiDmaapConsumer(props).publish("src/main/resources/template-pserver.vt", aaiInput);
-
- assertTrue(rpcMsgbody.indexOf("input") != -1);
- assertTrue(rpcMsgbody.indexOf("payload") != -1);
- assertTrue(rpcMsgbody.indexOf("common-header") != -1);
+
+ ObjectMapper oMapper = new ObjectMapper();
+ JsonNode aaiRootNode;
+ try {
+ aaiRootNode = oMapper.readTree(rpcMsgbody);
+ } catch (Exception e) {
+ throw new InvalidMessageException("Cannot parse json object", e);
+ }
+
+ assertTrue(aaiRootNode.get("input").get("payload") != null);
+ assertTrue(aaiRootNode.get("input").get("common-header") != null);
+
+ assertEquals(aaiRootNode.get("input").get("action-identifiers").get("action-name").textValue(), "dmaap-notification");
+ assertEquals(aaiRootNode.get("input").get("action-identifiers").get("mode").textValue(), "async");
}
@Test
diff --git a/dmaap-listener/src/test/resources/dmaap-consumer-generic-vnf.properties b/dmaap-listener/src/test/resources/dmaap-consumer-generic-vnf.properties
new file mode 100644
index 000000000..710a7c7c9
--- /dev/null
+++ b/dmaap-listener/src/test/resources/dmaap-consumer-generic-vnf.properties
@@ -0,0 +1,34 @@
+TransportType=DME2
+Latitude =47.778998
+Longitude =-122.182883
+Version =1.0
+ServiceName =dmaap-v1.dev.dmaap.dt.saat.acsi.att.com/events
+Environment =TEST
+Partner =
+SubContextPath =/
+Protocol =https
+MethodType =GET
+username =test
+password =test
+contenttype =application/json
+authKey=ABC123
+authDate=2016-05-10T13:13:50-0700
+host=localhost:3904
+topic=AAI-EVENT
+group=vnf
+id=1
+timeout=20000
+limit=10000
+filter={"class":"And","filters":[{"class":"Equals","field":"event-header.entity-type","value":"generic-vnf"},{"class":"Equals","field":"entity.vnf-type","value":"kvm-vpe"}]}
+AFT_DME2_EXCHANGE_REQUEST_HANDLERS=com.att.nsa.test.PreferredRouteRequestHandler
+AFT_DME2_EXCHANGE_REPLY_HANDLERS=com.att.nsa.test.PreferredRouteReplyHandler
+AFT_DME2_REQ_TRACE_ON=true
+AFT_ENVIRONMENT=AFTUAT
+AFT_DME2_EP_CONN_TIMEOUT=55000
+AFT_DME2_ROUNDTRIP_TIMEOUT_MS=240000
+AFT_DME2_EP_READ_TIMEOUT_MS=50000
+sessionstickinessrequired=NO
+DME2preferredRouterFilePath=src/test/resources/dmaap-listener.preferredRoute.txt
+sdnc.odl.user=admin
+sdnc.odl.password=admin
+sdnc.odl.url-base=http://localhost:8181/restconf/operations \ No newline at end of file
diff --git a/dmaap-listener/src/test/resources/dmaap-consumer-pserver.properties b/dmaap-listener/src/test/resources/dmaap-consumer-pserver.properties
index e3c4fdac8..9f5cfe71f 100644
--- a/dmaap-listener/src/test/resources/dmaap-consumer-pserver.properties
+++ b/dmaap-listener/src/test/resources/dmaap-consumer-pserver.properties
@@ -14,7 +14,7 @@ contenttype =application/json
authKey=ABC123
authDate=2016-05-10T13:13:50-0700
host=localhost:3904
-topic=ccsdk-topic
+topic=AAI-EVENT
group=pserver
id=1
timeout=20000