/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.portal.upgrade.v7_0_0; import com.liferay.counter.kernel.service.CounterLocalServiceUtil; import com.liferay.portal.kernel.cache.CacheRegistryUtil; import com.liferay.portal.kernel.model.ResourceConstants; import com.liferay.portal.kernel.model.ResourcePermission; import com.liferay.portal.kernel.model.User; import com.liferay.portal.kernel.service.ResourcePermissionLocalServiceUtil; import com.liferay.portal.kernel.test.rule.AggregateTestRule; import com.liferay.portal.kernel.test.rule.DeleteAfterTestRun; import com.liferay.portal.kernel.test.rule.Sync; import com.liferay.portal.kernel.test.rule.SynchronousDestinationTestRule; import com.liferay.portal.kernel.test.util.UserTestUtil; import com.liferay.portal.kernel.util.GetterUtil; import com.liferay.portal.model.impl.ResourcePermissionImpl; import com.liferay.portal.test.rule.LiferayIntegrationTestRule; import java.util.ArrayList; import java.util.List; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; /** * @author Sampsa Sohlman */ @Sync(cleanTransaction = true) public class UpgradeResourcePermissionTest extends UpgradeResourcePermission { @ClassRule @Rule public static final AggregateTestRule aggregateTestRule = new AggregateTestRule( new LiferayIntegrationTestRule(), SynchronousDestinationTestRule.INSTANCE); @Before public void setUp() throws Exception { _user = UserTestUtil.addUser(); } @After public void tearDown() throws Exception { for (long resourcePermissionId : _resourcePermissionIds) { ResourcePermissionLocalServiceUtil.deleteResourcePermission( resourcePermissionId); } } @Test public void testUpgrade() throws Exception { String primKey1 = "123"; long actionIds1 = 4; long resourcePermissionId1 = addResourcePermission( primKey1, actionIds1); String primKey2 = "987_INSTANCE_ABCD"; long actionIds2 = 3; long resourcePermissionId2 = addResourcePermission( primKey2, actionIds2); upgrade(); CacheRegistryUtil.clear(); ResourcePermission resourcePermission1 = ResourcePermissionLocalServiceUtil.getResourcePermission( resourcePermissionId1); Assert.assertEquals( actionIds1 % 2 == 1, resourcePermission1.getViewActionId()); Assert.assertEquals( resourcePermission1.getPrimKeyId(), GetterUtil.getLong(primKey1)); ResourcePermission resourcePermission2 = ResourcePermissionLocalServiceUtil.getResourcePermission( resourcePermissionId2); Assert.assertEquals( actionIds2 % 2 == 1, resourcePermission2.getViewActionId()); Assert.assertEquals(0, resourcePermission2.getPrimKeyId()); } protected long addResourcePermission(String primKey, long actionIds) { ResourcePermission resourcePermission = new ResourcePermissionImpl(); long resourcePermissionId = CounterLocalServiceUtil.increment( ResourcePermission.class.getName()); resourcePermission.setResourcePermissionId(resourcePermissionId); resourcePermission.setCompanyId(_user.getCompanyId()); resourcePermission.setName( UpgradeResourcePermissionTest.class.getName()); resourcePermission.setScope(ResourceConstants.SCOPE_INDIVIDUAL); resourcePermission.setPrimKey(primKey); resourcePermission.setPrimKeyId(-1); resourcePermission.setOwnerId(_user.getUserId()); resourcePermission.setActionIds(actionIds); resourcePermission.setViewActionId(actionIds % 2 != 1); resourcePermission = ResourcePermissionLocalServiceUtil.addResourcePermission( resourcePermission); _resourcePermissionIds.add( resourcePermission.getResourcePermissionId()); return resourcePermission.getResourcePermissionId(); } private final List<Long> _resourcePermissionIds = new ArrayList<>(); @DeleteAfterTestRun private User _user; }