2  * ================================================================================
\r 
   4  * ================================================================================
\r 
   5  * Copyright (C) 2017 AT&T Intellectual Property
\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 
  11  *      http://www.apache.org/licenses/LICENSE-2.0
\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  * ================================================================================
\r 
  20 package org.openecomp.portalapp.portal.test.core;
\r 
  22 import static org.junit.Assert.assertEquals;
\r 
  24 import java.io.IOException;
\r 
  25 import java.nio.charset.Charset;
\r 
  26 import java.util.ArrayList;
\r 
  28 import org.junit.Assert;
\r 
  29 import org.junit.Test;
\r 
  30 import org.openecomp.portalapp.portal.domain.EPUser;
\r 
  31 import org.openecomp.portalapp.portal.test.core.MockEPUser;
\r 
  32 import org.openecomp.portalapp.portal.test.framework.ApplicationCommonContextTestSuite;
\r 
  33 import org.openecomp.portalapp.portal.transport.AppNameIdIsAdmin;
\r 
  34 import org.openecomp.portalapp.portal.transport.AppsListWithAdminRole;
\r 
  35 import org.openecomp.portalsdk.core.util.SystemProperties;
\r 
  36 import org.springframework.http.MediaType;
\r 
  37 import org.springframework.test.web.servlet.ResultActions;
\r 
  38 import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
\r 
  39 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
\r 
  41 import com.fasterxml.jackson.annotation.JsonInclude;
\r 
  42 import com.fasterxml.jackson.databind.ObjectMapper;
\r 
  46  * @author sk434m Use RestURLsTestSuite to test Rest API URL's
\r 
  48 public class RestURLsTestSuite extends ApplicationCommonContextTestSuite {
\r 
  50         public static final MediaType APPLICATION_JSON_UTF8 = new MediaType(MediaType.APPLICATION_JSON.getType(),
\r 
  51                         MediaType.APPLICATION_JSON.getSubtype(), Charset.forName("utf8"));
\r 
  55         MockEPUser mockUser = new MockEPUser();
\r 
  57         public byte[] convertObjectToJsonBytes(Object object) throws IOException {
\r 
  58                 ObjectMapper mapper = new ObjectMapper();
\r 
  59                 mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
\r 
  60                 return mapper.writeValueAsBytes(object);
\r 
  63         public void requestBuilder(String url) throws Exception {
\r 
  64                 EPUser user = mockUser.mockEPUser();
\r 
  66                 MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get(url);
\r 
  67                 requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r 
  68                 ResultActions ra = getMockMvc().perform(requestBuilder);
\r 
  72         public void assertData(ResultActions ra) {
\r 
  73                 Assert.assertEquals("application/json", ra.andReturn().getResponse().getContentType());
\r 
  74                 Assert.assertEquals(200, ra.andReturn().getResponse().getStatus());
\r 
  79         public void getMenuItemsTest() throws Exception {
\r 
  81                 url = "/portalApi/functionalMenu";
\r 
  82                 requestBuilder(url);
\r 
  86         public void getMenuItemsForNotificationsTest() throws Exception {
\r 
  87                 url = "/portalApi/functionalMenuForNotificationTree";
\r 
  88                 requestBuilder(url);
\r 
  92         public void getUserAppsTestnew() throws Exception {
\r 
  94                 url = "/portalApi/userApps";
\r 
  95                 requestBuilder(url);
\r 
  99         public void getPersUserAppsTest() throws Exception {
\r 
 101                 url = "/portalApi/persUserApps";
\r 
 102                 requestBuilder(url);
\r 
 106         public void getAppCatalogTest() throws Exception {
\r 
 108                 url = "/portalApi/appCatalog";
\r 
 109                 requestBuilder(url);
\r 
 113         public void getAppListNewTest() throws Exception {
\r 
 114                 ResultActions ra = getMockMvc()
\r 
 115                                 .perform(MockMvcRequestBuilders.get("/portalApi/userApplicationRoles").param("userId", "guest"));
\r 
 120         public void getAvailableAppListTest() throws Exception {
\r 
 121                 url = "/portalApi/availableApps";
\r 
 122                 requestBuilder(url);
\r 
 126         public void getAllAppsTest() throws Exception {
\r 
 127                 url = "/portalApi/allAvailableApps";
\r 
 128                 requestBuilder(url);
\r 
 132         public void getUserProfileTest() throws Exception {
\r 
 133                 url = "/portalApi/userProfile";
\r 
 134                 requestBuilder(url);
\r 
 138         public void getRolesByAppTest() throws Exception {
\r 
 139                 EPUser user = mockUser.mockEPUser();
\r 
 140                 MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/portalApi/adminAppsRoles/550");
\r 
 141                 requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r 
 142                 ResultActions ra = getMockMvc().perform(requestBuilder);
\r 
 147         public void getAppsWithAdminRoleStateForUserTest() throws Exception {
\r 
 148                 url = "/portalApi/adminAppsRoles?user=guest";
\r 
 149                 requestBuilder(url);
\r 
 154         public void getUsersFromAppEndpointTest() throws Exception {
\r 
 155                 url = "/portalApi/app/550/users";
\r 
 156                 requestBuilder(url);
\r 
 160         public void getOnboardingAppsTest() throws Exception {
\r 
 161                 url = "/portalApi/onboardingApps";
\r 
 162                 requestBuilder(url);
\r 
 166         public void getMenuItemsForAuthUserTest() throws Exception {
\r 
 167                 url = "/portalApi/functionalMenuForAuthUser";
\r 
 168                 requestBuilder(url);
\r 
 172         public void getMenuItemsForEditingTest() throws Exception {
\r 
 173                 url = "/portalApi/functionalMenuForEditing";
\r 
 174                 requestBuilder(url);
\r 
 178         public void getAppRolesTest() throws Exception {
\r 
 179                 url = "/portalApi/appRoles/455";
\r 
 180                 requestBuilder(url);
\r 
 184         public void regenerateAncestorTableTest() throws Exception {
\r 
 186                 EPUser user = mockUser.mockEPUser();
\r 
 188                 MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders
\r 
 189                                 .get("/portalApi/regenerateFunctionalMenuAncestors");
\r 
 190                 requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r 
 191                 ResultActions ra = getMockMvc().perform(requestBuilder);
\r 
 192                 assertEquals("application/json;charset=UTF-8", ra.andReturn().getResponse().getContentType());
\r 
 193                 Assert.assertEquals(200, ra.andReturn().getResponse().getStatus());
\r 
 198         public void getAppListTest() throws Exception {
\r 
 199                 url = "/portalApi/getAppList";
\r 
 200                 requestBuilder(url);
\r 
 204         public void getFavoritesForUserTest() throws Exception {
\r 
 205                 url = "/portalApi/getFavoriteItems";
\r 
 206                 requestBuilder(url);
\r 
 210         public void getManifestTest() throws Exception {
\r 
 211                 url = "/portalApi/manifest";
\r 
 212                 requestBuilder(url);
\r 
 216         public void getActiveUsersTest() throws Exception {
\r 
 217                 url = "/portalApi/dashboard/activeUsers";
\r 
 218                 requestBuilder(url);
\r 
 222         public void searchPortalTest() throws Exception {
\r 
 223                 EPUser user = mockUser.mockEPUser();
\r 
 224                 MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/portalApi/dashboard/search")
\r 
 225                                 .param("searchString", "guest");
\r 
 226                 requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r 
 227                 ResultActions ra = getMockMvc().perform(requestBuilder);
\r 
 232         public void getWidgetDataTest() throws Exception {
\r 
 233                 EPUser user = mockUser.mockEPUser();
\r 
 234                 MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.get("/portalApi/dashboard/widgetData")
\r 
 235                                 .param("resourceType", "guest");
\r 
 236                 requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r 
 237                 ResultActions ra = getMockMvc().perform(requestBuilder);
\r 
 242         public void getAppsAndContactsTest() throws Exception {
\r 
 243                 url = "/portalApi/contactus/allapps";
\r 
 244                 requestBuilder(url);
\r 
 248         public void getPortalDetailsTest() throws Exception {
\r 
 249                 url = "/portalApi/contactus/feedback";
\r 
 250                 requestBuilder(url);
\r 
 254         public void getAppCategoryFunctionsTest() throws Exception {
\r 
 255                 url = "/portalApi/contactus/functions";
\r 
 256                 requestBuilder(url);
\r 
 260         public void getOnlineUserUpdateRateTest() throws Exception {
\r 
 261                 url = "/portalApi/dashboard/onlineUserUpdateRate";
\r 
 262                 requestBuilder(url);
\r 
 266         public void getMenuIdRoleIdTest() throws Exception {
\r 
 267                 url = "/portalApi/getFunctionalMenuRole";
\r 
 268                 requestBuilder(url);
\r 
 272         public void getNotificationsTest() throws Exception {
\r 
 273                 url = "/portalApi/getNotifications";
\r 
 274                 requestBuilder(url);
\r 
 278         public void getAdminNotificationsTest() throws Exception {
\r 
 279                 url = "/portalApi/getAdminNotifications";
\r 
 280                 requestBuilder(url);
\r 
 284         public void getNotificationAppRolesTest() throws Exception {
\r 
 285                 url = "/portalApi/getNotificationAppRoles";
\r 
 286                 requestBuilder(url);
\r 
 290         public void getNotificationUpdateRateTest() throws Exception {
\r 
 291                 url = "/portalApi/notificationUpdateRate";
\r 
 292                 requestBuilder(url);
\r 
 296         public void notificationReadTest() throws Exception {
\r 
 297                 url = "/portalApi/notificationRead?notificationId=262";
\r 
 298                 requestBuilder(url);
\r 
 302         public void testGetRolesTest() throws Exception {
\r 
 303                 url = "/portalApi/notificationRole/248/roles";
\r 
 304                 requestBuilder(url);
\r 
 308         public void putAppsWithAdminRoleStateForUserTest() throws Exception {
\r 
 310                 AppsListWithAdminRole appsListWithAdminRole = new AppsListWithAdminRole();
\r 
 311                 appsListWithAdminRole.setOrgUserId("guest");
\r 
 312                 ArrayList<AppNameIdIsAdmin> appsRoles = new ArrayList<AppNameIdIsAdmin>();
\r 
 313                 AppNameIdIsAdmin appNameIdIsAdmin = new AppNameIdIsAdmin();
\r 
 314                 appNameIdIsAdmin.setId((long) 455);
\r 
 315                 appNameIdIsAdmin.setAppName("CCD");
\r 
 316                 appNameIdIsAdmin.setIsAdmin(true);
\r 
 317                 appNameIdIsAdmin.setRestrictedApp(false);
\r 
 318                 appsRoles.add(appNameIdIsAdmin);
\r 
 319                 appsListWithAdminRole.setAppsRoles(appsRoles);
\r 
 320                 EPUser user = mockUser.mockEPUser();
\r 
 321                 MockHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders.put("/portalApi/adminAppsRoles")
\r 
 322                                 .contentType(APPLICATION_JSON_UTF8).content(convertObjectToJsonBytes(appsListWithAdminRole));
\r 
 324                 requestBuilder.sessionAttr(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
\r 
 325                 ResultActions ra = getMockMvc().perform(requestBuilder);
\r