aboutsummaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorkrishnaa96 <krishna.moorthy6@wipro.com>2019-04-12 19:56:25 +0530
committerkrishnaa96 <krishna.moorthy6@wipro.com>2019-04-15 15:49:27 +0530
commit282711996763df7e081f3e41f42f8d475f14625c (patch)
treeba753b1bdd26999b973cb4c28ad300032c133fa6 /src/test
parent2896a24832902865313cd16081bba8b2d079748f (diff)
Implement DMaaP message handling from policy
Handling of dmaap response from policy implemented Blueprint updated for config policy fetch Fix sonar issues Change-Id: I7a8a54b5d62e5db94ea2bc2d28805d8f5680d579 Issue-ID: DCAEGEN2-1427 Signed-off-by: krishnaa96 <krishna.moorthy6@wipro.com>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/ConfigurationTest.java1
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponentTest.java4
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/PMNotificationHandlerTest.java15
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/child/TestChildThreadUtils.java1
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/PolicyDmaapClientTest.java152
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/model/NotificationTest.java6
-rw-r--r--src/test/java/org/onap/dcaegen2/services/sonhms/model/PayloadTest.java2
-rw-r--r--src/test/resources/policy_response.json10
8 files changed, 178 insertions, 13 deletions
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/ConfigurationTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/ConfigurationTest.java
index 6fb72c3..68b94fb 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/ConfigurationTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/ConfigurationTest.java
@@ -28,7 +28,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.hibernate.sql.ConditionFragment;
import org.junit.Test;
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponentTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponentTest.java
index 5bf76b3..4b36b32 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponentTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/DmaapNotificationsComponentTest.java
@@ -40,7 +40,7 @@ import org.mockito.Mock;
import org.onap.dcaegen2.services.sonhms.dao.DmaapNotificationsRepository;
import org.onap.dcaegen2.services.sonhms.dao.PerformanceNotificationsRepository;
import org.onap.dcaegen2.services.sonhms.model.Notification;
-import org.onap.dcaegen2.services.sonhms.model.PMNotification;
+import org.onap.dcaegen2.services.sonhms.model.PmNotification;
import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
@@ -104,7 +104,7 @@ public class DmaapNotificationsComponentTest {
.thenReturn(performanceNotificationsRepositoryMock);
when(performanceNotificationsRepositoryMock.getPerformanceNotificationFromQueue()).thenReturn(pmNotificationString);
- Either<PMNotification,Integer> result = component.getPmNotifications();
+ Either<PmNotification,Integer> result = component.getPmNotifications();
assertTrue(result.isLeft());
assertNotNull(result.left().value());
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/PMNotificationHandlerTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/PMNotificationHandlerTest.java
index 9cae5b6..cbd0265 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/PMNotificationHandlerTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/PMNotificationHandlerTest.java
@@ -40,7 +40,7 @@ import org.onap.dcaegen2.services.sonhms.dao.HandOverMetricsRepository;
import org.onap.dcaegen2.services.sonhms.dmaap.PolicyDmaapClient;
import org.onap.dcaegen2.services.sonhms.entity.HandOverMetrics;
import org.onap.dcaegen2.services.sonhms.model.Flag;
-import org.onap.dcaegen2.services.sonhms.model.PMNotification;
+import org.onap.dcaegen2.services.sonhms.model.PmNotification;
import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
@@ -69,20 +69,20 @@ public class PMNotificationHandlerTest {
private static String pmNotificationsString ;
private static String pmNotificationsString1 ;
- private static PMNotification pmNotification;
- private static PMNotification pmNotification1;
+ private static PmNotification pmNotification;
+ private static PmNotification pmNotification1;
@BeforeClass
public static void setup() {
pmNotificationsString=readFromFile("/pmNotification.json");
pmNotificationsString1=readFromFile("/pmNotification1.json");
ObjectMapper mapper = new ObjectMapper();
- pmNotification = new PMNotification();
- pmNotification1 = new PMNotification();
+ pmNotification = new PmNotification();
+ pmNotification1 = new PmNotification();
try {
- pmNotification = mapper.readValue(pmNotificationsString, PMNotification.class);
- pmNotification1 = mapper.readValue(pmNotificationsString1, PMNotification.class);
+ pmNotification = mapper.readValue(pmNotificationsString, PmNotification.class);
+ pmNotification1 = mapper.readValue(pmNotificationsString1, PmNotification.class);
} catch(Exception e) {
e.printStackTrace();
}
@@ -98,6 +98,7 @@ public class PMNotificationHandlerTest {
when(handOverMetricsRepositoryMock.save(new HandOverMetrics())).thenReturn(null);
when(flagMock.getHolder()).thenReturn("NONE");
when(policyDmaapClient.sendNotificationToPolicy(Mockito.anyString())).thenReturn(true);
+ when(policyDmaapClient.handlePolicyResponse(Mockito.anyString())).thenReturn(true);
assertTrue(pmNotificationHandler.handlePmNotifications(pmNotification, 50));
assertFalse(pmNotificationHandler.handlePmNotifications(null, 0));
assertTrue(pmNotificationHandler.handlePmNotifications(pmNotification1, 50));
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestChildThreadUtils.java b/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestChildThreadUtils.java
index 536f327..28940b3 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestChildThreadUtils.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/child/TestChildThreadUtils.java
@@ -187,6 +187,7 @@ public class TestChildThreadUtils {
pciPairList.add(cell2);
pciPairList.add(cell3);
pnfsMap.put("pnf1", pciPairList);
+ when(policyDmaapClient.handlePolicyResponse(Mockito.anyString())).thenReturn(true);
when(pnfUtils.getPnfs(async.getSolutions())).thenReturn(pnfsMap);
List<String> remNeighbors = new ArrayList<>();
remNeighbors.add("EXP006");
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/PolicyDmaapClientTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/PolicyDmaapClientTest.java
new file mode 100644
index 0000000..16f205f
--- /dev/null
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/dmaap/PolicyDmaapClientTest.java
@@ -0,0 +1,152 @@
+/*******************************************************************************
+ * ============LICENSE_START=======================================================
+ * son-handler
+ * ================================================================================
+ * Copyright (C) 2019 Wipro Limited.
+ * ==============================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ *
+ *******************************************************************************/
+
+package org.onap.dcaegen2.services.sonhms.dmaap;
+
+import static org.junit.Assert.*;
+
+import com.att.nsa.cambria.client.CambriaBatchingPublisher;
+import com.att.nsa.cambria.client.CambriaConsumer;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.onap.dcaegen2.services.sonhms.Configuration;
+import org.onap.dcaegen2.services.sonhms.utils.ClusterUtilsTest;
+import org.onap.dcaegen2.services.sonhms.utils.DmaapUtils;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@RunWith(MockitoJUnitRunner.class)
+@SpringBootTest(classes = PolicyDmaapClient.class)
+public class PolicyDmaapClientTest {
+
+ @Mock
+ Configuration configurationMock;
+
+ @Mock
+ DmaapUtils dmaapUtilsMock;
+
+ @InjectMocks
+ PolicyDmaapClient policyDmaapClient;
+
+ @Mock
+ CambriaConsumer policyResponseCambriaConsumerMock;
+
+ @Mock
+ CambriaBatchingPublisher cambriaBatchingPublisherMock;
+
+ @Mock
+ NotificationProducer notificationProducerMock;
+
+ @Before
+ public void setup() {
+ policyDmaapClient = new PolicyDmaapClient(dmaapUtilsMock, configurationMock);
+ }
+
+ @Test
+ public void handlePolicyResponseTest() {
+
+ Map<String, Object> streamsSubscribes = new HashMap<>();
+ Map<String, String> topics = new HashMap<>();
+ Map<String, Object> dmaapInfo = new HashMap<>();
+ topics.put("topic_url", "https://message-router.onap.svc.cluster.local:3905/events/DCAE_CL_RSP");
+ dmaapInfo.put("dmaap_info", topics);
+ streamsSubscribes.put("dcae_cl_response_topic", dmaapInfo);
+ System.out.println(streamsSubscribes);
+ String policyResponseString = readFromFile("/policy_response.json");
+ List<String> responseMsgs = new ArrayList<>();
+ responseMsgs.add(policyResponseString);
+ Iterable<String> msgs = () -> new Iterator<String>() {
+ private int index = 0;
+
+ @Override
+ public boolean hasNext() {
+ return responseMsgs.size() > index;
+ }
+
+ @Override
+ public String next() {
+ return responseMsgs.get(index++);
+ }
+ };
+ Mockito.when(configurationMock.getStreamsSubscribes()).thenReturn(streamsSubscribes);
+ Mockito.when(dmaapUtilsMock.buildConsumer(configurationMock, "DCAE_CL_RSP")).thenReturn(policyResponseCambriaConsumerMock);
+ try {
+ Mockito.when(policyResponseCambriaConsumerMock.fetch()).thenReturn(msgs);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ assertTrue(policyDmaapClient.handlePolicyResponse("9d2d790e-a5f0-11e8-98d0-529269fb1459"));
+ }
+
+ @Test
+ public void sendNotificationToPolicyTest() {
+ Map<String, Object> streamsPublishes = new HashMap<>();
+ Map<String, String> topics = new HashMap<>();
+ Map<String, Object> dmaapInfo = new HashMap<>();
+ topics.put("topic_url", "https://message-router.onap.svc.cluster.local:3905/events/DCAE_CL_OUTPUT");
+ dmaapInfo.put("dmaap_info", topics);
+ streamsPublishes.put("CL_topic", dmaapInfo);
+ Mockito.when(configurationMock.getStreamsPublishes()).thenReturn(streamsPublishes);
+ Mockito.when(dmaapUtilsMock.buildPublisher(configurationMock, "DCAE_CL_OUTPUT")).thenReturn(cambriaBatchingPublisherMock);
+ try {
+ Mockito.when(cambriaBatchingPublisherMock.send("", "hello")).thenReturn(0);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ assertTrue(policyDmaapClient.sendNotificationToPolicy("hello"));
+
+ }
+
+ private static String readFromFile(String file) {
+ String content = new String();
+ try {
+
+ InputStream is = ClusterUtilsTest.class.getResourceAsStream(file);
+ BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
+ content = bufferedReader.readLine();
+ String temp;
+ while ((temp = bufferedReader.readLine()) != null) {
+ content = content.concat(temp);
+ }
+ content = content.trim();
+ bufferedReader.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ content = null;
+ }
+ return content;
+ }
+}
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/model/NotificationTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/model/NotificationTest.java
index 12c4912..d4c7828 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/model/NotificationTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/model/NotificationTest.java
@@ -108,8 +108,10 @@ public class NotificationTest {
} catch (IOException e) {
e.printStackTrace();
}
-
- assertNotEquals(notif, notif1);
+
+ Notification notif2 = new Notification("9d2d790e-a5f0-11e8-98d0-529269fb1459", "{}", "SDNR", "1.0.2", "NeighborListModified", payload) ;
+ assertEquals(notif2.getPayload(), notif.getPayload());
+ assertNotEquals(notif, notif1);
assertEquals(notif.getAction(), notif1.getAction());
assertEquals(notif.getAai().toString(), notif1.getAai().toString());
diff --git a/src/test/java/org/onap/dcaegen2/services/sonhms/model/PayloadTest.java b/src/test/java/org/onap/dcaegen2/services/sonhms/model/PayloadTest.java
index e89c8c3..537630c 100644
--- a/src/test/java/org/onap/dcaegen2/services/sonhms/model/PayloadTest.java
+++ b/src/test/java/org/onap/dcaegen2/services/sonhms/model/PayloadTest.java
@@ -47,7 +47,7 @@ public class PayloadTest {
Data data = new Data(fapService);
- Configurations config = new Configurations(data);
+ Configurations config = new Configurations(data, null);
ArrayList<Configurations> al = new ArrayList<>();
al.add(config);
diff --git a/src/test/resources/policy_response.json b/src/test/resources/policy_response.json
new file mode 100644
index 0000000..37d263a
--- /dev/null
+++ b/src/test/resources/policy_response.json
@@ -0,0 +1,10 @@
+{
+ "closedLoopControlName": "ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459",
+ "requestID": "9d2d790e-a5f0-11e8-98d0-529269fb1459",
+ "target": "SONHandler",
+ "from": "SDNR",
+ "version": "1.0.2",
+ "policyName": "PCI",
+ "policyVersion": "1.0.2",
+ "payload": " { \"Configurations\":[ { \"Status\": { \"Code\": 200, \"Value\": \"SUCCESS\" }, \"data\":{\"FAPService\":{\"alias\":\"Chn0330\",\"X0005b9Lte\":{\"phyCellIdInUse\":6,\"pnfName\":\"ncserver23\"},\"CellConfig\":{\"LTE\":{\"RAN\":{\"Common\":{\"CellIdentity\":\"Chn0330\"}}}}}} } ] }"
+}