/modules/dxp/apps/portal-reports-engine-console/portal-reports-engine-console-test/src/testIntegration/java/com/liferay/portal/reports/engine/console/service/test/DefinitionServiceTest.java

http://github.com/liferay/liferay-portal · Java · 233 lines · 166 code · 51 blank · 16 comment · 2 complexity · cd381ebab16d2f1dbf9edfbd9941bdd0 MD5 · raw file

  1. /**
  2. * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
  3. *
  4. * The contents of this file are subject to the terms of the Liferay Enterprise
  5. * Subscription License ("License"). You may not use this file except in
  6. * compliance with the License. You can obtain a copy of the License by
  7. * contacting Liferay, Inc. See the License for the specific language governing
  8. * permissions and limitations under the License, including but not limited to
  9. * distribution rights of the Software.
  10. *
  11. *
  12. *
  13. */
  14. package com.liferay.portal.reports.engine.console.service.test;
  15. import com.liferay.arquillian.extension.junit.bridge.junit.Arquillian;
  16. import com.liferay.portal.kernel.dao.orm.QueryUtil;
  17. import com.liferay.portal.kernel.exception.PortalException;
  18. import com.liferay.portal.kernel.model.Group;
  19. import com.liferay.portal.kernel.model.Role;
  20. import com.liferay.portal.kernel.model.User;
  21. import com.liferay.portal.kernel.model.role.RoleConstants;
  22. import com.liferay.portal.kernel.security.permission.PermissionChecker;
  23. import com.liferay.portal.kernel.security.permission.PermissionCheckerFactoryUtil;
  24. import com.liferay.portal.kernel.security.permission.PermissionThreadLocal;
  25. import com.liferay.portal.kernel.service.RoleLocalServiceUtil;
  26. import com.liferay.portal.kernel.service.ServiceContext;
  27. import com.liferay.portal.kernel.service.UserLocalServiceUtil;
  28. import com.liferay.portal.kernel.service.permission.ModelPermissions;
  29. import com.liferay.portal.kernel.service.permission.ModelPermissionsFactory;
  30. import com.liferay.portal.kernel.test.rule.AggregateTestRule;
  31. import com.liferay.portal.kernel.test.rule.DeleteAfterTestRun;
  32. import com.liferay.portal.kernel.test.util.GroupTestUtil;
  33. import com.liferay.portal.kernel.test.util.RandomTestUtil;
  34. import com.liferay.portal.kernel.test.util.ServiceContextTestUtil;
  35. import com.liferay.portal.kernel.test.util.TestPropsValues;
  36. import com.liferay.portal.kernel.util.HashMapBuilder;
  37. import com.liferay.portal.kernel.util.LocaleUtil;
  38. import com.liferay.portal.reports.engine.console.model.Definition;
  39. import com.liferay.portal.reports.engine.console.service.DefinitionLocalServiceUtil;
  40. import com.liferay.portal.reports.engine.console.service.DefinitionServiceUtil;
  41. import com.liferay.portal.test.rule.LiferayIntegrationTestRule;
  42. import java.io.InputStream;
  43. import java.util.List;
  44. import java.util.Locale;
  45. import java.util.Map;
  46. import org.junit.After;
  47. import org.junit.Assert;
  48. import org.junit.Before;
  49. import org.junit.ClassRule;
  50. import org.junit.Rule;
  51. import org.junit.Test;
  52. import org.junit.runner.RunWith;
  53. /**
  54. * @author Inácio Nery
  55. */
  56. @RunWith(Arquillian.class)
  57. public class DefinitionServiceTest {
  58. @ClassRule
  59. @Rule
  60. public static final AggregateTestRule aggregateTestRule =
  61. new LiferayIntegrationTestRule();
  62. @Before
  63. public void setUp() throws Exception {
  64. _group = GroupTestUtil.addGroup();
  65. _originalPermissionChecker =
  66. PermissionThreadLocal.getPermissionChecker();
  67. setUpDefinition();
  68. setUpPermissionChecker();
  69. }
  70. @After
  71. public void tearDown() throws PortalException {
  72. PermissionThreadLocal.setPermissionChecker(_originalPermissionChecker);
  73. }
  74. @Test
  75. public void testGetDefinitionsAsAdminUser() throws Exception {
  76. List<Definition> definitions = getDefinitions(
  77. _adminPermissionChecker, QueryUtil.ALL_POS, QueryUtil.ALL_POS);
  78. Assert.assertEquals(definitions.toString(), 10, definitions.size());
  79. }
  80. @Test
  81. public void testGetDefinitionsAsGuestUser() throws Exception {
  82. List<Definition> definitions = getDefinitions(
  83. _guestPermissionChecker, QueryUtil.ALL_POS, QueryUtil.ALL_POS);
  84. Assert.assertEquals(definitions.toString(), 5, definitions.size());
  85. }
  86. @Test
  87. public void testGetDefinitionsCountAsAdminUser() throws Exception {
  88. Assert.assertEquals(10, getDefinitionsCount(_adminPermissionChecker));
  89. }
  90. @Test
  91. public void testGetDefinitionsCountAsGuestUser() throws Exception {
  92. Assert.assertEquals(5, getDefinitionsCount(_guestPermissionChecker));
  93. }
  94. @Test
  95. public void testGetDefinitionsLimitedAsAdminUser() throws Exception {
  96. List<Definition> definitions = getDefinitions(
  97. _adminPermissionChecker, 0, 5);
  98. Assert.assertEquals(definitions.toString(), 5, definitions.size());
  99. }
  100. @Test
  101. public void testGetDefinitionsLimitedAsGuestUser() throws Exception {
  102. List<Definition> definitions = getDefinitions(
  103. _guestPermissionChecker, 0, 5);
  104. Assert.assertEquals(definitions.toString(), 5, definitions.size());
  105. }
  106. protected List<Definition> getDefinitions(
  107. PermissionChecker permissionChecker, int start, int end)
  108. throws Exception {
  109. PermissionThreadLocal.setPermissionChecker(permissionChecker);
  110. return DefinitionServiceUtil.getDefinitions(
  111. _group.getGroupId(), null, null, null, _TEMPLATE_NAME, false, start,
  112. end, null);
  113. }
  114. protected int getDefinitionsCount(PermissionChecker permissionChecker)
  115. throws Exception {
  116. PermissionThreadLocal.setPermissionChecker(permissionChecker);
  117. return DefinitionServiceUtil.getDefinitionsCount(
  118. _group.getGroupId(), null, null, null, _TEMPLATE_NAME, false);
  119. }
  120. protected User getUser(String roleName) throws Exception {
  121. Role role = RoleLocalServiceUtil.getRole(
  122. TestPropsValues.getCompanyId(), roleName);
  123. List<User> users = UserLocalServiceUtil.getRoleUsers(
  124. role.getRoleId(), 0, 1);
  125. return users.get(0);
  126. }
  127. protected void setUpDefinition() throws Exception {
  128. ServiceContext serviceContext =
  129. ServiceContextTestUtil.getServiceContext();
  130. ModelPermissions modelPermissions = ModelPermissionsFactory.create(
  131. _DEFINITION_GROUP_PERMISSIONS, null, Definition.class.getName());
  132. serviceContext.setModelPermissions(modelPermissions);
  133. for (int i = 0; i < 5; i++) {
  134. Map<Locale, String> nameMap = HashMapBuilder.put(
  135. LocaleUtil.US, RandomTestUtil.randomString()
  136. ).build();
  137. try (InputStream inputStream =
  138. DefinitionServiceTest.class.getResourceAsStream(
  139. "dependencies/" + _TEMPLATE_NAME + ".jrxml")) {
  140. DefinitionLocalServiceUtil.addDefinition(
  141. TestPropsValues.getUserId(), _group.getGroupId(), nameMap,
  142. null, 0, null, _TEMPLATE_NAME + ".jrxml", inputStream,
  143. serviceContext);
  144. }
  145. }
  146. modelPermissions = ModelPermissionsFactory.create(
  147. _DEFINITION_GROUP_PERMISSIONS, new String[] {"VIEW"},
  148. Definition.class.getName());
  149. serviceContext.setModelPermissions(modelPermissions);
  150. for (int i = 0; i < 5; i++) {
  151. Map<Locale, String> nameMap = HashMapBuilder.put(
  152. LocaleUtil.US, RandomTestUtil.randomString()
  153. ).build();
  154. try (InputStream inputStream =
  155. DefinitionServiceTest.class.getResourceAsStream(
  156. "dependencies/" + _TEMPLATE_NAME + ".jrxml")) {
  157. DefinitionLocalServiceUtil.addDefinition(
  158. TestPropsValues.getUserId(), _group.getGroupId(), nameMap,
  159. null, 0, null, _TEMPLATE_NAME + ".jrxml", inputStream,
  160. serviceContext);
  161. }
  162. }
  163. }
  164. protected void setUpPermissionChecker() throws Exception {
  165. User adminUser = getUser(RoleConstants.ADMINISTRATOR);
  166. _adminPermissionChecker = PermissionCheckerFactoryUtil.create(
  167. adminUser);
  168. User guestUser = getUser(RoleConstants.GUEST);
  169. _guestPermissionChecker = PermissionCheckerFactoryUtil.create(
  170. guestUser);
  171. }
  172. private static final String[] _DEFINITION_GROUP_PERMISSIONS = {
  173. "ADD_REPORT", "DELETE", "PERMISSIONS", "UPDATE", "VIEW"
  174. };
  175. private static final String _TEMPLATE_NAME =
  176. "reports_admin_template_source_sample_list_type";
  177. private PermissionChecker _adminPermissionChecker;
  178. @DeleteAfterTestRun
  179. private Group _group;
  180. private PermissionChecker _guestPermissionChecker;
  181. private PermissionChecker _originalPermissionChecker;
  182. }