diff options
author | krishnaa96 <krishna.moorthy6@wipro.com> | 2019-04-12 19:56:25 +0530 |
---|---|---|
committer | krishnaa96 <krishna.moorthy6@wipro.com> | 2019-04-15 15:49:27 +0530 |
commit | 282711996763df7e081f3e41f42f8d475f14625c (patch) | |
tree | ba753b1bdd26999b973cb4c28ad300032c133fa6 /src/test | |
parent | 2896a24832902865313cd16081bba8b2d079748f (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')
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\"}}}}}} } ] }" +} |