Resubmitting KeyProperty code change since tests failed
[portal.git] / ecomp-portal-BE-common / src / test / java / org / onap / portalapp / portal / service / MicroserviceServiceImplTest.java
1 /*-
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * ===================================================================
7  *
8  * Unless otherwise specified, all software contained herein is licensed
9  * under the Apache License, Version 2.0 (the "License");
10  * you may not use this software except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *             http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  * Unless otherwise specified, all documentation contained herein is licensed
22  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23  * you may not use this documentation except in compliance with the License.
24  * You may obtain a copy of the License at
25  *
26  *             https://creativecommons.org/licenses/by/4.0/
27  *
28  * Unless required by applicable law or agreed to in writing, documentation
29  * distributed under the License is distributed on an "AS IS" BASIS,
30  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31  * See the License for the specific language governing permissions and
32  * limitations under the License.
33  *
34  * ============LICENSE_END============================================
35  *
36  * 
37  */
38 package org.onap.portalapp.portal.service;
39
40 import static org.junit.Assert.assertEquals;
41 import static org.junit.Assert.assertNotNull;
42
43 import java.util.ArrayList;
44 import java.util.List;
45
46 import javax.crypto.BadPaddingException;
47
48 import org.hibernate.criterion.Criterion;
49 import org.hibernate.criterion.Restrictions;
50 import org.junit.Before;
51 import org.junit.Test;
52 import org.junit.runner.RunWith;
53 import org.mockito.InjectMocks;
54 import org.mockito.Mock;
55 import org.mockito.Mockito;
56 import org.mockito.MockitoAnnotations;
57 import org.onap.portalapp.portal.domain.MicroserviceData;
58 import org.onap.portalapp.portal.domain.MicroserviceParameter;
59 import org.onap.portalapp.portal.utils.EPCommonSystemProperties;
60 import org.onap.portalsdk.core.onboarding.util.CipherUtil;
61 import org.onap.portalsdk.core.onboarding.util.KeyConstants;
62 import org.onap.portalsdk.core.onboarding.util.KeyProperties;
63 import org.onap.portalsdk.core.service.DataAccessService;
64 import org.onap.portalsdk.core.service.DataAccessServiceImpl;
65 import org.onap.portalsdk.core.util.SystemProperties;
66 import org.powermock.api.mockito.PowerMockito;
67 import org.powermock.core.classloader.annotations.PrepareForTest;
68 import org.powermock.modules.junit4.PowerMockRunner;
69
70 @RunWith(PowerMockRunner.class)
71 @PrepareForTest({Criterion.class, Restrictions.class, CipherUtil.class, EPCommonSystemProperties.class, SystemProperties.class, KeyProperties.class, KeyConstants.class})
72 public class MicroserviceServiceImplTest {
73         
74         private static final String TEST="test";
75         @Mock
76         DataAccessService dataAccessService = new DataAccessServiceImpl();
77
78         @Before
79         public void setup() {
80                 MockitoAnnotations.initMocks(this);
81         }
82         
83         @InjectMocks
84         MicroserviceServiceImpl microserviceServiceImpl = new MicroserviceServiceImpl();
85
86         @Test
87         public void saveMicroserviceTest() throws Exception {
88                 MicroserviceData microserviceData = new MicroserviceData();
89                 List<MicroserviceParameter> microserviceParameters = new ArrayList<>();
90                 MicroserviceParameter microserviceParameter = new MicroserviceParameter();
91                 microserviceParameter.setId(1l);
92                 microserviceParameter.setPara_key("test");
93                 microserviceParameter.setPara_value("test");
94                 microserviceParameters.add(microserviceParameter);
95                 microserviceData.setActive("true");
96                 microserviceData.setAppId(1l);
97                 microserviceData.setId(1l);
98                 microserviceData.setParameterList(microserviceParameters); 
99                 Long actual = microserviceServiceImpl.saveMicroservice(microserviceData);
100                 assertEquals((Long)1l, actual);
101         }
102         
103         @Test
104         public void saveServiceParametersTest() throws Exception {
105                 MicroserviceData microserviceData = new MicroserviceData();
106                 List<MicroserviceParameter> microserviceParameters = new ArrayList<>();
107                 MicroserviceParameter microserviceParameter = new MicroserviceParameter();
108                 microserviceParameter.setId(1l);
109                 microserviceParameter.setPara_key("test");
110                 microserviceParameter.setPara_value("test");
111                 microserviceParameters.add(microserviceParameter);
112                 microserviceData.setActive("true");
113                 microserviceData.setAppId(1l);
114                 microserviceData.setId(1l);
115                 microserviceData.setParameterList(microserviceParameters); 
116                 microserviceServiceImpl.saveServiceParameters(1l, microserviceParameters);
117         }
118         
119         @SuppressWarnings("unchecked")
120         @Test
121         public void getMicroserviceDataByIdTest() throws Exception {
122                 PowerMockito.mockStatic(Restrictions.class);
123                 PowerMockito.mockStatic(Criterion.class);
124                 MicroserviceData microserviceData = new MicroserviceData();
125                 List<MicroserviceParameter> microserviceParameters = new ArrayList<>();
126                 MicroserviceParameter microserviceParameter = new MicroserviceParameter();
127                 microserviceParameter.setId(1l);
128                 microserviceParameter.setPara_key("test");
129                 microserviceParameter.setPara_value("test");
130                 microserviceParameters.add(microserviceParameter);
131                 microserviceData.setActive("true");
132                 microserviceData.setAppId(1l);
133                 microserviceData.setId(1l);
134                 List<Criterion> restrictionsList = new ArrayList<Criterion>();
135                 Criterion idCriterion = Restrictions.eq("id", 1l);
136                 restrictionsList.add(idCriterion);
137                 List<MicroserviceData> microserviceDatas = new ArrayList<>();
138                 microserviceDatas.add(microserviceData);
139                 Mockito.when((List<MicroserviceData>) dataAccessService.getList(MicroserviceData.class, null, restrictionsList, null)).thenReturn(microserviceDatas);
140                 List<Criterion> restrictionsList2 = new ArrayList<Criterion>();
141                 Criterion serviceIdCriterion = Restrictions.eq("serviceId", 1l);
142                 restrictionsList2.add(serviceIdCriterion);
143                 Mockito.when((List<MicroserviceParameter>) dataAccessService.getList(MicroserviceParameter.class, null, restrictionsList2, null)).thenReturn(microserviceParameters);
144                 MicroserviceData actual = microserviceServiceImpl.getMicroserviceDataById(1l);
145                 assertNotNull(actual);
146         }
147         
148         @SuppressWarnings({ "unchecked", "deprecation" })
149         @Test
150         public void getMicroserviceDataTest() throws Exception {
151                 PowerMockito.mockStatic(SystemProperties.class);
152                 PowerMockito.mockStatic(CipherUtil.class);
153                 PowerMockito.mockStatic(Restrictions.class);
154                 PowerMockito.mockStatic(Criterion.class);
155                 PowerMockito.mockStatic(KeyProperties.class);
156                 PowerMockito.mockStatic(KeyConstants.class);
157                 List<MicroserviceParameter> microserviceParameters = new ArrayList<>();
158                 MicroserviceData microserviceData = new MicroserviceData();
159                 MicroserviceParameter microserviceParameter = new MicroserviceParameter();
160                 microserviceParameter.setId(1l);
161                 microserviceParameter.setPara_key("test");
162                 microserviceParameter.setPara_value("test");
163                 microserviceParameters.add(microserviceParameter);
164                 microserviceData.setActive("true");
165                 microserviceData.setAppId(1l);
166                 microserviceData.setPassword("xyz");
167                 microserviceData.setId(1l);
168                 List<MicroserviceData> microserviceDatas = new ArrayList<>();
169                 microserviceDatas.add(microserviceData);
170                 Mockito.when((List<MicroserviceData>) dataAccessService.getList(MicroserviceData.class, null)).thenReturn(microserviceDatas);
171                 List<Criterion> restrictionsList2 = new ArrayList<Criterion>();
172                 Criterion serviceIdCriterion = Restrictions.eq("serviceId", 1l);
173                 restrictionsList2.add(serviceIdCriterion);
174                 Mockito.when((List<MicroserviceParameter>) dataAccessService.getList(MicroserviceParameter.class, null, restrictionsList2, null)).thenReturn(microserviceParameters);
175                 Mockito.when(CipherUtil.decryptPKC("xyz",KeyProperties.getProperty(KeyConstants.CIPHER_ENCRYPTION_KEY))).thenReturn("abc");
176                 List<MicroserviceData> actual = microserviceServiceImpl.getMicroserviceData();
177                 assertNotNull(actual);
178         }
179         
180         @SuppressWarnings({ "unchecked", "deprecation", "static-access" })
181         @Test
182         public void getMicroserviceDataBadPaddingExceptionTest() throws Exception {
183                 PowerMockito.mockStatic(SystemProperties.class);
184                 PowerMockito.mockStatic(CipherUtil.class);
185                 PowerMockito.mockStatic(Restrictions.class);
186                 PowerMockito.mockStatic(Criterion.class);
187                 PowerMockito.mockStatic(KeyProperties.class);
188                 PowerMockito.mockStatic(KeyConstants.class);
189                 List<MicroserviceParameter> microserviceParameters = new ArrayList<>();
190                 MicroserviceData microserviceData = new MicroserviceData();
191                 MicroserviceParameter microserviceParameter = new MicroserviceParameter();
192                 microserviceParameter.setId(1l);
193                 microserviceParameter.setPara_key("test");
194                 microserviceParameter.setPara_value("test");
195                 microserviceParameters.add(microserviceParameter);
196                 microserviceData.setActive("true");
197                 microserviceData.setAppId(1l);
198                 microserviceData.setPassword("xyz");
199                 microserviceData.setId(1l);
200                 List<MicroserviceData> microserviceDatas = new ArrayList<>();
201                 microserviceDatas.add(microserviceData);
202                 Mockito.when((List<MicroserviceData>) dataAccessService.getList(MicroserviceData.class, null)).thenReturn(microserviceDatas);
203                 List<Criterion> restrictionsList2 = new ArrayList<Criterion>();
204                 Criterion serviceIdCriterion = Restrictions.eq("serviceId", 1l);
205                 restrictionsList2.add(serviceIdCriterion);
206                 Mockito.when((List<MicroserviceParameter>) dataAccessService.getList(MicroserviceParameter.class, null, restrictionsList2, null)).thenReturn(microserviceParameters);
207                 Mockito.when(CipherUtil.decryptPKC("xyz",KeyProperties.getProperty(KeyConstants.CIPHER_ENCRYPTION_KEY))).thenThrow(BadPaddingException.class);
208                 List<MicroserviceData> actual = microserviceServiceImpl.getMicroserviceData();
209                 assertNotNull(actual);
210         }
211         
212         @Test
213         public void updateMicroservice()throws Exception {
214                 
215                 List<MicroserviceParameter> microserviceParameters = new ArrayList<>();
216                 MicroserviceParameter microserviceParameter = new MicroserviceParameter();
217                 microserviceParameter.setId(1l);
218                 microserviceParameter.setPara_key(TEST);
219                 microserviceParameter.setPara_value(TEST);
220                 microserviceParameters.add(microserviceParameter);
221                 List<Criterion> restrictionsList = new ArrayList<Criterion>();
222                 
223                 PowerMockito.mockStatic(Restrictions.class);
224                 PowerMockito.mockStatic(CipherUtil.class);
225                 Criterion serviceIdCriterion = Restrictions.eq("serviceId", 1l);
226                 restrictionsList.add(serviceIdCriterion);
227                 PowerMockito.mockStatic(KeyProperties.class);
228                 PowerMockito.mockStatic(KeyConstants.class);
229                 Mockito.when(KeyProperties.getProperty(KeyConstants.CIPHER_ENCRYPTION_KEY)).thenReturn(TEST);
230                 Mockito.when(CipherUtil.encryptPKC(TEST, TEST)).thenReturn(TEST);
231                 Mockito.when((List<MicroserviceParameter>) dataAccessService.getList(MicroserviceParameter.class, null, restrictionsList, null)).thenReturn(microserviceParameters);
232                 microserviceServiceImpl.updateMicroservice(1l, buildData());
233                 
234         }
235         
236         @Test
237         public void getParametersById() {
238                 List<Criterion> restrictionsList = new ArrayList<Criterion>();
239                 PowerMockito.mockStatic(Restrictions.class);
240                 PowerMockito.mockStatic(CipherUtil.class);
241                 Criterion serviceIdCriterion = Restrictions.eq("serviceId", 1l);
242                 restrictionsList.add(serviceIdCriterion);
243                 Mockito.when((List<MicroserviceParameter>) dataAccessService.getList(MicroserviceParameter.class, null, restrictionsList, null)).thenReturn(buildData().getParameterList());
244                 
245                 List<MicroserviceParameter> parameters= microserviceServiceImpl.getParametersById(1l);
246                 assertEquals(TEST, parameters.get(0).getPara_key());
247         }
248         
249         @Test
250         public void deleteMicroservice()throws Exception {
251                 microserviceServiceImpl.deleteMicroservice(1l);
252                 
253         }
254         
255         
256         public MicroserviceData buildData() {
257                 MicroserviceData microserviceData=new MicroserviceData();
258                 microserviceData.setId((long)1);
259                 microserviceData.setName(TEST);
260                 microserviceData.setActive(TEST);
261                 microserviceData.setDesc(TEST);
262                 microserviceData.setAppId((long)1);
263                 microserviceData.setUrl(TEST);
264                 microserviceData.setSecurityType(TEST);
265                 microserviceData.setUsername(TEST);
266                 microserviceData.setPassword(TEST);
267                 
268                 List<MicroserviceParameter> microserviceParameters = new ArrayList<>();
269                 MicroserviceParameter microserviceParameter = new MicroserviceParameter();
270                 microserviceParameter.setId(1l);
271                 microserviceParameter.setPara_key(TEST);
272                 microserviceParameter.setPara_value(TEST);
273                 microserviceParameters.add(microserviceParameter);
274                 microserviceData.setParameterList(microserviceParameters);
275                 
276                 return microserviceData;
277         }
278         
279 }