Add doc folder.
[portal.git] / ecomp-portal-BE-common-test / src / main / java / org / openecomp / portalapp / portal / test / controller / AppCatalogControllerTest.java
1 /*-
2  * ================================================================================
3  * ECOMP Portal
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ================================================================================
19  */
20 package org.openecomp.portalapp.portal.test.controller;
21
22 import static org.junit.Assert.assertEquals;
23 import static org.junit.Assert.assertNull;
24 import static org.junit.Assert.assertTrue;
25
26 import java.io.IOException;
27 import java.util.ArrayList;
28 import java.util.List;
29
30 import javax.servlet.http.HttpServletRequest;
31 import javax.servlet.http.HttpServletResponse;
32 import javax.servlet.http.HttpSession;
33
34 import org.junit.Before;
35 import org.junit.Test;
36 import org.mockito.InjectMocks;
37 import org.mockito.Mock;
38 import org.mockito.Mockito;
39 import org.mockito.MockitoAnnotations;
40 import org.openecomp.portalapp.portal.controller.AppCatalogController;
41 import org.openecomp.portalapp.portal.domain.EPApp;
42 import org.openecomp.portalapp.portal.domain.EPUser;
43 import org.openecomp.portalapp.portal.ecomp.model.AppCatalogItem;
44 import org.openecomp.portalapp.portal.service.AdminRolesService;
45 import org.openecomp.portalapp.portal.service.AdminRolesServiceImpl;
46 import org.openecomp.portalapp.portal.service.EPAppCommonServiceImpl;
47 import org.openecomp.portalapp.portal.service.EPAppService;
48 import org.openecomp.portalapp.portal.service.PersUserAppService;
49 import org.openecomp.portalapp.portal.service.PersUserAppServiceImpl;
50 import org.openecomp.portalapp.portal.test.core.MockEPUser;
51 import org.openecomp.portalapp.portal.transport.AppCatalogPersonalization;
52 import org.openecomp.portalapp.portal.transport.FieldsValidator;
53 import org.openecomp.portalapp.portal.transport.FieldsValidator.FieldName;
54 import org.openecomp.portalapp.test.framework.MockitoTestSuite;
55 import org.openecomp.portalapp.util.EPUserUtils;
56 import org.openecomp.portalsdk.core.util.SystemProperties;
57
58 public class AppCatalogControllerTest extends MockitoTestSuite {
59
60         @Mock
61         AdminRolesService adminRolesService = new AdminRolesServiceImpl();
62
63         @Mock
64         EPAppService appService = new EPAppCommonServiceImpl();
65
66         @InjectMocks
67         AppCatalogController appCatalogController = new AppCatalogController();
68
69         PersUserAppService persUserAppService = Mockito.spy(new PersUserAppServiceImpl());
70
71         @Before
72         public void setup() {
73                 MockitoAnnotations.initMocks(this);
74         }
75
76         MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
77
78         HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
79         HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
80
81         @Mock
82         EPUserUtils ePUserUtils = new EPUserUtils();
83
84         @Mock
85         EPUser epuser;
86
87         NullPointerException nullPointerException = new NullPointerException();
88
89         MockEPUser mockUser = new MockEPUser();
90
91         public AppCatalogItem mockAppCatalogItem() {
92                 AppCatalogItem appCatalogItem = new AppCatalogItem();
93                 appCatalogItem.setId((long) 1);
94                 appCatalogItem.setName("Ecomp Portal");
95                 appCatalogItem.setImageUrl("Test_URL");
96                 appCatalogItem.setDescription("Testing");
97                 appCatalogItem.setNotes("Test");
98                 appCatalogItem.setUrl("test");
99                 appCatalogItem.setAlternateUrl("test");
100                 appCatalogItem.setRestricted(false);
101                 appCatalogItem.setOpen(false);
102                 appCatalogItem.setAccess(true);
103                 appCatalogItem.setSelect(true);
104                 appCatalogItem.setPending(false);
105
106                 return appCatalogItem;
107         }
108
109         @Test
110         public void getAppCatalogTestIfUserNotAdmin() throws IOException {
111                 EPUser user = mockUser.mockEPUser();
112                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
113                 List<AppCatalogItem> actualAppCatalogList = null;
114
115                 List<AppCatalogItem> expectedAppCatalog = new ArrayList<>();
116
117                 AppCatalogItem appCatalogItem = mockAppCatalogItem();
118                 expectedAppCatalog.add(appCatalogItem);
119                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
120                 Mockito.when(appService.getUserAppCatalog(user)).thenReturn(expectedAppCatalog);
121                 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
122
123                 assertTrue(actualAppCatalogList.contains(appCatalogItem));
124
125         }
126
127         @Test
128         public void getAppCatalogTestIfUserIsAdmin() throws IOException {
129                 EPUser user = mockUser.mockEPUser();
130                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
131                 List<AppCatalogItem> actualAppCatalogList = null;
132
133                 List<AppCatalogItem> expectedAppCatalog = new ArrayList<>();
134
135                 AppCatalogItem appCatalogItem = mockAppCatalogItem();
136
137                 expectedAppCatalog.add(appCatalogItem);
138                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(true);
139                 Mockito.when(appService.getAdminAppCatalog(user)).thenReturn(expectedAppCatalog);
140                 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
141
142                 assertTrue(actualAppCatalogList.contains(appCatalogItem));
143
144         }
145
146         @Test
147         public void getAppCatalogTestIfUserisNull() throws IOException {
148                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(null);
149                 List<AppCatalogItem> actualAppCatalogList = new ArrayList<>();
150                 ;
151                 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
152                 assertNull(actualAppCatalogList);
153
154         }
155
156         @Test
157         public void getAppCatalogTestIfUserThrowsExceptionTest() throws IOException {
158                 EPUser user = new EPUser();
159                 user.setFirstName("test");
160                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
161                 List<AppCatalogItem> actualAppCatalogList = new ArrayList<>();
162                 ;
163
164                 Mockito.when(adminRolesService.isSuperAdmin(user)).thenReturn(false);
165
166                 Mockito.when(appCatalogController.getAppCatalog(mockedRequest, mockedResponse)).thenThrow(nullPointerException);
167
168                 actualAppCatalogList = appCatalogController.getAppCatalog(mockedRequest, mockedResponse);
169                 assertNull(actualAppCatalogList);
170
171         }
172
173         @Test
174         public void putAppCatalogSelectionTestWhenAppIsNull() throws IOException {
175
176                 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();
177                 persRequest.setAppId((long) 1);
178                 persRequest.setPending(false);
179                 persRequest.setSelect(false);
180
181                 EPUser user = mockUser.mockEPUser();
182
183                 FieldsValidator expectedFieldValidator = new FieldsValidator();
184
185                 FieldsValidator actualFieldValidator = new FieldsValidator();
186                 List<FieldName> fields = new ArrayList<>();
187                 ;
188
189                 expectedFieldValidator.setHttpStatusCode((long) 200);
190                 expectedFieldValidator.setFields(fields);
191                 expectedFieldValidator.setErrorCode(null);
192
193                 EPApp app = null;
194
195                 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);
196
197                 HttpSession session = mockedRequest.getSession();
198                 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
199
200                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
201                 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);
202                 assertEquals(expectedFieldValidator, actualFieldValidator);
203
204         }
205
206         @Test
207         public void putAppCatalogSelectionTest() throws IOException {
208
209                 AppCatalogPersonalization persRequest = new AppCatalogPersonalization();
210                 persRequest.setAppId((long) 1);
211                 persRequest.setPending(false);
212                 persRequest.setSelect(false);
213
214                 EPUser user = mockUser.mockEPUser();
215
216                 FieldsValidator expectedFieldValidator = new FieldsValidator();
217
218                 FieldsValidator actualFieldValidator = new FieldsValidator();
219                 List<FieldName> fields = new ArrayList<>();
220                 ;
221
222                 expectedFieldValidator.setHttpStatusCode((long) 200);
223                 expectedFieldValidator.setFields(fields);
224                 expectedFieldValidator.setErrorCode(null);
225
226                 EPApp app = new EPApp();
227
228                 app.setName("Test");
229                 app.setImageUrl("test");
230                 app.setDescription("test");
231                 app.setNotes("test");
232                 app.setUrl("test");
233                 app.setId((long) 1);
234                 app.setAppRestEndpoint("test");
235                 app.setAlternateUrl("test");
236                 app.setName("test");
237                 app.setMlAppName("test");
238                 app.setMlAppAdminId("test");
239                 app.setUsername("test");
240                 app.setAppPassword("test");
241                 app.setOpen(false);
242                 app.setEnabled(false);
243                 app.setUebKey("test");
244                 app.setUebSecret("test");
245                 app.setUebTopicName("test");
246                 app.setAppType(1);
247
248                 Mockito.when(appService.getApp(persRequest.getAppId())).thenReturn(app);
249
250                 HttpSession session = mockedRequest.getSession();
251                 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
252
253                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
254                 Mockito.doNothing().when(persUserAppService).setPersUserAppValue(user, app, persRequest.getSelect(),
255                                 persRequest.getPending());
256
257                 actualFieldValidator = appCatalogController.putAppCatalogSelection(mockedRequest, persRequest, mockedResponse);
258
259                 assertEquals(expectedFieldValidator, actualFieldValidator);
260
261         }
262
263 }