Upgrade son-handler to support Java-11
[dcaegen2/services/son-handler.git] / src / test / java / org / onap / dcaegen2 / services / sonhms / dmaap / PolicyNotificationCallbackTest.java
1
2 /*******************************************************************************
3  *  ============LICENSE_START=======================================================
4  *  son-handler
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
11  *  
12  *          http://www.apache.org/licenses/LICENSE-2.0
13  *  
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=========================================================
20  *  
21  *******************************************************************************/
22 package org.onap.dcaegen2.services.sonhms.dmaap;
23
24 import static org.junit.Assert.assertNotNull;
25 import static org.junit.Assert.assertNull;
26
27 import java.util.ArrayList;
28 import java.util.List;
29
30 import org.junit.Test;
31 import org.junit.runner.RunWith;
32
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;
47
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 {
54
55         @Mock
56         PciUpdateRepository pciUpdateRepositoryMock;
57         @Mock
58         FixedPciCellsRepository fixedPciCellsRepositoryMock;
59
60         @Test
61         public void policyNotificationCallbackTest() {
62                 PolicyNotificationCallbackDuplicate policyCallBackMock = PowerMockito
63                                 .spy(new PolicyNotificationCallbackDuplicate());
64                 PowerMockito.mockStatic(BeanUtil.class);
65
66                 Configuration configuration = Configuration.getInstance();
67                 configuration = Configuration.getInstance();
68                 configuration.setBufferTime(60);
69                 configuration.setCallbackUrl("/callbackUrl");
70                 List<String> list = new ArrayList<String>();
71                 list.add("server");
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);
85
86                 PowerMockito.mockStatic(Configuration.class);
87
88                 Mockito.when(Configuration.getInstance()).thenReturn(configuration);
89
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);
94
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());
98
99         }
100
101         public void negativePolicyNotificationCallbackTest() {
102
103                 PolicyNotificationCallbackDuplicate policyCallBackMock = PowerMockito
104                                 .spy(new PolicyNotificationCallbackDuplicate());
105
106                 PowerMockito.mockStatic(BeanUtil.class);
107
108                 Configuration configuration = Configuration.getInstance();
109
110                 configuration = Configuration.getInstance();
111                 configuration.setBufferTime(60);
112                 configuration.setCallbackUrl("/callbackUrl");
113                 List<String> list = new ArrayList<String>();
114                 list.add("server");
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);
128
129                 PowerMockito.mockStatic(Configuration.class);
130
131                 Mockito.when(Configuration.getInstance()).thenReturn(configuration);
132
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);
136
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());
141
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());
147         }
148
149 }