e62a940ce8b8cff3f54f1f567f6193acb8610e00
[portal.git] / ecomp-portal-BE-common / src / test / java / org / openecomp / portalapp / portal / controller / AppsControllerExternalRequestTest.java
1 package org.openecomp.portalapp.portal.controller;
2
3 import static org.junit.Assert.assertEquals;
4
5 import java.util.ArrayList;
6 import java.util.List;
7
8 import javax.servlet.http.HttpServletRequest;
9 import javax.servlet.http.HttpServletResponse;
10
11 import org.junit.Before;
12 import org.junit.Test;
13 import org.mockito.InjectMocks;
14 import org.mockito.Mock;
15 import org.mockito.Mockito;
16 import org.mockito.MockitoAnnotations;
17 import org.openecomp.portalapp.portal.framework.MockitoTestSuite;
18 import org.openecomp.portalapp.portal.controller.AppsControllerExternalRequest;
19 import org.openecomp.portalapp.portal.core.MockEPUser;
20 import org.openecomp.portalapp.portal.domain.EPApp;
21 import org.openecomp.portalapp.portal.domain.EPUser;
22 import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse;
23 import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum;
24 import org.openecomp.portalapp.portal.service.AdminRolesService;
25 import org.openecomp.portalapp.portal.service.EPAppService;
26 import org.openecomp.portalapp.portal.service.PortalAdminService;
27 import org.openecomp.portalapp.portal.service.UserService;
28 import org.openecomp.portalapp.portal.service.UserServiceImpl;
29 import org.openecomp.portalapp.portal.transport.FieldsValidator;
30 import org.openecomp.portalapp.portal.transport.OnboardingApp;
31 import org.openecomp.portalapp.util.EPUserUtils;
32
33 public class AppsControllerExternalRequestTest extends MockitoTestSuite {
34
35         @Mock
36         AdminRolesService adminRolesService;
37
38         @Mock
39         EPAppService appService;
40
41         @Mock
42         PortalAdminService portalAdminService;
43
44         @Mock
45         UserService userService = new UserServiceImpl();
46
47         @InjectMocks
48         AppsControllerExternalRequest appsControllerExternalRequest = new AppsControllerExternalRequest();
49
50         @Before
51         public void setup() {
52                 MockitoAnnotations.initMocks(this);
53         }
54
55         MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
56
57         HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
58         HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
59         NullPointerException nullPointerException = new NullPointerException();
60
61         MockEPUser mockUser = new MockEPUser();
62         @Mock
63         EPUserUtils ePUserUtils = new EPUserUtils();
64
65         @Test
66         public void postPortalAdminIfUSerNullTest() {
67                 PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
68                 expectedportalRestResponse.setMessage("Missing required field: email, loginId, or loginPwd");
69                 expectedportalRestResponse.setResponse(null);
70                 PortalRestStatusEnum portalRestStatusEnum = null;
71                 expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
72                 EPUser user = mockUser.mockEPUser();
73                 user.setEmail("guestT@test.portal.onap.org");
74                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
75                 PortalRestResponse<String> actualPortalRestResponse = appsControllerExternalRequest
76                                 .postPortalAdmin(mockedRequest, mockedResponse, user);
77                 assertEquals(actualPortalRestResponse, expectedportalRestResponse);
78         }
79
80         @Test
81         public void postPortalAdminTest() {
82                 PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
83                 expectedportalRestResponse.setMessage("java.lang.NullPointerException");
84                 expectedportalRestResponse.setResponse(null);
85                 PortalRestStatusEnum portalRestStatusEnum = null;
86                 expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
87                 EPUser user = mockUser.mockEPUser();
88                 user.setEmail("guestT@test.portal.onap.org");
89                 user.setLoginPwd("pwd");
90                 user.setLoginId("Test");
91                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
92                 Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenThrow(nullPointerException);
93                 PortalRestResponse<String> actualPortalRestResponse = appsControllerExternalRequest
94                                 .postPortalAdmin(mockedRequest, mockedResponse, user);
95                 assertEquals(actualPortalRestResponse, expectedportalRestResponse);
96         }
97
98         @Test
99         public void postPortalAdminCreateUserIfNotFoundTest() throws Exception {
100                 PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
101                 expectedportalRestResponse.setMessage(null);
102                 expectedportalRestResponse.setResponse(null);
103                 PortalRestStatusEnum portalRestStatusEnum = null;
104                 expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
105                 EPUser user = mockUser.mockEPUser();
106                 user.setEmail("guestT@test.portal.onap.org");
107                 user.setLoginPwd("pwd");
108                 user.setLoginId("Test");
109                 List<EPUser> expectedList = null;
110                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
111                 Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenReturn(expectedList);
112                 Mockito.when(userService.saveNewUser(user, "Yes")).thenReturn(null);
113                 PortalRestResponse<String> actualPortalRestResponse = appsControllerExternalRequest
114                                 .postPortalAdmin(mockedRequest, mockedResponse, user);
115                 assertEquals(actualPortalRestResponse, expectedportalRestResponse);
116         }
117
118         @Test
119         public void postPortalAdminCreateUserIfFoundTest() throws Exception {
120                 PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
121                 expectedportalRestResponse.setMessage(null);
122                 expectedportalRestResponse.setResponse(null);
123                 PortalRestStatusEnum portalRestStatusEnum = null;
124                 expectedportalRestResponse.setStatus(portalRestStatusEnum.OK);
125                 EPUser user = mockUser.mockEPUser();
126                 user.setEmail("guestT@test.portal.onap.org");
127                 user.setLoginPwd("pwd");
128                 user.setLoginId("Test");
129                 List<EPUser> expectedList = new ArrayList<EPUser>();
130                 expectedList.add(user);
131                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
132                 Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenReturn(expectedList);
133                 Mockito.when(userService.saveNewUser(user, "Yes")).thenReturn(null);
134                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
135                 PortalRestResponse<String> actualPortalRestResponse = appsControllerExternalRequest
136                                 .postPortalAdmin(mockedRequest, mockedResponse, user);
137                 assertEquals(actualPortalRestResponse, expectedportalRestResponse);
138         }
139
140         @Test
141         public void postPortalAdminCreateUserIfNotSuperAdminTest() throws Exception {
142                 PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
143                 expectedportalRestResponse.setMessage(null);
144                 expectedportalRestResponse.setResponse(null);
145                 PortalRestStatusEnum portalRestStatusEnum = null;
146                 expectedportalRestResponse.setStatus(portalRestStatusEnum.OK);
147                 EPUser user = mockUser.mockEPUser();
148                 user.setEmail("guestT@test.portal.onap.org");
149                 user.setLoginPwd("pwd");
150                 user.setLoginId("Test");
151                 List<EPUser> expectedList = new ArrayList<EPUser>();
152                 expectedList.add(user);
153                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
154                 Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenReturn(expectedList);
155                 Mockito.when(userService.saveNewUser(user, "Yes")).thenReturn(null);
156                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
157
158                 FieldsValidator expectedFieldValidator = new FieldsValidator();
159                 expectedFieldValidator.setHttpStatusCode((long) 200);
160                 expectedFieldValidator.setFields(null);
161                 expectedFieldValidator.setErrorCode(null);
162                 Mockito.when(portalAdminService.createPortalAdmin(user.getOrgUserId())).thenReturn(expectedFieldValidator);
163
164                 PortalRestResponse<String> actualPortalRestResponse = appsControllerExternalRequest
165                                 .postPortalAdmin(mockedRequest, mockedResponse, user);
166                 assertEquals(actualPortalRestResponse, expectedportalRestResponse);
167         }
168
169         @Test
170         public void postPortalAdminCreateUserIfFieldValidatorErrorTest() throws Exception {
171                 FieldsValidator expectedFieldValidator = new FieldsValidator();
172                 expectedFieldValidator.setHttpStatusCode((long) 500);
173                 expectedFieldValidator.setFields(null);
174                 expectedFieldValidator.setErrorCode(null);
175                 PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
176                 expectedportalRestResponse.setMessage("FieldsValidator [httpStatusCode=500, errorCode=null, fields=null]");
177                 expectedportalRestResponse.setResponse(null);
178                 PortalRestStatusEnum portalRestStatusEnum = null;
179                 expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
180                 EPUser user = mockUser.mockEPUser();
181                 user.setEmail("guestT@test.portal.onap.org");
182                 user.setLoginPwd("pwd");
183                 user.setLoginId("Test");
184                 List<EPUser> expectedList = new ArrayList<EPUser>();
185                 expectedList.add(user);
186                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
187                 Mockito.when(userService.getUserByUserId(user.getOrgUserId())).thenReturn(expectedList);
188                 Mockito.when(userService.saveNewUser(user, "Yes")).thenReturn(null);
189                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
190                 Mockito.when(portalAdminService.createPortalAdmin(user.getOrgUserId())).thenReturn(expectedFieldValidator);
191                 PortalRestResponse<String> actualPortalRestResponse = appsControllerExternalRequest
192                                 .postPortalAdmin(mockedRequest, mockedResponse, user);
193                 assertEquals(actualPortalRestResponse, expectedportalRestResponse);
194         }
195
196         @Test
197         public void getOnboardAppExternalTest() {
198                 EPApp epApp = new EPApp();
199                 Long appId = (long) 1;
200                 Mockito.when(appService.getApp(appId)).thenReturn(epApp);
201                 OnboardingApp expectedApp = new OnboardingApp();
202                 Mockito.doNothing().when(appService).createOnboardingFromApp(epApp, expectedApp);
203                 OnboardingApp actualApp = appsControllerExternalRequest.getOnboardAppExternal(mockedRequest, mockedResponse,
204                                 appId);
205                 assertEquals(expectedApp.getClass(), actualApp.getClass());
206         }
207
208         @Test
209         public void postOnboardAppExternalExceptionTest() {
210                 PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
211                 expectedportalRestResponse.setMessage("Unexpected field: id");
212                 expectedportalRestResponse.setResponse(null);
213                 PortalRestStatusEnum portalRestStatusEnum = null;
214                 expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
215
216                 OnboardingApp expectedOnboardingApp = new OnboardingApp();
217                 expectedOnboardingApp.id = (long) 1;
218
219                 PortalRestResponse<String> actualPortalRestResponse = appsControllerExternalRequest
220                                 .postOnboardAppExternal(mockedRequest, mockedResponse, expectedOnboardingApp);
221                 assertEquals(actualPortalRestResponse, expectedportalRestResponse);
222         }
223
224         @Test
225         public void postOnboardAppExternalTest() {
226                 PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
227                 expectedportalRestResponse.setMessage(
228                                 "Missing required field: name, url, restUrl, restrictedApp, isOpen, isEnabled, myLoginsAppOwner");
229                 expectedportalRestResponse.setResponse(null);
230                 PortalRestStatusEnum portalRestStatusEnum = null;
231                 expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
232
233                 OnboardingApp expectedOnboardingApp = new OnboardingApp();
234                 expectedOnboardingApp.id = null;
235
236                 PortalRestResponse<String> actualPortalRestResponse = appsControllerExternalRequest
237                                 .postOnboardAppExternal(mockedRequest, mockedResponse, expectedOnboardingApp);
238                 assertEquals(actualPortalRestResponse, expectedportalRestResponse);
239
240         }
241
242         @Test
243         public void putOnboardAppExternalifAppNullTest() {
244                 PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
245                 expectedportalRestResponse.setMessage("Unexpected value for field: id");
246                 expectedportalRestResponse.setResponse(null);
247                 PortalRestStatusEnum portalRestStatusEnum = null;
248                 expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
249                 Long appId = null;
250                 OnboardingApp expectedOnboardingApp = new OnboardingApp();
251                 expectedOnboardingApp.id = null;
252
253                 PortalRestResponse<String> actualPortalRestResponse = appsControllerExternalRequest
254                                 .putOnboardAppExternal(mockedRequest, mockedResponse, appId, expectedOnboardingApp);
255                 assertEquals(actualPortalRestResponse, expectedportalRestResponse);
256         }
257
258         @Test
259         public void putOnboardAppExternalIfOnboardingAppDetailsNullTest() {
260                 PortalRestResponse<String> expectedportalRestResponse = new PortalRestResponse<String>();
261                 expectedportalRestResponse.setMessage(
262                                 "Missing required field: name, url, restUrl, restrictedApp, isOpen, isEnabled, myLoginsAppOwner");
263                 expectedportalRestResponse.setResponse(null);
264                 PortalRestStatusEnum portalRestStatusEnum = null;
265                 expectedportalRestResponse.setStatus(portalRestStatusEnum.ERROR);
266                 Long appId = (long) 1;
267                 OnboardingApp expectedOnboardingApp = new OnboardingApp();
268                 expectedOnboardingApp.id = (long) 1;
269                 PortalRestResponse<String> actualPortalRestResponse = appsControllerExternalRequest
270                                 .putOnboardAppExternal(mockedRequest, mockedResponse, appId, expectedOnboardingApp);
271                 assertEquals(actualPortalRestResponse, expectedportalRestResponse);
272         }
273 }