1 package org.onap.ccsdk.sli.northbound.dmaapclient;
 
   3 import static org.junit.Assert.assertEquals;
 
   4 import static org.junit.Assert.assertTrue;
 
   6 import java.util.Properties;
 
   8 import org.junit.Before;
 
  11 import com.fasterxml.jackson.databind.JsonNode;
 
  12 import com.fasterxml.jackson.databind.ObjectMapper;
 
  14 public class TestANRChangesFromPolicyToSDNRDmaapConsumer {
 
  15     private static final String anrChangesFromPolicyToSDNRInput = "{\n" +
 
  18             "      \"CommonHeader\": {\n" +
 
  19             "        \"TimeStamp\": \"2018-11-30T09:13:37.368Z\",\n" +
 
  20             "        \"APIVer\": \"1.0\",\n" +
 
  21             "        \"RequestID\": \"722ee65a-8afd-48df-bf57-c152ae45bacc\",\n" +
 
  22             "        \"SubRequestID\": \"1\",\n" +
 
  23             "        \"RequestTrack\": {},\n" +
 
  26             "\"Action\": \"ModifyConfigANR\",\n" +
 
  27             "      \"Payload\": \"{ \\\"Configurations\\\":[ { \\\"data\\\":{ \\\"FAPService\\\":{ \\\"alias\\\":\\\"Cell1\\\", \\\"CellConfig\\\":{ \\\"LTE\\\":{ \\\"RAN\\\":{ \\\"Common\\\":{ \\\"CellIdentity\\\":\\\"1\\\" }, \\\"NeighborListInUse\\\" : { \\\"LTECellNumberOfEntries\\\" : \\\"1\\\" , \\\"LTECell\\\" : [{ \\\"PLMNID\\\" :\\\"plmnid1\\\", \\\"CID\\\":\\\"Chn0001\\\", \\\"PhyCellID\\\":\\\"3\\\", \\\"PNFName\\\":\\\"ncserver01\\\", \\\"Blacklisted\\\":\\\"false\\\"}] } } } } } } } ] }\"\n" +
 
  30             "  \"version\": \"1.0\",\n" +
 
  31             "  \"rpc-name\": \"modifyconfiganr\",\n" +
 
  32             "  \"correlation-id\": \"722ee65a-8afd-48df-bf57-c152ae45bacc-1\",\n" +
 
  33             "  \"type\": \"request\"\n" +
 
  38         public void setUp() throws Exception {
 
  42         public void testRPCMessageBodyResponse() throws Exception {
 
  43                 Properties props = new Properties();
 
  45                 ObjectMapper oMapper = new ObjectMapper();
 
  46                 JsonNode anrChangesRootNode = oMapper.readTree(anrChangesFromPolicyToSDNRInput);
 
  47                 JsonNode body = anrChangesRootNode.get("body");
 
  48                 JsonNode input = body.get("input");
 
  49                 JsonNode payload = input.get("Payload");
 
  50                 String payloadText = payload.asText();
 
  51                 JsonNode configurationsJsonNode = oMapper.readTree(payloadText);
 
  52                 JsonNode configurations = configurationsJsonNode.get("Configurations");
 
  54                 for(JsonNode dataNode:configurations) {
 
  55                         String rpcMsgbody = new ANRChangesFromPolicyToSDNRDmaapConsumer(props).publish("src/main/resources/anr-pci-changes-from-policy-to-sdnr.vt", anrChangesFromPolicyToSDNRInput,dataNode);
 
  59                         rootNode = oMapper.readTree(rpcMsgbody);
 
  60                 } catch (Exception e) {
 
  61                     throw new InvalidMessageException("Cannot parse json object", e);
 
  64                 assertTrue(rootNode.get("input").get("module-name") != null); 
 
  65                 assertTrue(rootNode.get("input").get("rpc-name") != null); 
 
  66                 assertTrue(rootNode.get("input").get("mode") != null); 
 
  67                 assertTrue(rootNode.get("input").get("sli-parameter") != null); 
 
  71         @Test(expected = InvalidMessageException.class)
 
  72         public void testProcessMsgNullMessage() throws Exception {
 
  73                 ANRChangesFromPolicyToSDNRDmaapConsumer consumer = new ANRChangesFromPolicyToSDNRDmaapConsumer();
 
  74                 consumer.processMsg(null);
 
  77         @Test(expected = InvalidMessageException.class)
 
  78         public void testProcessMsgInvalidMessage() throws Exception {
 
  79                 ANRChangesFromPolicyToSDNRDmaapConsumer consumer = new ANRChangesFromPolicyToSDNRDmaapConsumer();
 
  80                 consumer.processMsg("test");
 
  84         public void testProcessMsgMissingActionHeader() throws Exception {
 
  85                 ANRChangesFromPolicyToSDNRDmaapConsumer consumer = new ANRChangesFromPolicyToSDNRDmaapConsumer();
 
  86                 consumer.processMsg("{\n" +
 
  89                     "      \"CommonHeader\": {\n" +
 
  90                     "        \"TimeStamp\": \"2018-11-30T09:13:37.368Z\",\n" +
 
  91                     "        \"APIVer\": \"1.0\",\n" +
 
  92                     "        \"RequestID\": \"722ee65a-8afd-48df-bf57-c152ae45bacc\",\n" +
 
  93                     "        \"SubRequestID\": \"1\",\n" +
 
  94                     "        \"RequestTrack\": {},\n" +
 
  97                     "\"NoAction\": \"ModifyConfigANR\",\n" +
 
  98                     "      \"Payload\": \"{ \\\"Configurations\\\":[ { \\\"data\\\":{ \\\"FAPService\\\":{ \\\"alias\\\":\\\"Cell1\\\", \\\"CellConfig\\\":{ \\\"LTE\\\":{ \\\"RAN\\\":{ \\\"Common\\\":{ \\\"CellIdentity\\\":\\\"1\\\" }, \\\"NeighborListInUse\\\" : { \\\"LTECellNumberOfEntries\\\" : \\\"1\\\" , \\\"LTECell\\\" : [{ \\\"PLMNID\\\" :\\\"plmnid1\\\", \\\"CID\\\":\\\"Chn0001\\\", \\\"PhyCellID\\\":\\\"3\\\", \\\"PNFName\\\":\\\"ncserver01\\\", \\\"Blacklisted\\\":\\\"false\\\"}] } } } } } } } ] }\"\n" +
 
 101                     "  \"version\": \"1.0\",\n" +
 
 102                     "  \"rpc-name\": \"modifyconfiganr\",\n" +
 
 103                     "  \"correlation-id\": \"722ee65a-8afd-48df-bf57-c152ae45bacc-1\",\n" +
 
 104                     "  \"type\": \"request\"\n" +
 
 110         public void testProcessMsgInvalidPayloadConfigurations() throws Exception {
 
 114                     "      \"CommonHeader\": {\n" +
 
 115                     "        \"TimeStamp\": \"2018-11-30T09:13:37.368Z\",\n" +
 
 116                     "        \"APIVer\": \"1.0\",\n" +
 
 117                     "        \"RequestID\": \"722ee65a-8afd-48df-bf57-c152ae45bacc\",\n" +
 
 118                     "        \"SubRequestID\": \"1\",\n" +
 
 119                     "        \"RequestTrack\": {},\n" +
 
 122                     "\"Action\": \"ModifyConfigANR\",\n" +
 
 123                     "      \"Payload\": \"{ \\\"Configurations\\\":{ { \\\"data\\\":{ \\\"FAPService\\\":{ \\\"alias\\\":\\\"Cell1\\\", \\\"CellConfig\\\":{ \\\"LTE\\\":{ \\\"RAN\\\":{ \\\"Common\\\":{ \\\"CellIdentity\\\":\\\"1\\\" }, \\\"NeighborListInUse\\\" : { \\\"LTECellNumberOfEntries\\\" : \\\"1\\\" , \\\"LTECell\\\" : [{ \\\"PLMNID\\\" :\\\"plmnid1\\\", \\\"CID\\\":\\\"Chn0001\\\", \\\"PhyCellID\\\":\\\"3\\\", \\\"PNFName\\\":\\\"ncserver01\\\", \\\"Blacklisted\\\":\\\"false\\\"}} } } } } } } } ] }\"\n" +
 
 126                     "  \"version\": \"1.0\",\n" +
 
 127                     "  \"rpc-name\": \"modifyconfiganr\",\n" +
 
 128                     "  \"correlation-id\": \"722ee65a-8afd-48df-bf57-c152ae45bacc-1\",\n" +
 
 129                     "  \"type\": \"request\"\n" +
 
 134                         ANRChangesFromPolicyToSDNRDmaapConsumer consumer = new ANRChangesFromPolicyToSDNRDmaapConsumer();
 
 135                         consumer.processMsg(msg);
 
 137                 } catch (final InvalidMessageException e) {
 
 138                         final String errorMsg = "Cannot parse payload value";
 
 139                         assertEquals(errorMsg, e.getMessage());