summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-aaf/src/test/java/org/onap/portalsdk/external/authorization/service/UserApiServiceImplTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-aaf/src/test/java/org/onap/portalsdk/external/authorization/service/UserApiServiceImplTest.java')
-rw-r--r--ecomp-sdk/epsdk-aaf/src/test/java/org/onap/portalsdk/external/authorization/service/UserApiServiceImplTest.java313
1 files changed, 313 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-aaf/src/test/java/org/onap/portalsdk/external/authorization/service/UserApiServiceImplTest.java b/ecomp-sdk/epsdk-aaf/src/test/java/org/onap/portalsdk/external/authorization/service/UserApiServiceImplTest.java
new file mode 100644
index 00000000..d93b03c1
--- /dev/null
+++ b/ecomp-sdk/epsdk-aaf/src/test/java/org/onap/portalsdk/external/authorization/service/UserApiServiceImplTest.java
@@ -0,0 +1,313 @@
+/*-
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END============================================
+ *
+ *
+ */
+package org.onap.portalsdk.external.authorization.service;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.json.JSONObject;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Matchers;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.portalsdk.core.command.PostSearchBean;
+import org.onap.portalsdk.core.command.support.SearchResult;
+import org.onap.portalsdk.core.domain.App;
+import org.onap.portalsdk.core.domain.Role;
+import org.onap.portalsdk.core.domain.RoleFunction;
+import org.onap.portalsdk.core.domain.User;
+import org.onap.portalsdk.core.domain.UserApp;
+import org.onap.portalsdk.core.service.AppService;
+import org.onap.portalsdk.core.service.DataAccessService;
+import org.onap.portalsdk.core.service.LdapService;
+import org.onap.portalsdk.core.service.PostSearchService;
+import org.onap.portalsdk.core.util.SystemProperties;
+import org.onap.portalsdk.external.authorization.util.EcompExternalAuthProperties;
+import org.onap.portalsdk.external.authorization.util.EcompExternalAuthUtils;
+import org.onap.portalsdk.external.framework.MockitoTestSuite;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.RestTemplate;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@SuppressWarnings({ "rawtypes", "unchecked" })
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({ EcompExternalAuthProperties.class, EcompExternalAuthUtils.class })
+public class UserApiServiceImplTest {
+
+ private static final String APP_ID = "appId";
+
+ private static final String PRIORITY = "priority";
+
+ private static final String ACTIVE = "active";
+
+ private static final String ROLE_NAME = "name";
+
+ private static final String APP_ROLE_ID = "appRoleId";
+
+ private static final String ID = "id";
+
+ @InjectMocks
+ private UserApiServiceImpl UserApiServiceImpl;
+
+ @Mock
+ private DataAccessService dataAccessService;
+
+ @Mock
+ private LoginExternalAuthService loginAAFService;
+
+ @Mock
+ private LdapService ldapService;
+
+ @Mock
+ private PostSearchService postSearchService;
+
+ @Mock
+ private AppService appService;
+
+ @Mock
+ RestTemplate template = new RestTemplate();
+
+ @Before
+ public void setup() throws Exception {
+ PowerMockito.mockStatic(EcompExternalAuthProperties.class);
+ PowerMockito.mockStatic(EcompExternalAuthUtils.class);
+ PowerMockito.mockStatic(SystemProperties.class);
+ Mockito.when(EcompExternalAuthProperties.getProperty(EcompExternalAuthProperties.EXTERNAL_AUTH_NAMESPACE))
+ .thenReturn("com.test.app2");
+ Mockito.when(EcompExternalAuthUtils.base64encodeKeyForAAFBasicAuth()).thenReturn(new HttpHeaders());
+ Mockito.when(EcompExternalAuthProperties.getProperty(EcompExternalAuthProperties.EXTERNAL_AUTH_USER_DOMAIN))
+ .thenReturn("@test.com");
+ MockitoAnnotations.initMocks(this);
+ }
+
+ MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
+
+ HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
+ HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
+
+ private User userObj() {
+ User user = new User();
+ user.setEmail("test@mail.com");
+ user.setFirstName("Test_firstname");
+ user.setHrid("test_hrid");
+ user.setJobTitle("test_jobtitle");
+ user.setLastName("test_lastname");
+ user.setLoginId("test123");
+ user.setOrgManagerUserId("test456");
+ user.setMiddleInitial("test_middlename");
+ user.setOrgCode("testcode");
+ user.setOrgId(1l);
+ user.setOrgUserId("test123");
+ user.setActive(true);
+ user.setLastLoginDate(new Date());
+ RoleFunction roleFunction = new RoleFunction();
+ roleFunction.setId(12L);
+ roleFunction.setName("Role Function");
+
+ Set roleFunctions = new TreeSet();
+ roleFunctions.add(roleFunction);
+
+ Role role = new Role();
+ role.setName("Role");
+ role.setActive(true);
+ role.setRoleFunctions(roleFunctions);
+ Set userApps = new TreeSet();
+ UserApp userApp = new UserApp();
+ userApp.setUserId(1L);
+ userApp.setApp(getApp());
+ userApp.setRole(role);
+ userApps.add(userApp);
+ user.setUserApps(userApps);
+ return user;
+ }
+
+ public App getApp() {
+ App app = new App();
+ app.setId(new Long(1));
+ app.setName("Default");
+ return app;
+ }
+
+ @Test
+ public void getUserTest() throws Exception {
+ ObjectMapper mapper = new ObjectMapper();
+ Map<String, String> roleDesc = new LinkedHashMap<>();
+ roleDesc.put(ID, "1");
+ roleDesc.put(ROLE_NAME, "test_role");
+ roleDesc.put(ACTIVE, String.valueOf(true));
+ roleDesc.put(PRIORITY, String.valueOf(1));
+ roleDesc.put(APP_ID, String.valueOf(1));
+ roleDesc.put(APP_ROLE_ID, String.valueOf(1l));
+ String addDesc = mapper.writeValueAsString(roleDesc);
+ JSONObject mockJsonObjectRole = new JSONObject();
+ JSONObject mockJsonObjectRole2 = new JSONObject();
+ JSONObject mockJsonObjectRole3 = new JSONObject();
+ JSONObject mockJsonObjectRole4 = new JSONObject();
+ JSONObject mockJsonObjectRole5 = new JSONObject();
+ JSONObject mockJsonObjectPerm1 = new JSONObject();
+ JSONObject mockJsonObjectPerm2 = new JSONObject();
+ mockJsonObjectPerm1.put("type", "com.test.app2.test_type");
+ mockJsonObjectPerm1.put("instance", "test_instance");
+ mockJsonObjectPerm1.put("action", "*");
+ mockJsonObjectPerm2.put("type", "com.test.app.test_type2");
+ mockJsonObjectPerm2.put("instance", "test_instance2");
+ mockJsonObjectPerm2.put("action", "*");
+ List<JSONObject> permsList = new ArrayList<>();
+ permsList.add(mockJsonObjectPerm1);
+ permsList.add(mockJsonObjectPerm2);
+ mockJsonObjectRole.put("name", "com.test.app2.test_role");
+ mockJsonObjectRole2.put("name", "com.test.app2.test_role2");
+ mockJsonObjectRole2.put("perms", permsList);
+ mockJsonObjectRole2.put("description", addDesc);
+ mockJsonObjectRole3.put("name", "com.test.app2.Account_Administrator");
+ mockJsonObjectRole4.put("name", "com.test.app2.admin");
+ mockJsonObjectRole5.put("name", "com.test.app2.owner");
+ List<JSONObject> userRolesList = new ArrayList<>();
+ JSONObject mockJsonObjectFinalUserRole = new JSONObject();
+ userRolesList.add(mockJsonObjectRole);
+ userRolesList.add(mockJsonObjectRole2);
+ userRolesList.add(mockJsonObjectRole3);
+ userRolesList.add(mockJsonObjectRole4);
+ userRolesList.add(mockJsonObjectRole5);
+ mockJsonObjectFinalUserRole.put("role", userRolesList);
+ Mockito.when(EcompExternalAuthUtils.isJSONValid(addDesc)).thenReturn(true);
+ ResponseEntity<String> response = new ResponseEntity<>(mockJsonObjectFinalUserRole.toString(), HttpStatus.OK);
+ Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET),
+ Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(response);
+ Mockito.when(EcompExternalAuthUtils.checkNameSpaceMatching(Matchers.anyString(), Matchers.anyString()))
+ .thenReturn(true);
+ Mockito.when(loginAAFService.findUserWithoutPwd("test123")).thenReturn(userObj());
+ Mockito.when(appService.getApp(1l)).thenReturn(getApp());
+ User actual = UserApiServiceImpl.getUser("test123", mockedRequest);
+ assertNotNull(actual);
+ }
+
+ @Test
+ public void getNewUserNullExceptionTest() throws Exception {
+ JSONObject mockJsonObjectRole = new JSONObject();
+ JSONObject mockJsonObjectRole2 = new JSONObject();
+ JSONObject mockJsonObjectRole3 = new JSONObject();
+ JSONObject mockJsonObjectPerm1 = new JSONObject();
+ JSONObject mockJsonObjectPerm2 = new JSONObject();
+ mockJsonObjectPerm1.put("type", "com.test.app2.test_type");
+ mockJsonObjectPerm1.put("instance", "test_instance");
+ mockJsonObjectPerm1.put("action", "*");
+ mockJsonObjectPerm2.put("type", "com.test.app.test_type2");
+ mockJsonObjectPerm2.put("instance", "test_instance2");
+ mockJsonObjectPerm2.put("action", "*");
+ List<JSONObject> permsList = new ArrayList<>();
+ permsList.add(mockJsonObjectPerm1);
+ permsList.add(mockJsonObjectPerm2);
+ mockJsonObjectRole.put("name", "com.test.app2.test_role");
+ mockJsonObjectRole2.put("name", "com.test.app2.test_role2");
+ mockJsonObjectRole2.put("perms", permsList);
+ mockJsonObjectRole3.put("name", "com.test.app2.Account_Administrator");
+ List<JSONObject> userRolesList = new ArrayList<>();
+ JSONObject mockJsonObjectFinalUserRole = new JSONObject();
+ userRolesList.add(mockJsonObjectRole);
+ userRolesList.add(mockJsonObjectRole2);
+ userRolesList.add(mockJsonObjectRole3);
+ mockJsonObjectFinalUserRole.put("role", userRolesList);
+ ResponseEntity<String> response = new ResponseEntity<>(mockJsonObjectFinalUserRole.toString(), HttpStatus.OK);
+ Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET),
+ Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(response);
+ Mockito.when(EcompExternalAuthUtils.checkNameSpaceMatching(Matchers.anyString(), Matchers.anyString()))
+ .thenReturn(true);
+ Mockito.when(loginAAFService.findUserWithoutPwd("test123")).thenReturn(null);
+ Mockito.when(appService.getApp(1l)).thenReturn(getApp());
+ PostSearchBean postSearchBean = new PostSearchBean();
+ postSearchBean.setOrgUserId("test123");
+ SearchResult result = new SearchResult();
+ result.add(userObj());
+ Mockito.when(ldapService.searchPost(postSearchBean.getUser(), postSearchBean.getSortBy1(),
+ postSearchBean.getSortBy2(), postSearchBean.getSortBy3(), postSearchBean.getPageNo(),
+ postSearchBean.getNewDataSize(), 1)).thenReturn(result);
+ User user = UserApiServiceImpl.getUser("test123", mockedRequest);
+ assertNull(user);
+ }
+
+ @Test
+ public void getRoleFunctionsTest() throws Exception {
+ JSONObject mockJsonObjectPerms = new JSONObject();
+ JSONObject mockJsonObjectPerm1 = new JSONObject();
+ JSONObject mockJsonObjectPerm2 = new JSONObject();
+ JSONObject mockJsonObjectPerm3 = new JSONObject();
+ mockJsonObjectPerm1.put("type", "com.test.app2.test_type");
+ mockJsonObjectPerm1.put("instance", "test_instance");
+ mockJsonObjectPerm1.put("action", "*");
+ mockJsonObjectPerm2.put("type", "com.test.app2.test_type2");
+ mockJsonObjectPerm2.put("instance", "test_instance2");
+ mockJsonObjectPerm2.put("action", "*");
+ mockJsonObjectPerm2.put("description", "test_name");
+ mockJsonObjectPerm3.put("type", "com.test.app3.test_type3");
+ mockJsonObjectPerm3.put("instance", "test_instance3");
+ mockJsonObjectPerm3.put("action", "*");
+ List<JSONObject> permsList = new ArrayList<>();
+ permsList.add(mockJsonObjectPerm1);
+ permsList.add(mockJsonObjectPerm2);
+ mockJsonObjectPerms.put("perm", permsList);
+ ResponseEntity<String> response = new ResponseEntity<>(mockJsonObjectPerms.toString(), HttpStatus.OK);
+ Mockito.when(template.exchange(Matchers.anyString(), Matchers.eq(HttpMethod.GET),
+ Matchers.<HttpEntity<String>>any(), Matchers.eq(String.class))).thenReturn(response);
+ List<RoleFunction> actual = UserApiServiceImpl.getRoleFunctions("test123");
+ assertNotNull(actual);
+ }
+}