[PORTAL-16 PORTAL-18] Widget ms; staging
[portal.git] / ecomp-portal-BE-common-test / src / main / java / org / openecomp / portalapp / portal / test / controller / UserRolesControllerTest.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
24 import java.util.ArrayList;
25 import java.util.List;
26
27 import javax.servlet.http.HttpServletRequest;
28 import javax.servlet.http.HttpServletResponse;
29 import javax.servlet.http.HttpSession;
30
31 import org.junit.Before;
32 import org.junit.Test;
33 import org.mockito.InjectMocks;
34 import org.mockito.Mock;
35 import org.mockito.Mockito;
36 import org.mockito.MockitoAnnotations;
37 import org.openecomp.portalapp.portal.controller.UserRolesController;
38 import org.openecomp.portalapp.portal.domain.EPUser;
39 import org.openecomp.portalapp.portal.service.UserRolesService;
40 import org.openecomp.portalapp.portal.test.core.MockEPUser;
41 import org.openecomp.portalapp.portal.transport.AppWithRolesForUser;
42 import org.openecomp.portalapp.portal.transport.FieldsValidator;
43 import org.openecomp.portalapp.portal.transport.FieldsValidator.FieldName;
44 import org.openecomp.portalapp.portal.transport.RoleInAppForUser;
45 import org.openecomp.portalapp.test.framework.MockitoTestSuite;
46 import org.openecomp.portalapp.util.EPUserUtils;
47 import org.openecomp.portalsdk.core.service.DataAccessService;
48 import org.openecomp.portalsdk.core.util.SystemProperties;
49
50 public class UserRolesControllerTest extends MockitoTestSuite {
51
52         String userid = "ab1234";
53
54         @Mock
55         UserRolesService userRolesService;
56
57         @Mock
58         FieldsValidator fieldsValidator;
59
60         @InjectMocks
61         UserRolesController userRolesController = new UserRolesController();
62
63         @Mock
64         private DataAccessService dataAccessService;
65
66         @Before
67         public void setup() {
68                 MockitoAnnotations.initMocks(this);
69         }
70
71         MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
72
73         HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
74         HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
75
76         @Mock
77         EPUserUtils ePUserUtils = new EPUserUtils();
78
79         @Mock
80         EPUser epuser;
81
82         MockEPUser mockUser = new MockEPUser();
83
84         @Test
85         public void putAppWithUserRoleRequestTest() {
86
87                 FieldsValidator actualFieldsValidator = null;
88
89                 AppWithRolesForUser appWithRolesForUser = new AppWithRolesForUser();
90                 List<RoleInAppForUser> listofRoles = new ArrayList<RoleInAppForUser>();
91
92                 appWithRolesForUser.setOrgUserId("guest");
93                 appWithRolesForUser.setAppId((long) 550);
94                 appWithRolesForUser.setAppName("D2 Services Analytics Dashboard");
95                 appWithRolesForUser.setAppRoles(listofRoles);
96
97                 RoleInAppForUser roleInAppForUser = new RoleInAppForUser();
98                 roleInAppForUser.setIsApplied(false);
99                 roleInAppForUser.setRoleId((long) 1);
100                 roleInAppForUser.setRoleName("System Administrator");
101
102                 RoleInAppForUser roleInAppForUser1 = new RoleInAppForUser();
103                 roleInAppForUser1.setIsApplied(true);
104                 roleInAppForUser1.setRoleId((long) 16);
105                 roleInAppForUser1.setRoleName("Standard User");
106
107                 listofRoles.add(roleInAppForUser);
108                 listofRoles.add(roleInAppForUser1);
109                 EPUser user = mockUser.mockEPUser();
110                 FieldsValidator expectedFieldValidator = new FieldsValidator();
111                 List<FieldName> fields = new ArrayList<>();
112
113                 expectedFieldValidator.setHttpStatusCode((long) 200);
114                 expectedFieldValidator.setFields(fields);
115                 expectedFieldValidator.setErrorCode(null);
116                 HttpSession session = mockedRequest.getSession();
117                 session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
118
119                 Mockito.when(EPUserUtils.getUserSession(mockedRequest)).thenReturn(user);
120                 Mockito.when(userRolesService.putUserAppRolesRequest(appWithRolesForUser, user))
121                                 .thenReturn(expectedFieldValidator);
122
123                 actualFieldsValidator = userRolesController.putAppWithUserRoleRequest(mockedRequest, appWithRolesForUser,
124                                 mockedResponse);
125                 assertEquals(expectedFieldValidator.getHttpStatusCode(), actualFieldsValidator.getHttpStatusCode());
126                 assertEquals(expectedFieldValidator.getErrorCode(), actualFieldsValidator.getErrorCode());
127                 assertEquals(expectedFieldValidator.getFields(), actualFieldsValidator.getFields());
128
129         }
130 }