2 /*******************************************************************************
3 * ============LICENSE_START=======================================================
5 * ================================================================================
6 * Copyright (C) 2019-2020 Wipro Limited.
7 * ==============================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
21 *******************************************************************************/
22 package org.onap.dcaegen2.services.sonhms.dmaap;
24 import static org.junit.Assert.assertNotNull;
25 import static org.junit.Assert.assertNull;
27 import java.util.ArrayList;
28 import java.util.List;
30 import org.junit.Test;
31 import org.junit.runner.RunWith;
33 import org.mockito.Mock;
34 import org.mockito.Mockito;
35 import org.onap.dcaegen2.services.sonhms.Configuration;
36 import org.onap.dcaegen2.services.sonhms.dao.FixedPciCellsRepository;
37 import org.onap.dcaegen2.services.sonhms.dao.PciUpdateRepository;
38 import org.onap.dcaegen2.services.sonhms.entity.FixedPciCells;
39 import org.powermock.api.mockito.PowerMockito;
40 import org.powermock.core.classloader.annotations.PowerMockIgnore;
41 import org.powermock.core.classloader.annotations.PrepareForTest;
42 import org.powermock.modules.junit4.PowerMockRunner;
43 import org.powermock.modules.junit4.PowerMockRunnerDelegate;
44 import org.springframework.boot.test.context.SpringBootTest;
45 import org.springframework.test.context.junit4.SpringRunner;
46 import org.onap.dcaegen2.services.sonhms.utils.BeanUtil;
48 @RunWith(PowerMockRunner.class)
49 @PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*"})
50 @PowerMockRunnerDelegate(SpringRunner.class)
51 @SpringBootTest(classes = PolicyNotificationCallbackDuplicate.class)
52 @PrepareForTest({ BeanUtil.class, PolicyNotificationCallbackDuplicate.class, Configuration.class })
53 public class PolicyNotificationCallbackTest {
56 PciUpdateRepository pciUpdateRepositoryMock;
58 FixedPciCellsRepository fixedPciCellsRepositoryMock;
61 public void policyNotificationCallbackTest() {
62 PolicyNotificationCallbackDuplicate policyCallBackMock = PowerMockito
63 .spy(new PolicyNotificationCallbackDuplicate());
64 PowerMockito.mockStatic(BeanUtil.class);
66 Configuration configuration = Configuration.getInstance();
67 configuration = Configuration.getInstance();
68 configuration.setBufferTime(60);
69 configuration.setCallbackUrl("/callbackUrl");
70 List<String> list = new ArrayList<String>();
72 configuration.setDmaapServers(list);
73 configuration.setCg("cg");
74 configuration.setCid("cid");
75 configuration.setMaximumClusters(5);
76 configuration.setMinCollision(5);
77 configuration.setMinConfusion(5);
78 configuration.setNumSolutions(1);
79 configuration.setOofService("oofService");
80 configuration.setPollingInterval(30);
81 configuration.setPollingTimeout(100);
82 configuration.setConfigDbService("sdnrService");
83 configuration.setSourceId("sourceId");
84 configuration.setPolicyNegativeAckThreshold(3);
86 PowerMockito.mockStatic(Configuration.class);
88 Mockito.when(Configuration.getInstance()).thenReturn(configuration);
90 PowerMockito.when(BeanUtil.getBean(PciUpdateRepository.class)).thenReturn(pciUpdateRepositoryMock);
91 Mockito.when(pciUpdateRepositoryMock.getNegativeAckCountforCellId(Mockito.any())).thenReturn(5);
92 Mockito.when(pciUpdateRepositoryMock.getOldPciforCellId(Mockito.any())).thenReturn((long) 9);
93 PowerMockito.when(BeanUtil.getBean(FixedPciCellsRepository.class)).thenReturn(fixedPciCellsRepositoryMock);
95 String positivePolicyNotification = "{\"closedLoopControlName\":null,\"closedLoopAlarmStart\":0,\"closedLoopEventClient\":null,\"closedLoopEventStatus\":null,\"target\":null,\"from\":null,\"version\":null,\"policyName\":null,\"policyVersion\":null,\"payload\":\"{\\\"Configurations\\\":[{\\\"data\\\":{\\\"FAPService\\\":{\\\"alias\\\":\\\"Chn0001\\\",\\\"X0005b9Lte\\\":{\\\"phyCellIdInUse\\\":999,\\\"pnfName\\\":\\\"ncsServer-1\\\"},\\\"CellConfig\\\":{\\\"LTE\\\":{\\\"RAN\\\":{\\\"Common\\\":{\\\"CellIdentity\\\":\\\"Chn0001\\\"},\\\"NeighborListInUse\\\":null}}}}},\\\"Status\\\":{\\\"Code\\\":200,\\\"Value\\\":\\\"fail\\\"}}]}\",\"target_type\":null,\"requestID\":null,\"AAI\":null,\"Action\":null}";
96 policyCallBackMock.activateCallBack(positivePolicyNotification);
97 assertNull(policyCallBackMock.returnResult());
101 public void negativePolicyNotificationCallbackTest() {
103 PolicyNotificationCallbackDuplicate policyCallBackMock = PowerMockito
104 .spy(new PolicyNotificationCallbackDuplicate());
106 PowerMockito.mockStatic(BeanUtil.class);
108 Configuration configuration = Configuration.getInstance();
110 configuration = Configuration.getInstance();
111 configuration.setBufferTime(60);
112 configuration.setCallbackUrl("/callbackUrl");
113 List<String> list = new ArrayList<String>();
115 configuration.setDmaapServers(list);
116 configuration.setCg("cg");
117 configuration.setCid("cid");
118 configuration.setMaximumClusters(5);
119 configuration.setMinCollision(5);
120 configuration.setMinConfusion(5);
121 configuration.setNumSolutions(1);
122 configuration.setOofService("oofService");
123 configuration.setPollingInterval(30);
124 configuration.setPollingTimeout(100);
125 configuration.setConfigDbService("sdnrService");
126 configuration.setSourceId("sourceId");
127 configuration.setPolicyNegativeAckThreshold(3);
129 PowerMockito.mockStatic(Configuration.class);
131 Mockito.when(Configuration.getInstance()).thenReturn(configuration);
133 PowerMockito.when(BeanUtil.getBean(PciUpdateRepository.class)).thenReturn(pciUpdateRepositoryMock);
134 Mockito.when(pciUpdateRepositoryMock.getOldPciforCellId(Mockito.any())).thenReturn((long) 9);
135 PowerMockito.when(BeanUtil.getBean(FixedPciCellsRepository.class)).thenReturn(fixedPciCellsRepositoryMock);
137 Mockito.when(pciUpdateRepositoryMock.getNegativeAckCountforCellId(Mockito.any())).thenReturn(2);
138 String negativePolicyNotificationNegCount = "{\"closedLoopControlName\":null,\"closedLoopAlarmStart\":0,\"closedLoopEventClient\":null,\"closedLoopEventStatus\":null,\"target\":null,\"from\":null,\"version\":null,\"policyName\":null,\"policyVersion\":null,\"payload\":\"{\\\"Configurations\\\":[{\\\"data\\\":{\\\"FAPService\\\":{\\\"alias\\\":\\\"Chn0001\\\",\\\"X0005b9Lte\\\":{\\\"phyCellIdInUse\\\":999,\\\"pnfName\\\":\\\"ncsServer-1\\\"},\\\"CellConfig\\\":{\\\"LTE\\\":{\\\"RAN\\\":{\\\"Common\\\":{\\\"CellIdentity\\\":\\\"Chn0001\\\"},\\\"NeighborListInUse\\\":null}}}}},\\\"Status\\\":{\\\"Code\\\":400,\\\"Value\\\":\\\"fail\\\"}}]}\",\"target_type\":null,\"requestID\":null,\"AAI\":null,\"Action\":null}";
139 policyCallBackMock.activateCallBack(negativePolicyNotificationNegCount);
140 assertNull(policyCallBackMock.returnResult());
142 Mockito.when(pciUpdateRepositoryMock.getNegativeAckCountforCellId(Mockito.any())).thenReturn(7);
143 Mockito.when(fixedPciCellsRepositoryMock.save(Mockito.any())).thenReturn(new FixedPciCells());
144 String negativePolicyNotification = "{\"closedLoopControlName\":null,\"closedLoopAlarmStart\":0,\"closedLoopEventClient\":null,\"closedLoopEventStatus\":null,\"target\":null,\"from\":null,\"version\":null,\"policyName\":null,\"policyVersion\":null,\"payload\":\"{\\\"Configurations\\\":[{\\\"data\\\":{\\\"FAPService\\\":{\\\"alias\\\":\\\"Chn0001\\\",\\\"X0005b9Lte\\\":{\\\"phyCellIdInUse\\\":999,\\\"pnfName\\\":\\\"ncsServer-1\\\"},\\\"CellConfig\\\":{\\\"LTE\\\":{\\\"RAN\\\":{\\\"Common\\\":{\\\"CellIdentity\\\":\\\"Chn0001\\\"},\\\"NeighborListInUse\\\":null}}}}},\\\"Status\\\":{\\\"Code\\\":400,\\\"Value\\\":\\\"fail\\\"}}]}\",\"target_type\":null,\"requestID\":null,\"AAI\":null,\"Action\":null}";
145 policyCallBackMock.activateCallBack(negativePolicyNotification);
146 assertNotNull(policyCallBackMock.returnResult());