c784f90b3dd61d20f13b74879436c8db68cd2875
[dmaap/messagerouter/messageservice.git] / src / test / java / com / att / nsa / dmaap / service / ApiKeysRestServiceTest.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * ONAP Policy Engine\r
4  * ================================================================================\r
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END=========================================================\r
19  */\r
20 \r
21 package com.att.nsa.dmaap.service;\r
22 \r
23 import static org.junit.Assert.*;\r
24 \r
25 import java.io.IOException;\r
26 import java.lang.reflect.InvocationTargetException;\r
27 import java.lang.reflect.Method;\r
28 \r
29 import org.junit.After;\r
30 import org.junit.Before;\r
31 import org.junit.Test;\r
32 import org.junit.runner.RunWith;\r
33 \r
34 import org.onap.dmaap.dmf.mr.CambriaApiException;\r
35 import org.onap.dmaap.dmf.mr.beans.ApiKeyBean;\r
36 import com.att.nsa.configs.ConfigDbException;\r
37 import com.att.nsa.security.ReadWriteSecuredResource.AccessDeniedException;\r
38 \r
39 import static org.junit.Assert.assertTrue;\r
40 import static org.mockito.Mockito.when;\r
41 import org.mockito.InjectMocks;\r
42 import org.mockito.Mock;\r
43 import org.mockito.MockitoAnnotations;\r
44 import org.json.JSONException;\r
45 \r
46 import org.powermock.api.mockito.PowerMockito;\r
47 import org.powermock.core.classloader.annotations.PrepareForTest;\r
48 import org.powermock.modules.junit4.PowerMockRunner;\r
49 \r
50 import javax.servlet.http.HttpServletRequest;\r
51 import javax.servlet.http.HttpServletResponse;\r
52 \r
53 import org.onap.dmaap.dmf.mr.beans.DMaaPContext;\r
54 \r
55 import org.onap.dmaap.dmf.mr.utils.ConfigurationReader;\r
56 import org.onap.dmaap.dmf.mr.service.ApiKeysService;\r
57 import org.onap.dmaap.dmf.mr.utils.ConfigurationReader;\r
58 import com.att.nsa.configs.ConfigDbException;\r
59 import com.att.nsa.security.db.NsaApiDb.KeyExistsException;\r
60 \r
61 @RunWith(PowerMockRunner.class)\r
62 @PrepareForTest({ ServiceUtil.class })\r
63 public class ApiKeysRestServiceTest {\r
64 \r
65         @InjectMocks\r
66         private ApiKeysRestService service;\r
67 \r
68         @Mock\r
69         ApiKeysService apiKeyService;\r
70 \r
71         @Mock\r
72         DMaaPContext dmaapContext;\r
73 \r
74         @Mock\r
75         HttpServletRequest httpServReq;\r
76         @Mock\r
77         private HttpServletResponse response;\r
78         @Mock\r
79         private ConfigurationReader configReader;\r
80 \r
81         @Before\r
82         public void setUp() throws Exception {\r
83                 MockitoAnnotations.initMocks(this);\r
84         }\r
85 \r
86         @After\r
87         public void tearDown() throws Exception {\r
88         }\r
89 \r
90         @Test\r
91         public void testGetAllApiKeys() {\r
92 \r
93                 try {\r
94                         service.getAllApiKeys();\r
95                 } catch (CambriaApiException e) {\r
96                         // TODO Auto-generated catch block\r
97                         e.printStackTrace();\r
98                 } catch (NullPointerException e) {\r
99                         assertTrue(true);\r
100                 }\r
101 \r
102         }\r
103 \r
104         @Test\r
105         public void testGetAllApiKeys_error() throws ConfigDbException, IOException {\r
106                 PowerMockito.mockStatic(ServiceUtil.class);\r
107                 PowerMockito.when(ServiceUtil.getDMaaPContext(configReader, httpServReq, response)).thenReturn(dmaapContext);\r
108                 PowerMockito.doThrow(new IOException("error")).when(apiKeyService).getAllApiKeys(dmaapContext);\r
109                 try {\r
110                         service.getAllApiKeys();\r
111                 } catch (CambriaApiException e) {\r
112                         // TODO Auto-generated catch block\r
113                         assertTrue(true);\r
114                 } catch (NullPointerException e) {\r
115                         assertTrue(true);\r
116                 }\r
117 \r
118         }\r
119 \r
120         @Test\r
121         public void testGetApiKey() {\r
122 \r
123                 try {\r
124                         service.getApiKey("apikeyName");\r
125                 } catch (CambriaApiException e) {\r
126                         // TODO Auto-generated catch block\r
127                         e.printStackTrace();\r
128                 } catch (NullPointerException e) {\r
129                         assertTrue(true);\r
130                 }\r
131 \r
132         }\r
133 \r
134         @Test\r
135         public void testGetApiKey_error() throws ConfigDbException, IOException {\r
136                 PowerMockito.mockStatic(ServiceUtil.class);\r
137                 PowerMockito.when(ServiceUtil.getDMaaPContext(configReader, httpServReq, response)).thenReturn(dmaapContext);\r
138                 PowerMockito.doThrow(new IOException("error")).when(apiKeyService).getApiKey(dmaapContext, "apikeyName");\r
139 \r
140                 try {\r
141                         service.getApiKey("apikeyName");\r
142                 } catch (CambriaApiException e) {\r
143                         // TODO Auto-generated catch block\r
144                         assertTrue(true);\r
145                 } catch (NullPointerException e) {\r
146                         assertTrue(true);\r
147                 }\r
148 \r
149         }\r
150 \r
151         @Test\r
152         public void testCreateApiKey() {\r
153 \r
154                 try {\r
155                         service.createApiKey(new ApiKeyBean("hs647a@att.com", "test apikey"));\r
156                 } catch (CambriaApiException e) {\r
157                         // TODO Auto-generated catch block\r
158                         e.printStackTrace();\r
159                 } catch (NullPointerException e) {\r
160                         assertTrue(true);\r
161                 }\r
162 \r
163         }\r
164 \r
165         @Test\r
166         public void testCreateApiKey_error()\r
167                         throws CambriaApiException, JSONException, KeyExistsException, ConfigDbException, IOException {\r
168 \r
169                 ApiKeyBean bean = new ApiKeyBean("test@onap.com", "test apikey");\r
170                 PowerMockito.mockStatic(ServiceUtil.class);\r
171                 PowerMockito.when(ServiceUtil.getDMaaPContext(configReader, httpServReq, response)).thenReturn(dmaapContext);\r
172                 PowerMockito.doThrow(new IOException("error")).when(apiKeyService).createApiKey(dmaapContext, bean);\r
173 \r
174                 try {\r
175                         service.createApiKey(bean);\r
176                 } catch (CambriaApiException e) {\r
177                         assertTrue(true);\r
178                 } catch (NullPointerException e) {\r
179                         assertTrue(true);\r
180                 }\r
181 \r
182         }\r
183 \r
184         @Test\r
185         public void testUpdateApiKey() {\r
186 \r
187                 try {\r
188                         service.updateApiKey("apikeyName", new ApiKeyBean("hs647a@att.com", "test apikey"));\r
189                 } catch (CambriaApiException e) {\r
190                         // TODO Auto-generated catch block\r
191                         e.printStackTrace();\r
192                 } catch (NullPointerException e) {\r
193                         assertTrue(true);\r
194                 }\r
195 \r
196         }\r
197 \r
198         @Test\r
199         public void testUpdateApiKey_error() throws CambriaApiException, JSONException, KeyExistsException,\r
200                         ConfigDbException, IOException, AccessDeniedException {\r
201 \r
202                 ApiKeyBean bean = new ApiKeyBean("test@onap.com", "test apikey");\r
203                 PowerMockito.mockStatic(ServiceUtil.class);\r
204                 PowerMockito.when(ServiceUtil.getDMaaPContext(configReader, httpServReq, response)).thenReturn(dmaapContext);\r
205                 PowerMockito.doThrow(new IOException("error")).when(apiKeyService).updateApiKey(dmaapContext, "apikeyName",\r
206                                 bean);\r
207                 try {\r
208                         service.updateApiKey("apikeyName", bean);\r
209                 } catch (CambriaApiException e) {\r
210                         // TODO Auto-generated catch block\r
211                         e.printStackTrace();\r
212                 } catch (NullPointerException e) {\r
213                         assertTrue(true);\r
214                 }\r
215 \r
216         }\r
217 \r
218         @Test\r
219         public void testDeleteApiKey() {\r
220 \r
221                 try {\r
222                         service.deleteApiKey("apikeyName");\r
223                 } catch (CambriaApiException e) {\r
224                         // TODO Auto-generated catch block\r
225                         e.printStackTrace();\r
226                 } catch (NullPointerException e) {\r
227                         assertTrue(true);\r
228                 }\r
229 \r
230         }\r
231 \r
232 }