com.liferay.layout.page.template.service.test.LayoutPageTemplateEntryServiceTest.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.layout.page.template.service.test.LayoutPageTemplateEntryServiceTest.java

Source

/**
 * 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.layout.page.template.service.test;

import com.liferay.arquillian.extension.junit.bridge.junit.Arquillian;
import com.liferay.fragment.model.FragmentCollection;
import com.liferay.fragment.model.FragmentEntry;
import com.liferay.fragment.model.FragmentEntryInstanceLink;
import com.liferay.fragment.service.FragmentCollectionServiceUtil;
import com.liferay.fragment.service.FragmentEntryInstanceLinkLocalServiceUtil;
import com.liferay.fragment.service.FragmentEntryServiceUtil;
import com.liferay.layout.page.template.exception.DuplicateLayoutPageTemplateEntryException;
import com.liferay.layout.page.template.exception.LayoutPageTemplateEntryNameException;
import com.liferay.layout.page.template.model.LayoutPageTemplateCollection;
import com.liferay.layout.page.template.model.LayoutPageTemplateEntry;
import com.liferay.layout.page.template.service.LayoutPageTemplateCollectionServiceUtil;
import com.liferay.layout.page.template.service.LayoutPageTemplateEntryServiceUtil;
import com.liferay.petra.string.StringPool;
import com.liferay.portal.kernel.dao.orm.QueryUtil;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.model.Group;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.test.rule.AggregateTestRule;
import com.liferay.portal.kernel.test.rule.DeleteAfterTestRun;
import com.liferay.portal.kernel.test.util.GroupTestUtil;
import com.liferay.portal.kernel.test.util.ServiceContextTestUtil;
import com.liferay.portal.kernel.test.util.TestPropsValues;
import com.liferay.portal.kernel.workflow.WorkflowConstants;
import com.liferay.portal.test.rule.LiferayIntegrationTestRule;
import com.liferay.portal.test.rule.PermissionCheckerTestRule;

import java.util.ArrayList;
import java.util.List;

import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

/**
 * @author Jrgen Kappler
 */
@RunWith(Arquillian.class)
public class LayoutPageTemplateEntryServiceTest {

    @ClassRule
    @Rule
    public static final AggregateTestRule aggregateTestRule = new AggregateTestRule(
            new LiferayIntegrationTestRule(), PermissionCheckerTestRule.INSTANCE);

    @Before
    public void setUp() throws Exception {
        _group = GroupTestUtil.addGroup();
    }

    @Test(expected = DuplicateLayoutPageTemplateEntryException.class)
    public void testAddDuplicateLayoutPageTemplateEntries() throws Exception {
        ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(_group.getGroupId(),
                TestPropsValues.getUserId());

        LayoutPageTemplateCollection layoutPageTemplateCollection = LayoutPageTemplateCollectionServiceUtil
                .addLayoutPageTemplateCollection(_group.getGroupId(), "Layout Page Template Collection", null,
                        serviceContext);

        LayoutPageTemplateEntryServiceUtil.addLayoutPageTemplateEntry(_group.getGroupId(),
                layoutPageTemplateCollection.getLayoutPageTemplateCollectionId(), "Layout Page Template Entry",
                null, serviceContext);

        LayoutPageTemplateEntryServiceUtil.addLayoutPageTemplateEntry(_group.getGroupId(),
                layoutPageTemplateCollection.getLayoutPageTemplateCollectionId(), "Layout Page Template Entry",
                null, serviceContext);
    }

    @Test(expected = LayoutPageTemplateEntryNameException.class)
    public void testAddLayoutPageEntryWithNullName() throws Exception {
        ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(_group.getGroupId(),
                TestPropsValues.getUserId());

        LayoutPageTemplateCollection layoutPageTemplateCollection = LayoutPageTemplateCollectionServiceUtil
                .addLayoutPageTemplateCollection(_group.getGroupId(), "Layout Page Template Collection", null,
                        serviceContext);

        LayoutPageTemplateEntryServiceUtil.addLayoutPageTemplateEntry(_group.getGroupId(),
                layoutPageTemplateCollection.getLayoutPageTemplateCollectionId(), null, null, serviceContext);
    }

    @Test
    public void testAddLayoutPageTemplateEntry() throws PortalException {
        ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(_group.getGroupId(),
                TestPropsValues.getUserId());

        LayoutPageTemplateCollection layoutPageTemplateCollection = LayoutPageTemplateCollectionServiceUtil
                .addLayoutPageTemplateCollection(_group.getGroupId(), "Layout Page Template Collection", null,
                        serviceContext);

        LayoutPageTemplateEntry layoutPageTemplateEntry = LayoutPageTemplateEntryServiceUtil
                .addLayoutPageTemplateEntry(_group.getGroupId(),
                        layoutPageTemplateCollection.getLayoutPageTemplateCollectionId(),
                        "Layout Page Template Entry", null, serviceContext);

        Assert.assertEquals("Layout Page Template Entry", layoutPageTemplateEntry.getName());
    }

    @Test(expected = LayoutPageTemplateEntryNameException.class)
    public void testAddLayoutPageTemplateEntryWithEmptyName() throws Exception {
        ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(_group.getGroupId(),
                TestPropsValues.getUserId());

        LayoutPageTemplateCollection layoutPageTemplateCollection = LayoutPageTemplateCollectionServiceUtil
                .addLayoutPageTemplateCollection(_group.getGroupId(), "Layout Page Template Collection", null,
                        serviceContext);

        LayoutPageTemplateEntryServiceUtil.addLayoutPageTemplateEntry(_group.getGroupId(),
                layoutPageTemplateCollection.getLayoutPageTemplateCollectionId(), StringPool.BLANK, null,
                serviceContext);
    }

    @Test
    public void testAddLayoutPageTemplateEntryWithFragmentEntries() throws PortalException {

        ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(_group.getGroupId(),
                TestPropsValues.getUserId());

        LayoutPageTemplateCollection layoutPageTemplateCollection = LayoutPageTemplateCollectionServiceUtil
                .addLayoutPageTemplateCollection(_group.getGroupId(), "Layout Page Template Collection", null,
                        serviceContext);

        FragmentCollection fragmentCollection = FragmentCollectionServiceUtil.addFragmentCollection(
                _group.getGroupId(), "Fragment Collection", StringPool.BLANK, serviceContext);

        FragmentEntry fragmentEntry1 = FragmentEntryServiceUtil.addFragmentEntry(_group.getGroupId(),
                fragmentCollection.getFragmentCollectionId(), "Fragment Entry 1", WorkflowConstants.STATUS_APPROVED,
                serviceContext);

        FragmentEntry fragmentEntry2 = FragmentEntryServiceUtil.addFragmentEntry(_group.getGroupId(),
                fragmentCollection.getFragmentCollectionId(), "Fragment Entry 2", WorkflowConstants.STATUS_APPROVED,
                serviceContext);

        List<FragmentEntry> fragmentEntries = new ArrayList<>();

        fragmentEntries.add(fragmentEntry1);
        fragmentEntries.add(fragmentEntry2);

        LayoutPageTemplateEntry layoutPageTemplateEntry = LayoutPageTemplateEntryServiceUtil
                .addLayoutPageTemplateEntry(_group.getGroupId(),
                        layoutPageTemplateCollection.getLayoutPageTemplateCollectionId(),
                        "Layout Page Template Entry", fragmentEntries, serviceContext);

        List<FragmentEntryInstanceLink> actualLayoutPageTemplateEntriesCount = FragmentEntryInstanceLinkLocalServiceUtil
                .getFragmentEntryInstanceLinks(_group.getGroupId(),
                        layoutPageTemplateEntry.getLayoutPageTemplateEntryId());

        Assert.assertEquals(actualLayoutPageTemplateEntriesCount.toString(), 2,
                actualLayoutPageTemplateEntriesCount.size());
    }

    @Test
    public void testAddMultipleLayoutPageTemplateEntries() throws PortalException {

        ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(_group.getGroupId(),
                TestPropsValues.getUserId());

        LayoutPageTemplateCollection layoutPageTemplateCollection = LayoutPageTemplateCollectionServiceUtil
                .addLayoutPageTemplateCollection(_group.getGroupId(), "Layout Page Template Collection", null,
                        serviceContext);

        List<LayoutPageTemplateEntry> originalLayoutPageTemplateEntries = LayoutPageTemplateEntryServiceUtil
                .getLayoutPageTemplateEntries(layoutPageTemplateCollection.getGroupId(),
                        layoutPageTemplateCollection.getLayoutPageTemplateCollectionId(), QueryUtil.ALL_POS,
                        QueryUtil.ALL_POS);

        LayoutPageTemplateEntryServiceUtil.addLayoutPageTemplateEntry(_group.getGroupId(),
                layoutPageTemplateCollection.getLayoutPageTemplateCollectionId(), "Layout Page Template Entry 1",
                null, serviceContext);

        LayoutPageTemplateEntryServiceUtil.addLayoutPageTemplateEntry(_group.getGroupId(),
                layoutPageTemplateCollection.getLayoutPageTemplateCollectionId(), "Layout Page Template Entry 2",
                null, serviceContext);

        List<LayoutPageTemplateEntry> actualLayoutPageTemplateEntries = LayoutPageTemplateEntryServiceUtil
                .getLayoutPageTemplateEntries(layoutPageTemplateCollection.getGroupId(),
                        layoutPageTemplateCollection.getLayoutPageTemplateCollectionId(), QueryUtil.ALL_POS,
                        QueryUtil.ALL_POS);

        Assert.assertEquals(actualLayoutPageTemplateEntries.toString(),
                originalLayoutPageTemplateEntries.size() + 2, actualLayoutPageTemplateEntries.size());
    }

    @Test
    public void testDeleteLayoutPageTemplateEntry() throws Exception {
        ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(_group.getGroupId(),
                TestPropsValues.getUserId());

        LayoutPageTemplateCollection layoutPageTemplateCollection = LayoutPageTemplateCollectionServiceUtil
                .addLayoutPageTemplateCollection(_group.getGroupId(), "Layout Page Template Collection", null,
                        serviceContext);

        LayoutPageTemplateEntry layoutPageTemplateEntry = LayoutPageTemplateEntryServiceUtil
                .addLayoutPageTemplateEntry(_group.getGroupId(),
                        layoutPageTemplateCollection.getLayoutPageTemplateCollectionId(),
                        "Layout Page Template Entry", null, serviceContext);

        LayoutPageTemplateEntryServiceUtil
                .deleteLayoutPageTemplateEntry(layoutPageTemplateEntry.getLayoutPageTemplateEntryId());

        Assert.assertNull(LayoutPageTemplateEntryServiceUtil
                .fetchLayoutPageTemplateEntry(layoutPageTemplateEntry.getLayoutPageTemplateEntryId()));
    }

    @Test
    public void testRemoveFragmentsFromLayoutPageTemplateEntry() throws PortalException {

        ServiceContext serviceContext = ServiceContextTestUtil.getServiceContext(_group.getGroupId(),
                TestPropsValues.getUserId());

        LayoutPageTemplateCollection layoutPageTemplateCollection = LayoutPageTemplateCollectionServiceUtil
                .addLayoutPageTemplateCollection(_group.getGroupId(), "Layout Page Template Collection", null,
                        serviceContext);

        FragmentCollection fragmentCollection = FragmentCollectionServiceUtil.addFragmentCollection(
                _group.getGroupId(), "Fragment Collection", StringPool.BLANK, serviceContext);

        FragmentEntry fragmentEntry1 = FragmentEntryServiceUtil.addFragmentEntry(_group.getGroupId(),
                fragmentCollection.getFragmentCollectionId(), "Fragment Entry 1", WorkflowConstants.STATUS_APPROVED,
                serviceContext);

        FragmentEntry fragmentEntry2 = FragmentEntryServiceUtil.addFragmentEntry(_group.getGroupId(),
                fragmentCollection.getFragmentCollectionId(), "Fragment Entry 2", WorkflowConstants.STATUS_APPROVED,
                serviceContext);

        List<FragmentEntry> fragmentEntries = new ArrayList<>();

        fragmentEntries.add(fragmentEntry1);
        fragmentEntries.add(fragmentEntry2);

        LayoutPageTemplateEntry layoutPageTemplateEntry = LayoutPageTemplateEntryServiceUtil
                .addLayoutPageTemplateEntry(_group.getGroupId(),
                        layoutPageTemplateCollection.getLayoutPageTemplateCollectionId(),
                        "Layout Page Template Entry", fragmentEntries, serviceContext);

        LayoutPageTemplateEntryServiceUtil.updateLayoutPageTemplateEntry(
                layoutPageTemplateEntry.getLayoutPageTemplateEntryId(), "New name", new ArrayList<FragmentEntry>(),
                serviceContext);

        List<FragmentEntryInstanceLink> actualLayoutPageTemplateEntriesCount = FragmentEntryInstanceLinkLocalServiceUtil
                .getFragmentEntryInstanceLinks(_group.getGroupId(),
                        layoutPageTemplateEntry.getLayoutPageTemplateEntryId());

        Assert.assertEquals(actualLayoutPageTemplateEntriesCount.toString(), 0,
                actualLayoutPageTemplateEntriesCount.size());
    }

    @DeleteAfterTestRun
    private Group _group;

}