66b63a17d0259fde1cfc789cf3768b59eb17a375
[ccsdk/sli.git] /
1 package org.onap.ccsdk.sli.northbound.dmaapclient;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertTrue;
5
6 import java.util.Properties;
7
8 import org.junit.Before;
9 import org.junit.Test;
10
11 import com.fasterxml.jackson.databind.JsonNode;
12 import com.fasterxml.jackson.databind.ObjectMapper;
13
14 public class TestANRChangesFromPolicyToSDNRDmaapConsumer {
15     private static final String anrChangesFromPolicyToSDNRInput = "{\n" +
16             "  \"body\": {\n" +
17             "    \"input\": {\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" +
24             "        \"Flags\": {}\n" +
25             "      },\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" +
28             "    }\n" +
29             "  },\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" +
34             "}\n" +
35             "";
36     
37         @Before
38         public void setUp() throws Exception {
39         }
40
41         @Test
42         public void testRPCMessageBodyResponse() throws Exception {
43                 Properties props = new Properties();
44                 
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");
53                 
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);
56                 
57                 JsonNode rootNode;
58                 try {
59                         rootNode = oMapper.readTree(rpcMsgbody);
60                 } catch (Exception e) {
61                     throw new InvalidMessageException("Cannot parse json object", e);
62                 }       
63
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); 
68                 }
69         }
70
71         @Test(expected = InvalidMessageException.class)
72         public void testProcessMsgNullMessage() throws Exception {
73                 ANRChangesFromPolicyToSDNRDmaapConsumer consumer = new ANRChangesFromPolicyToSDNRDmaapConsumer();
74                 consumer.processMsg(null);
75         }
76
77         @Test(expected = InvalidMessageException.class)
78         public void testProcessMsgInvalidMessage() throws Exception {
79                 ANRChangesFromPolicyToSDNRDmaapConsumer consumer = new ANRChangesFromPolicyToSDNRDmaapConsumer();
80                 consumer.processMsg("test");
81         }
82
83         @Test
84         public void testProcessMsgMissingActionHeader() throws Exception {
85                 ANRChangesFromPolicyToSDNRDmaapConsumer consumer = new ANRChangesFromPolicyToSDNRDmaapConsumer();
86                 consumer.processMsg("{\n" +
87                     "  \"body\": {\n" +
88                     "    \"input\": {\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" +
95                     "        \"Flags\": {}\n" +
96                     "      },\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" +
99                     "    }\n" +
100                     "  },\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" +
105                     "}\n" +
106                     "");
107         }
108
109         @Test
110         public void testProcessMsgInvalidPayloadConfigurations() throws Exception {
111                 String msg = "{\n" +
112                     "  \"body\": {\n" +
113                     "    \"input\": {\n" +
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" +
120                     "        \"Flags\": {}\n" +
121                     "      },\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" +
124                     "    }\n" +
125                     "  },\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" +
130                     "}\n" +
131                     "";
132                 
133                 try {
134                         ANRChangesFromPolicyToSDNRDmaapConsumer consumer = new ANRChangesFromPolicyToSDNRDmaapConsumer();
135                         consumer.processMsg(msg);
136
137                 } catch (final InvalidMessageException e) {
138                         final String errorMsg = "Cannot parse payload value";
139                         assertEquals(errorMsg, e.getMessage());
140                 }
141         }
142 }