/**
* 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.portlet.asset.search.test;
import com.liferay.asset.kernel.AssetRendererFactoryRegistryUtil;
import com.liferay.asset.kernel.model.AssetCategory;
import com.liferay.asset.kernel.model.AssetEntry;
import com.liferay.asset.kernel.model.AssetVocabulary;
import com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil;
import com.liferay.asset.kernel.service.AssetTagLocalServiceUtil;
import com.liferay.asset.kernel.service.AssetVocabularyLocalServiceUtil;
import com.liferay.asset.kernel.service.persistence.AssetEntryQuery;
import com.liferay.portal.kernel.dao.orm.QueryUtil;
import com.liferay.portal.kernel.model.BaseModel;
import com.liferay.portal.kernel.model.Group;
import com.liferay.portal.kernel.model.User;
import com.liferay.portal.kernel.search.Hits;
import com.liferay.portal.kernel.search.SearchContext;
import com.liferay.portal.kernel.security.RandomUtil;
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.rule.Sync;
import com.liferay.portal.kernel.test.rule.SynchronousDestinationTestRule;
import com.liferay.portal.kernel.test.util.GroupTestUtil;
import com.liferay.portal.kernel.test.util.RandomTestUtil;
import com.liferay.portal.kernel.test.util.SearchContextTestUtil;
import com.liferay.portal.kernel.test.util.ServiceContextTestUtil;
import com.liferay.portal.kernel.test.util.TestPropsValues;
import com.liferay.portal.kernel.test.util.UserTestUtil;
import com.liferay.portal.kernel.util.ArrayUtil;
import com.liferay.portal.kernel.util.DateFormatFactoryUtil;
import com.liferay.portal.kernel.util.LocaleUtil;
import com.liferay.portal.kernel.util.PortalUtil;
import com.liferay.portal.kernel.util.Time;
import com.liferay.portal.test.rule.LiferayIntegrationTestRule;
import com.liferay.portal.util.PropsValues;
import com.liferay.portlet.asset.service.persistence.test.AssetEntryQueryTestUtil;
import com.liferay.portlet.asset.util.AssetUtil;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.apache.commons.lang.ArrayUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
/**
* @author Eudaldo Alonso
*/
@Sync
public abstract class BaseAssetSearchTestCase {
@ClassRule
@Rule
public static final AggregateTestRule aggregateTestRule =
new AggregateTestRule(
new LiferayIntegrationTestRule(),
SynchronousDestinationTestRule.INSTANCE);
@Before
public void setUp() throws Exception {
_group1 = GroupTestUtil.addGroup();
ServiceContext serviceContext =
ServiceContextTestUtil.getServiceContext(_group1.getGroupId());
AssetVocabulary vocabulary =
AssetVocabularyLocalServiceUtil.addVocabulary(
TestPropsValues.getUserId(), _group1.getGroupId(),
RandomTestUtil.randomString(), serviceContext);
_vocabularyId = vocabulary.getVocabularyId();
AssetCategory fashionCategory =
AssetCategoryLocalServiceUtil.addCategory(
TestPropsValues.getUserId(), _group1.getGroupId(), "Fashion",
_vocabularyId, serviceContext);
_fashionCategoryId = fashionCategory.getCategoryId();
AssetCategory foodCategory = AssetCategoryLocalServiceUtil.addCategory(
TestPropsValues.getUserId(), _group1.getGroupId(), "Food",
_vocabularyId, serviceContext);
_foodCategoryId = foodCategory.getCategoryId();
AssetCategory healthCategory =
AssetCategoryLocalServiceUtil.addCategory(
TestPropsValues.getUserId(), _group1.getGroupId(), "Health",
_vocabularyId, serviceContext);
_healthCategoryId = healthCategory.getCategoryId();
AssetCategory sportCategory = AssetCategoryLocalServiceUtil.addCategory(
TestPropsValues.getUserId(), _group1.getGroupId(), "Sport",
_vocabularyId, serviceContext);
_sportCategoryId = sportCategory.getCategoryId();
AssetCategory travelCategory =
AssetCategoryLocalServiceUtil.addCategory(
TestPropsValues.getUserId(), _group1.getGroupId(), "Travel",
_vocabularyId, serviceContext);
_travelCategoryId = travelCategory.getCategoryId();
_assetCategoryIds1 =
new long[] {_healthCategoryId, _sportCategoryId, _travelCategoryId};
_assetCategoryIds2 = new long[] {
_fashionCategoryId, _foodCategoryId, _healthCategoryId,
_sportCategoryId
};
_group2 = GroupTestUtil.addGroup();
long[] groupIds =
new long[] {_group1.getGroupId(), _group2.getGroupId()};
for (long groupId : groupIds) {
serviceContext = ServiceContextTestUtil.getServiceContext(groupId);
AssetTagLocalServiceUtil.addTag(
TestPropsValues.getUserId(), groupId, "liferay",
serviceContext);
AssetTagLocalServiceUtil.addTag(
TestPropsValues.getUserId(), groupId, "architecture",
serviceContext);
AssetTagLocalServiceUtil.addTag(
TestPropsValues.getUserId(), groupId, "modularity",
serviceContext);
AssetTagLocalServiceUtil.addTag(
TestPropsValues.getUserId(), groupId, "osgi", serviceContext);
AssetTagLocalServiceUtil.addTag(
TestPropsValues.getUserId(), groupId, "services",
serviceContext);
}
_assetTagsNames1 =
new String[] {"liferay", "architecture", "modularity", "osgi"};
_assetTagsNames2 = new String[] {"liferay", "architecture", "services"};
}
@Test
public void testAllAssetCategories1() throws Exception {
long[] allCategoryIds = {_healthCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null,
allCategoryIds, null);
testAssetCategorization(assetEntryQuery, 2);
}
@Test
public void testAllAssetCategories2() throws Exception {
long[] allCategoryIds = {_healthCategoryId, _sportCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null,
allCategoryIds, null);
testAssetCategorization(assetEntryQuery, 2);
}
@Test
public void testAllAssetCategories3() throws Exception {
long[] allCategoryIds =
{_healthCategoryId, _sportCategoryId, _foodCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null,
allCategoryIds, null);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAllAssetCategories4() throws Exception {
long[] allCategoryIds = {
_healthCategoryId, _sportCategoryId, _foodCategoryId,
_travelCategoryId
};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null,
allCategoryIds, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testAllAssetTags1() throws Exception {
String[] allTagNames = {"liferay"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null,
allTagNames, null);
testAssetCategorization(assetEntryQuery, 2);
}
@Test
public void testAllAssetTags2() throws Exception {
String[] allTagNames = {"liferay", "architecture"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null,
allTagNames, null);
testAssetCategorization(assetEntryQuery, 2);
}
@Test
public void testAllAssetTags3() throws Exception {
String[] allTagNames = {"liferay", "architecture", "services"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null,
allTagNames, null);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAllAssetTags4() throws Exception {
String[] allTagNames = {"liferay", "architecture", "services", "osgi"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null,
allTagNames, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testAllAssetTagsMultipleGroups1() throws Exception {
String[] allTagNames = {"liferay"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
new long[] {_group1.getGroupId(), _group2.getGroupId()},
getBaseModelClassName(), null, null, allTagNames, null);
testAssetCategorization(
new Group[] {_group1, _group2}, assetEntryQuery, 4);
}
@Test
public void testAllAssetTagsMultipleGroups2() throws Exception {
String[] allTagNames = {"liferay", "architecture"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
new long[] {_group1.getGroupId(), _group2.getGroupId()},
getBaseModelClassName(), null, null, allTagNames, null);
testAssetCategorization(
new Group[] {_group1, _group2}, assetEntryQuery, 4);
}
@Test
public void testAllAssetTagsMultipleGroups3() throws Exception {
String[] allTagNames = {"liferay", "architecture", "services"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
new long[] {_group1.getGroupId(), _group2.getGroupId()},
getBaseModelClassName(), null, null, allTagNames, null);
testAssetCategorization(
new Group[] {_group1, _group2}, assetEntryQuery, 2);
}
@Test
public void testAllAssetTagsMultipleGroups4() throws Exception {
String[] allTagNames = {"liferay", "architecture", "services", "osgi"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
new long[] {_group1.getGroupId(), _group2.getGroupId()},
getBaseModelClassName(), null, null, allTagNames, null);
testAssetCategorization(
new Group[] {_group1, _group2}, assetEntryQuery, 0);
}
@Test
public void testAnyAssetCategories1() throws Exception {
long[] anyCategoryIds = {_healthCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null, null,
anyCategoryIds);
testAssetCategorization(assetEntryQuery, 2);
}
@Test
public void testAnyAssetCategories2() throws Exception {
long[] anyCategoryIds = {_healthCategoryId, _sportCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null, null,
anyCategoryIds);
testAssetCategorization(assetEntryQuery, 2);
}
@Test
public void testAnyAssetCategories3() throws Exception {
long[] anyCategoryIds =
{_healthCategoryId, _sportCategoryId, _foodCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null, null,
anyCategoryIds);
testAssetCategorization(assetEntryQuery, 2);
}
@Test
public void testAnyAssetCategories4() throws Exception {
long[] anyCategoryIds = {_fashionCategoryId, _foodCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null, null,
anyCategoryIds);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAnyAssetTags1() throws Exception {
String[] anyTagNames = {"liferay"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null, null,
anyTagNames);
testAssetCategorization(assetEntryQuery, 2);
}
@Test
public void testAnyAssetTags2() throws Exception {
String[] anyTagNames = {"liferay", "architecture"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null, null,
anyTagNames);
testAssetCategorization(assetEntryQuery, 2);
}
@Test
public void testAnyAssetTags3() throws Exception {
String[] anyTagNames = {"liferay", "architecture", "services"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null, null,
anyTagNames);
testAssetCategorization(assetEntryQuery, 2);
}
@Test
public void testAnyAssetTags4() throws Exception {
String[] anyTagNames = {"modularity", "osgi"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null, null,
anyTagNames);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAssetCategoryAllAndAny() throws Exception {
long[] allCategoryIds =
{_healthCategoryId, _sportCategoryId, _travelCategoryId};
long[] anyCategoryIds = {_healthCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null,
allCategoryIds, anyCategoryIds);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAssetCategoryNotAllAndAll() throws Exception {
long[] notAllCategoryIds = {_fashionCategoryId, _foodCategoryId};
long[] allCategoryIds =
{_healthCategoryId, _sportCategoryId, _travelCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(),
notAllCategoryIds, null, allCategoryIds, null);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAssetCategoryNotAllAndAny() throws Exception {
long[] notAllCategoryIds = {_fashionCategoryId};
long[] anyCategoryIds = {_sportCategoryId, _travelCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(),
notAllCategoryIds, null, null, anyCategoryIds);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAssetCategoryNotAllAndNotAny() throws Exception {
long[] notAllCategoryIds = {_fashionCategoryId, _foodCategoryId};
long[] notAnyCategoryIds = {_travelCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(),
notAllCategoryIds, notAnyCategoryIds, null, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testAssetCategoryNotAnyAndAll() throws Exception {
long[] notAnyCategoryIds = {_fashionCategoryId};
long[] allCategoryIds = {_healthCategoryId, _sportCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null,
notAnyCategoryIds, allCategoryIds, null);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAssetCategoryNotAnyAndAny() throws Exception {
long[] notAnyCategoryIds = {_fashionCategoryId, _foodCategoryId};
long[] anyCategoryIds =
{_healthCategoryId, _sportCategoryId, _travelCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null,
notAnyCategoryIds, null, anyCategoryIds);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAssetTagsAllAndAny() throws Exception {
String[] allTagNames = {"liferay", "architecture", "services"};
String[] anyTagNames = {"liferay"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null, null,
allTagNames, anyTagNames);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAssetTagsNotAllAndAll() throws Exception {
String[] notAllTagNames = {"osgi", "modularity"};
String[] allTagNames = {"liferay", "architecture", "services"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), notAllTagNames,
null, allTagNames, null);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAssetTagsNotAllAndAny() throws Exception {
String[] notAllTagNames = {"services"};
String[] anyTagNames = {"liferay", "architecture"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), notAllTagNames,
null, null, anyTagNames);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAssetTagsNotAllAndNotAny() throws Exception {
String[] notAllTagNames = {"osgi", "modularity"};
String[] notAnyTagNames = {"services"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), notAllTagNames,
notAnyTagNames, null, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testAssetTagsNotAnyAndAll() throws Exception {
String[] notAnyTagNames = {"modularity"};
String[] allTagNames = {"liferay", "architecture"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null,
notAnyTagNames, allTagNames, null);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testAssetTagsNotAnyAndAny() throws Exception {
String[] notAnyTagNames = {"modularity", "osgi"};
String[] anyTagNames = {"liferay", "architecture", "services"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null,
notAnyTagNames, null, anyTagNames);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testClassName1() throws Exception {
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), new String[] {getBaseModelClassName()});
testClassNames(assetEntryQuery, 1);
}
@Test
public void testClassName2() throws Exception {
long[] classNameIds = AssetRendererFactoryRegistryUtil.getClassNameIds(
TestPropsValues.getCompanyId());
classNameIds = ArrayUtil.remove(
classNameIds, PortalUtil.getClassNameId(getBaseModelClass()));
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), classNameIds);
testClassNames(assetEntryQuery, 0);
}
@Test
public void testClassTypeIds1() throws Exception {
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), new String[] {getBaseModelClassName()});
testClassTypeIds(assetEntryQuery, true);
}
@Test
public void testClassTypeIds2() throws Exception {
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), new String[] {getBaseModelClassName()});
testClassTypeIds(assetEntryQuery, false);
}
@Test
public void testGroups() throws Exception {
AssetEntryQuery assetEntryQuery = new AssetEntryQuery();
assetEntryQuery.setClassName(getBaseModelClassName());
Group group1 = GroupTestUtil.addGroup();
Group group2 = GroupTestUtil.addGroup();
assetEntryQuery.setGroupIds(
new long[] {group1.getGroupId(), group2.getGroupId()});
SearchContext searchContext = SearchContextTestUtil.getSearchContext();
searchContext.setGroupIds(assetEntryQuery.getGroupIds());
int initialEntries = 0;
assertCount(initialEntries, assetEntryQuery, searchContext);
ServiceContext serviceContext1 =
ServiceContextTestUtil.getServiceContext(group1.getGroupId());
BaseModel<?> parentBaseModel1 = getParentBaseModel(
group1, serviceContext1);
addBaseModel(parentBaseModel1, getSearchKeywords(), serviceContext1);
ServiceContext serviceContext2 =
ServiceContextTestUtil.getServiceContext(group2.getGroupId());
BaseModel<?> parentBaseModel2 = getParentBaseModel(
group1, serviceContext2);
addBaseModel(parentBaseModel2, getSearchKeywords(), serviceContext2);
assertCount(initialEntries + 2, assetEntryQuery, searchContext);
}
@Test
public void testNotAllAssetCategories1() throws Exception {
long[] notAllCategoryIds = {_healthCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(),
notAllCategoryIds, null, null, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testNotAllAssetCategories2() throws Exception {
long[] notAllCategoryIds = {_healthCategoryId, _sportCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(),
notAllCategoryIds, null, null, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testNotAllAssetCategories3() throws Exception {
long[] notAllCategoryIds = {_fashionCategoryId, _foodCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(),
notAllCategoryIds, null, null, null);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testNotAllAssetCategories4() throws Exception {
long[] notAllCategoryIds =
{_fashionCategoryId, _foodCategoryId, _travelCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(),
notAllCategoryIds, null, null, null);
testAssetCategorization(assetEntryQuery, 2);
}
@Test
public void testNotAllAssetTags1() throws Exception {
String[] notAllTagNames = {"liferay"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), notAllTagNames,
null, null, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testNotAllAssetTags2() throws Exception {
String[] notAllTagNames = {"liferay", "architecture"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), notAllTagNames,
null, null, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testNotAllAssetTags3() throws Exception {
String[] notAllTagNames = {"liferay", "architecture", "services"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), notAllTagNames,
null, null, null);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testNotAllAssetTags4() throws Exception {
String[] notAllTagNames =
{"liferay", "architecture", "services", "osgi"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), notAllTagNames,
null, null, null);
testAssetCategorization(assetEntryQuery, 2);
}
@Test
public void testNotAllAssetTagsMultipleGroups1() throws Exception {
String[] notAllTagNames = {"liferay"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
new long[] {_group1.getGroupId(), _group2.getGroupId()},
getBaseModelClassName(), notAllTagNames, null, null, null);
testAssetCategorization(
new Group[] {_group1, _group2}, assetEntryQuery, 0);
}
@Test
public void testNotAllAssetTagsMultipleGroups2() throws Exception {
String[] notAllTagNames = {"liferay", "architecture"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
new long[] {_group1.getGroupId(), _group2.getGroupId()},
getBaseModelClassName(), notAllTagNames, null, null, null);
testAssetCategorization(
new Group[] {_group1, _group2}, assetEntryQuery, 0);
}
@Test
public void testNotAllAssetTagsMultipleGroups3() throws Exception {
String[] notAllTagNames = {"liferay", "architecture", "services"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
new long[] {_group1.getGroupId(), _group2.getGroupId()},
getBaseModelClassName(), notAllTagNames, null, null, null);
testAssetCategorization(
new Group[] {_group1, _group2}, assetEntryQuery, 2);
}
@Test
public void testNotAllAssetTagsMultipleGroups4() throws Exception {
String[] notAllTagNames =
{"liferay", "architecture", "services", "osgi"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
new long[] {_group1.getGroupId(), _group2.getGroupId()},
getBaseModelClassName(), notAllTagNames, null, null, null);
testAssetCategorization(
new Group[] {_group1, _group2}, assetEntryQuery, 4);
}
@Test
public void testNotAnyAssetCategories1() throws Exception {
long[] notAnyCategoryIds = {_healthCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null,
notAnyCategoryIds, null, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testNotAnyAssetCategories2() throws Exception {
long[] notAnyCategoryIds = {_healthCategoryId, _sportCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null,
notAnyCategoryIds, null, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testNotAnyAssetCategories3() throws Exception {
long[] notAnyCategoryIds =
{_fashionCategoryId, _foodCategoryId, _travelCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null,
notAnyCategoryIds, null, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testNotAnyAssetCategories4() throws Exception {
long[] notAnyCategoryIds = {_fashionCategoryId, _foodCategoryId};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null,
notAnyCategoryIds, null, null);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testNotAnyAssetTags1() throws Exception {
String[] notAnyTagNames = {"liferay"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null,
notAnyTagNames, null, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testNotAnyAssetTags2() throws Exception {
String[] notAnyTagNames = {"liferay", "architecture"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null,
notAnyTagNames, null, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testNotAnyAssetTags3() throws Exception {
String[] notAnyTagNames = {"liferay", "architecture", "services"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null,
notAnyTagNames, null, null);
testAssetCategorization(assetEntryQuery, 0);
}
@Test
public void testNotAnyAssetTags4() throws Exception {
String[] notAnyTagNames = {"modularity", "osgi"};
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), getBaseModelClassName(), null,
notAnyTagNames, null, null);
testAssetCategorization(assetEntryQuery, 1);
}
@Test
public void testOrderByCreateDateAsc() throws Exception {
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), new String[] {getBaseModelClassName()});
String[] titles = {
"open", "liferay", "social", "osgi", "content", "life"
};
testOrderByCreateDate(assetEntryQuery, "asc", titles, titles);
}
@Test
public void testOrderByCreateDateDesc() throws Exception {
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), new String[] {getBaseModelClassName()});
String[] titles = {
"open", "liferay", "social", "osgi", "content", "life"
};
String[] orderedTitles = {
"life", "content", "osgi", "social", "liferay", "open"
};
testOrderByCreateDate(assetEntryQuery, "desc", titles, orderedTitles);
}
@Test
public void testOrderByExpirationDateAsc() throws Exception {
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), new String[] {getBaseModelClassName()});
Date[] expirationDates = generateRandomDates(new Date(), 6);
testOrderByExpirationDate(assetEntryQuery, "asc", expirationDates);
}
@Test
public void testOrderByExpirationDateDesc() throws Exception {
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), new String[] {getBaseModelClassName()});
Date[] expirationDates = generateRandomDates(new Date(), 6);
testOrderByExpirationDate(assetEntryQuery, "desc", expirationDates);
}
@Test
public void testOrderByTitleAsc() throws Exception {
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), new String[] {getBaseModelClassName()});
String[] defaultTitles = {
"open", "liferay", "content", "social", "osgi", "life"
};
String[] frenchTitles = {
"ouvert", "liferay", "content", "social", "osgi", "vie"
};
List<Map<Locale, String>> titleMaps = new ArrayList<>();
for (int i = 0; i < defaultTitles.length; i++) {
Map<Locale, String> titleMap = new HashMap<>();
titleMap.put(LocaleUtil.getDefault(), defaultTitles[i]);
titleMap.put(LocaleUtil.FRANCE, frenchTitles[i]);
titleMaps.add(titleMap);
}
String[] defaultOrderedTitles = {
"content", "life", "liferay", "open", "osgi", "social"
};
String[] frenchOrderedTitles = {
"content", "liferay", "osgi", "ouvert", "social", "vie"
};
List<Map<Locale, String>> orderedTitleMaps = new ArrayList<>();
for (int i = 0; i < defaultOrderedTitles.length; i++) {
Map<Locale, String> titleMap = new HashMap<>();
titleMap.put(LocaleUtil.getDefault(), defaultOrderedTitles[i]);
String orderedTitle = frenchOrderedTitles[i];
if (!isLocalizableTitle()) {
orderedTitle = defaultOrderedTitles[i];
}
titleMap.put(LocaleUtil.FRANCE, orderedTitle);
orderedTitleMaps.add(titleMap);
}
testOrderByTitle(
assetEntryQuery, "asc", titleMaps, orderedTitleMaps,
new Locale[] {LocaleUtil.getDefault(), LocaleUtil.FRANCE});
}
@Test
public void testOrderByTitleDesc() throws Exception {
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), new String[] {getBaseModelClassName()});
String[] defaultTitles = {
"open", "liferay", "content", "social", "osgi", "life"
};
String[] frenchTitles = {
"ouvert", "liferay", "content", "social", "osgi", "vie"
};
List<Map<Locale, String>> titleMaps = new ArrayList<>();
for (int i = 0; i < defaultTitles.length; i++) {
Map<Locale, String> titleMap = new HashMap<>();
titleMap.put(LocaleUtil.getDefault(), defaultTitles[i]);
titleMap.put(LocaleUtil.FRANCE, frenchTitles[i]);
titleMaps.add(titleMap);
}
String[] defaultOrderedTitles = {
"social", "osgi", "open", "liferay", "life", "content"
};
String[] frenchOrderedTitles = {
"vie", "social", "ouvert", "osgi", "liferay", "content"
};
List<Map<Locale, String>> orderedTitleMaps = new ArrayList<>();
for (int i = 0; i < defaultOrderedTitles.length; i++) {
Map<Locale, String> titleMap = new HashMap<>();
titleMap.put(LocaleUtil.getDefault(), defaultOrderedTitles[i]);
String orderedTitle = frenchOrderedTitles[i];
if (!isLocalizableTitle()) {
orderedTitle = defaultOrderedTitles[i];
}
titleMap.put(LocaleUtil.FRANCE, orderedTitle);
orderedTitleMaps.add(titleMap);
}
testOrderByTitle(
assetEntryQuery, "desc", titleMaps, orderedTitleMaps,
new Locale[] {LocaleUtil.getDefault(), LocaleUtil.FRANCE});
}
@Test
public void testPaginationTypeNone() throws Exception {
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), new String[] {getBaseModelClassName()});
assetEntryQuery.setPaginationType("none");
testPaginationType(assetEntryQuery, 5);
}
@Test
public void testPaginationTypeRegular() throws Exception {
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), new String[] {getBaseModelClassName()});
assetEntryQuery.setPaginationType("regular");
testPaginationType(assetEntryQuery, 5);
}
@Test
public void testPaginationTypeSimple() throws Exception {
AssetEntryQuery assetEntryQuery =
AssetEntryQueryTestUtil.createAssetEntryQuery(
_group1.getGroupId(), new String[] {getBaseModelClassName()});
assetEntryQuery.setPaginationType("simple");
testPaginationType(assetEntryQuery, 5);
}
protected abstract BaseModel<?> addBaseModel(
BaseModel<?> parentBaseModel, Map<Locale, String> titleMap,
ServiceContext serviceContext)
throws Exception;
protected BaseModel<?> addBaseModel(
BaseModel<?> parentBaseModel, String keywords, Date expirationDate,
ServiceContext serviceContext)
throws Exception {
return addBaseModel(parentBaseModel, keywords, serviceContext);
}
protected abstract BaseModel<?> addBaseModel(
BaseModel<?> parentBaseModel, String keywords,
ServiceContext serviceContext)
throws Exception;
protected List<BaseModel<?>> addBaseModels(
Group[] groups, String keywords, ServiceContext serviceContext)
throws Exception {
List<BaseModel<?>> baseModels = new ArrayList<>();
for (Group group : groups) {
User user = UserTestUtil.getAdminUser(group.getCompanyId());
serviceContext.setCompanyId(group.getCompanyId());
serviceContext.setScopeGroupId(group.getGroupId());
serviceContext.setUserId(user.getUserId());
BaseModel<?> parentBaseModel = getParentBaseModel(
group, serviceContext);
baseModels.add(
addBaseModel(parentBaseModel, keywords, serviceContext));
}
return baseModels;
}
protected BaseModel<?> addBaseModelWithClassType(
BaseModel<?> parentBaseModel, String keywords,
ServiceContext serviceContext)
throws Exception {
return addBaseModel(parentBaseModel, keywords, serviceContext);
}
protected BaseModel<?> addBaseModelWithWorkflow(
BaseModel<?> parentBaseModel, String keywords, boolean approved,
ServiceContext serviceContext)
throws Exception {
return addBaseModel(parentBaseModel, keywords, serviceContext);
}
protected void assertCount(
int expectedCount, AssetEntryQuery assetEntryQuery,
SearchContext searchContext)
throws Exception {
assertCount(
expectedCount, assetEntryQuery, searchContext, QueryUtil.ALL_POS,
QueryUtil.ALL_POS);
}
protected void assertCount(
final int expectedCount, final AssetEntryQuery assetEntryQuery,
final SearchContext searchContext, final int start, final int end)
throws Exception {
int actualCount = searchCount(
assetEntryQuery, searchContext, start, end);
Assert.assertEquals(expectedCount, actualCount);
}
protected String[] format(Date[] dates, DateFormat dateFormat) {
String[] strings = new String[dates.length];
for (int i = 0; i < strings.length; i++) {
strings[i] = dateFormat.format(dates[i]);
}
return strings;
}
protected Date[] generateRandomDates(Date startDate, int size) {
Date[] dates = new Date[size];
for (int i = 0; i < size; i++) {
Date date = new Date(
startDate.getTime() + (RandomUtil.nextInt(365) + 1) * Time.DAY);
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
dates[i] = calendar.getTime();
}
return dates;
}
protected abstract Class<?> getBaseModelClass();
protected String getBaseModelClassName() {
Class<?> clazz = getBaseModelClass();
return clazz.getName();
}
protected long[] getClassTypeIds() {
return null;
}
protected Date[] getExpirationDates(
List<AssetEntry> assetEntries, String orderByType)
throws Exception {
Date[] dates = new Date[assetEntries.size()];
for (int i = 0; i < dates.length; i++) {
int index = i;
if (orderByType.equals("desc")) {
index = dates.length - 1 - i;
}
AssetEntry assetEntry = assetEntries.get(index);
dates[i] = assetEntry.getExpirationDate();
}
return dates;
}
protected String[] getOrderedTitles(
List<Map<Locale, String>> orderedTitleMaps, Locale locale)
throws Exception {
String[] titles = new String[orderedTitleMaps.size()];
for (int i = 0; i < titles.length; i++) {
Map<Locale, String> orderedTitleMap = orderedTitleMaps.get(i);
titles[i] = orderedTitleMap.get(locale);
}
return titles;
}
protected BaseModel<?> getParentBaseModel(
Group group, ServiceContext serviceContext)
throws Exception {
return group;
}
protected abstract String getSearchKeywords();
protected String[] getTitles(List<AssetEntry> assetEntries, Locale locale)
throws Exception {
String[] titles = new String[assetEntries.size()];
for (int i = 0; i < titles.length; i++) {
AssetEntry assetEntry = assetEntries.get(i);
titles[i] = assetEntry.getTitle(locale);
}
return titles;
}
protected boolean isLocalizableTitle() {
return true;
}
protected List<AssetEntry> search(
AssetEntryQuery assetEntryQuery, SearchContext searchContext)
throws Exception {
Hits results = AssetUtil.search(
searchContext, assetEntryQuery, QueryUtil.ALL_POS,
QueryUtil.ALL_POS);
return AssetUtil.getAssetEntries(results);
}
protected int searchCount(
AssetEntryQuery assetEntryQuery, SearchContext searchContext,
int start, int end)
throws Exception {
Hits results = AssetUtil.search(
searchContext, assetEntryQuery, start, end);
return results.getLength();
}
protected void testAssetCategorization(
AssetEntryQuery assetEntryQuery, int expectedResults)
throws Exception {
testAssetCategorization(
new Group[] {_group1}, assetEntryQuery, expectedResults);
}
protected void testAssetCategorization(
Group[] groups, AssetEntryQuery assetEntryQuery,
int expectedResults)
throws Exception {
SearchContext searchContext = SearchContextTestUtil.getSearchContext();
searchContext.setGroupIds(assetEntryQuery.getGroupIds());
int initialEntries = 0;
assertCount(initialEntries, assetEntryQuery, searchContext);
ServiceContext serviceContext =
ServiceContextTestUtil.getServiceContext(groups[0].getGroupId());
serviceContext.setAssetTagNames(_assetTagsNames1);
serviceContext.setAssetCategoryIds(_assetCategoryIds1);
addBaseModels(groups, getSearchKeywords(), serviceContext);
serviceContext.setAssetTagNames(_assetTagsNames2);
serviceContext.setAssetCategoryIds(_assetCategoryIds2);
addBaseModels(groups, getSearchKeywords(), serviceContext);
assertCount(
initialEntries + expectedResults, assetEntryQuery, searchContext);
}
protected void testClassNames(
AssetEntryQuery assetEntryQuery, int expectedResult)
throws Exception {
ServiceContext serviceContext =
ServiceContextTestUtil.getServiceContext(_group1.getGroupId());
BaseModel<?> parentBaseModel = getParentBaseModel(
_group1, serviceContext);
SearchContext searchContext = SearchContextTestUtil.getSearchContext();
searchContext.setGroupIds(assetEntryQuery.getGroupIds());
int initialEntries = 0;
assertCount(initialEntries, assetEntryQuery, searchContext);
addBaseModel(parentBaseModel, getSearchKeywords(), serviceContext);
assertCount(
initialEntries + expectedResult, assetEntryQuery, searchContext);
}
protected void testClassTypeIds(
AssetEntryQuery assetEntryQuery, boolean classType)
throws Exception {
ServiceContext serviceContext =
ServiceContextTestUtil.getServiceContext(_group1.getGroupId());
BaseModel<?> parentBaseModel = getParentBaseModel(
_group1, serviceContext);
SearchContext searchContext = SearchContextTestUtil.getSearchContext();
searchContext.setGroupIds(assetEntryQuery.getGroupIds());
int initialEntries = 0;
assertCount(initialEntries, assetEntryQuery, searchContext);
addBaseModelWithClassType(
parentBaseModel, getSearchKeywords(), serviceContext);
if (classType) {
assetEntryQuery.setClassTypeIds(getClassTypeIds());
assertCount(initialEntries + 1, assetEntryQuery, searchContext);
}
else {
assetEntryQuery.setClassTypeIds(new long[] {0});
assertCount(initialEntries, assetEntryQuery, searchContext);
}
}
protected void testOrderByCreateDate(
final AssetEntryQuery assetEntryQuery, String orderByType,
String[] titles, final String[] orderedTitles)
throws Exception {
ServiceContext serviceContext =
ServiceContextTestUtil.getServiceContext(_group1.getGroupId());
BaseModel<?> parentBaseModel = getParentBaseModel(
_group1, serviceContext);
final SearchContext searchContext =
SearchContextTestUtil.getSearchContext();
searchContext.setGroupIds(assetEntryQuery.getGroupIds());
long createDate = 0;
BaseModel<?>[] baseModels = new BaseModel[titles.length];
for (int i = 0; i < titles.length; i++) {
long delta = 1000 - (System.currentTimeMillis() - createDate);
if (delta > 0) {
Thread.sleep(delta);
}
createDate = System.currentTimeMillis();
baseModels[i] = addBaseModel(
parentBaseModel, titles[i], serviceContext);
}
assetEntryQuery.setOrderByCol1("createDate");
assetEntryQuery.setOrderByType1(orderByType);
List<AssetEntry> assetEntries = search(assetEntryQuery, searchContext);
Assert.assertEquals(
ArrayUtils.toString(orderedTitles),
ArrayUtils.toString(
getTitles(assetEntries, LocaleUtil.getDefault())));
}
protected void testOrderByExpirationDate(
final AssetEntryQuery assetEntryQuery, final String orderByType,
final Date[] expirationDates)
throws Exception {
ServiceContext serviceContext =
ServiceContextTestUtil.getServiceContext(_group1.getGroupId());
BaseModel<?> parentBaseModel = getParentBaseModel(
_group1, serviceContext);
final SearchContext searchContext =
SearchContextTestUtil.getSearchContext();
searchContext.setGroupIds(assetEntryQuery.getGroupIds());
for (Date expirationDate : expirationDates) {
addBaseModel(
parentBaseModel, RandomTestUtil.randomString(), expirationDate,
serviceContext);
}
assetEntryQuery.setOrderByCol1("expirationDate");
assetEntryQuery.setOrderByType1(orderByType);
Arrays.sort(expirationDates);
final DateFormat dateFormat = DateFormatFactoryUtil.getSimpleDateFormat(
PropsValues.INDEX_DATE_FORMAT_PATTERN);
List<AssetEntry> assetEntries = search(assetEntryQuery, searchContext);
Assert.assertEquals(
ArrayUtils.toString(format(expirationDates, dateFormat)),
ArrayUtils.toString(
format(
getExpirationDates(assetEntries, orderByType),
dateFormat)));
}
protected void testOrderByTitle(
final AssetEntryQuery assetEntryQuery, String orderByType,
List<Map<Locale, String>> titleMaps,
final List<Map<Locale, String>> orderedTitleMaps, Locale[] locales)
throws Exception {
ServiceContext serviceContext =
ServiceContextTestUtil.getServiceContext(_group1.getGroupId());
BaseModel<?> parentBaseModel = getParentBaseModel(
_group1, serviceContext);
for (Map<Locale, String> titleMap : titleMaps) {
addBaseModel(parentBaseModel, titleMap, serviceContext);
}
assetEntryQuery.setOrderByCol1("title");
assetEntryQuery.setOrderByType1(orderByType);
final SearchContext searchContext =
SearchContextTestUtil.getSearchContext();
searchContext.setGroupIds(assetEntryQuery.getGroupIds());
for (final Locale locale : locales) {
searchContext.setLocale(locale);
List<AssetEntry> assetEntries = search(
assetEntryQuery, searchContext);
Assert.assertEquals(
ArrayUtils.toString(getOrderedTitles(orderedTitleMaps, locale)),
ArrayUtils.toString(getTitles(assetEntries, locale)));
}
}
protected void testPaginationType(AssetEntryQuery assetEntryQuery, int size)
throws Exception {
ServiceContext serviceContext =
ServiceContextTestUtil.getServiceContext(_group1.getGroupId());
BaseModel<?> parentBaseModel = getParentBaseModel(
_group1, serviceContext);
SearchContext searchContext = SearchContextTestUtil.getSearchContext();
searchContext.setGroupIds(assetEntryQuery.getGroupIds());
for (int i = 0; i < size; i++) {
addBaseModel(
parentBaseModel, RandomTestUtil.randomString(), serviceContext);
}
assertCount(size, assetEntryQuery, searchContext, 0, 1);
}
private long[] _assetCategoryIds1;
private long[] _assetCategoryIds2;
private String[] _assetTagsNames1;
private String[] _assetTagsNames2;
private long _fashionCategoryId;
private long _foodCategoryId;
@DeleteAfterTestRun
private Group _group1;
@DeleteAfterTestRun
private Group _group2;
private long _healthCategoryId;
private long _sportCategoryId;
private long _travelCategoryId;
private long _vocabularyId;
}