/*
* Copyright 2015-Present Entando Inc. (http://www.entando.com) 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.agiletec.plugins.jacms.aps.system.services.content;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import com.agiletec.aps.BaseTestCase;
import com.agiletec.aps.system.SystemConstants;
import com.agiletec.aps.system.common.FieldSearchFilter;
import com.agiletec.aps.system.common.entity.model.EntitySearchFilter;
import com.agiletec.aps.system.common.entity.model.attribute.AttributeInterface;
import com.agiletec.aps.system.common.entity.model.attribute.DateAttribute;
import com.agiletec.aps.system.common.entity.model.attribute.HypertextAttribute;
import com.agiletec.aps.system.common.entity.model.attribute.MonoListAttribute;
import com.agiletec.aps.system.common.entity.model.attribute.TextAttribute;
import com.agiletec.aps.system.exception.ApsSystemException;
import com.agiletec.aps.system.services.category.Category;
import com.agiletec.aps.system.services.category.ICategoryManager;
import com.agiletec.aps.system.services.group.Group;
import com.agiletec.aps.util.DateConverter;
import com.agiletec.plugins.jacms.aps.system.JacmsSystemConstants;
import com.agiletec.plugins.jacms.aps.system.services.content.model.Content;
import com.agiletec.plugins.jacms.aps.system.services.content.model.SmallContentType;
import com.agiletec.plugins.jacms.aps.system.services.content.model.extraAttribute.LinkAttribute;
import com.agiletec.plugins.jacms.aps.system.services.content.model.extraAttribute.ResourceAttributeInterface;
/**
* @author M. Morini - E.Santoboni
*/
public class TestContentManager extends BaseTestCase {
@Override
protected void setUp() throws Exception {
super.setUp();
this.init();
}
public void testSearchContents_1_1() throws Throwable {
List<String> contentIds = this._contentManager.searchId(null);
assertNotNull(contentIds);
assertEquals(25, contentIds.size());
EntitySearchFilter creationOrder = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
creationOrder.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter descrFilter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "Cont", true);
EntitySearchFilter[] filters1 = {creationOrder, descrFilter};
contentIds = this._contentManager.searchId(filters1);
assertNotNull(contentIds);
String[] expected1 = {"RAH101", "ART102", "EVN103", "ART104", "ART111", "ART112", "ART120", "ART121", "ART122"};
assertEquals(expected1.length, contentIds.size());
this.verifyOrder(contentIds, expected1);
EntitySearchFilter lastEditorFilter = new EntitySearchFilter(IContentManager.CONTENT_LAST_EDITOR_FILTER_KEY, false, "admin", true);
EntitySearchFilter[] filters2 = {creationOrder, descrFilter, lastEditorFilter};
contentIds = this._contentManager.searchId(filters2);
assertNotNull(contentIds);
assertEquals(expected1.length, contentIds.size());
this.verifyOrder(contentIds, expected1);
descrFilter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "Cont", true, FieldSearchFilter.LikeOptionType.RIGHT);
EntitySearchFilter[] filters3 = {creationOrder, descrFilter};
contentIds = this._contentManager.searchId(filters3);
System.out.println(contentIds);
assertNotNull(contentIds);
String[] expected3 = expected1;
assertEquals(expected3.length, contentIds.size());
this.verifyOrder(contentIds, expected3);
descrFilter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "Cont", true, FieldSearchFilter.LikeOptionType.LEFT);
EntitySearchFilter[] filters4 = {creationOrder, descrFilter};
contentIds = this._contentManager.searchId(filters4);
assertNotNull(contentIds);
assertTrue(contentIds.isEmpty());
descrFilter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "1", true, FieldSearchFilter.LikeOptionType.LEFT);
EntitySearchFilter[] filters5 = {creationOrder, descrFilter};
contentIds = this._contentManager.searchId(filters5);
assertNotNull(contentIds);
String[] expected5 = {"EVN191", "ART120"};
assertEquals(expected5.length, contentIds.size());
this.verifyOrder(contentIds, expected5);
}
public void testSearchContents_1_2() throws Throwable {
EntitySearchFilter versionFilter = new EntitySearchFilter(IContentManager.CONTENT_CURRENT_VERSION_FILTER_KEY, false, "0.", true);
EntitySearchFilter[] filters3 = {versionFilter};
List<String> contentIds = this._contentManager.searchId(filters3);
assertNotNull(contentIds);
String[] expected2 = {"ART179"};
assertEquals(expected2.length, contentIds.size());
this.verifyOrder(contentIds, expected2);
versionFilter = new EntitySearchFilter(IContentManager.CONTENT_CURRENT_VERSION_FILTER_KEY, false, ".0", true);
EntitySearchFilter[] filters4 = {versionFilter};
contentIds = this._contentManager.searchId(filters4);
assertNotNull(contentIds);
assertEquals(22, contentIds.size());
}
/*
* ATTENTION: invalid test on mysql db because the standard search with 'LIKE' clause is case insensitive
*/
public void testSearchContents_1_3() throws Throwable {
EntitySearchFilter creationOrder = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
creationOrder.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter descrFilter_b = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "cont", true);
EntitySearchFilter[] filters1_b = {creationOrder, descrFilter_b};
List<String> contentIds = this._contentManager.searchId(filters1_b);
assertNotNull(contentIds);
assertEquals(0, contentIds.size());
EntitySearchFilter descrFilter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "Cont", true);
EntitySearchFilter lastEditorFilter_b = new EntitySearchFilter(IContentManager.CONTENT_LAST_EDITOR_FILTER_KEY, false, "AdMin", true);
EntitySearchFilter[] filters2_b = {creationOrder, descrFilter, lastEditorFilter_b};
contentIds = this._contentManager.searchId(filters2_b);
assertNotNull(contentIds);
assertEquals(0, contentIds.size());
}
public void testSearchContents_1_4() throws Throwable {
//forcing case insensitive search
WorkContentSearcherDAO searcherDao = (WorkContentSearcherDAO) this.getApplicationContext().getBean("jacmsWorkContentSearcherDAO");
searcherDao.setForceCaseInsensitiveLikeSearch(true);
List<String> contentIds = this._contentManager.searchId(null);
assertNotNull(contentIds);
assertEquals(25, contentIds.size());
EntitySearchFilter creationOrder = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
creationOrder.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter descrFilter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "CoNt", true);
EntitySearchFilter[] filters1 = {creationOrder, descrFilter};
contentIds = this._contentManager.searchId(filters1);
assertNotNull(contentIds);
String[] expected1 = {"RAH101", "ART102", "EVN103", "ART104", "ART111", "ART112", "ART120", "ART121", "ART122"};
assertEquals(expected1.length, contentIds.size());
this.verifyOrder(contentIds, expected1);
EntitySearchFilter lastEditorFilter = new EntitySearchFilter(IContentManager.CONTENT_LAST_EDITOR_FILTER_KEY, false, "AdMin", true);
EntitySearchFilter[] filters2 = {creationOrder, descrFilter, lastEditorFilter};
contentIds = this._contentManager.searchId(filters2);
assertNotNull(contentIds);
assertEquals(expected1.length, contentIds.size());
this.verifyOrder(contentIds, expected1);
}
public void testSearchContents_1_5() throws Throwable {
//forcing case insensitive search
WorkContentSearcherDAO searcherDao = (WorkContentSearcherDAO) this.getApplicationContext().getBean("jacmsWorkContentSearcherDAO");
searcherDao.setForceCaseInsensitiveLikeSearch(true);
EntitySearchFilter creationOrder = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
creationOrder.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter descrFilter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "co", true, FieldSearchFilter.LikeOptionType.COMPLETE);
EntitySearchFilter[] filters1 = {creationOrder, descrFilter};
List<String> contentIds = this._contentManager.searchId(filters1);
assertNotNull(contentIds);
String[] expected1 = {"ART1", "RAH1", "ART187", "RAH101", "ART102", "EVN103", "ART104", "ART111", "ART112", "EVN23", "ART120", "ART121", "ART122"};
assertEquals(expected1.length, contentIds.size());
this.verifyOrder(contentIds, expected1);
descrFilter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "co", true, FieldSearchFilter.LikeOptionType.RIGHT);
EntitySearchFilter[] filters2 = {creationOrder, descrFilter};
contentIds = this._contentManager.searchId(filters2);
assertNotNull(contentIds);
String[] expected2 = {"RAH101", "ART102", "EVN103", "ART104", "ART111", "ART112", "EVN23", "ART120", "ART121", "ART122"};
assertEquals(expected2.length, contentIds.size());
this.verifyOrder(contentIds, expected2);
EntitySearchFilter idFilter = new EntitySearchFilter(IContentManager.ENTITY_ID_FILTER_KEY, false, "1", true, FieldSearchFilter.LikeOptionType.LEFT);
EntitySearchFilter[] filters3 = {creationOrder, descrFilter, idFilter};
contentIds = this._contentManager.searchId(filters3);
assertNotNull(contentIds);
String[] expected3 = {"RAH101", "ART111", "ART121"};
assertEquals(expected3.length, contentIds.size());
this.verifyOrder(contentIds, expected3);
descrFilter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "co", true, FieldSearchFilter.LikeOptionType.LEFT);
EntitySearchFilter[] filters4 = {creationOrder, descrFilter};
contentIds = this._contentManager.searchId(filters4);
assertNotNull(contentIds);
String[] expected4 = {};
assertEquals(expected4.length, contentIds.size());
}
public void testSearchContents_1_6() throws Throwable {
//forcing case sensitive search
WorkContentSearcherDAO searcherDao = (WorkContentSearcherDAO) this.getApplicationContext().getBean("jacmsWorkContentSearcherDAO");
searcherDao.setForceCaseSensitiveLikeSearch(true);
EntitySearchFilter creationOrder = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
creationOrder.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter descrFilter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "CoNt", true);
EntitySearchFilter[] filters1 = {creationOrder, descrFilter};
List<String> contentIds = this._contentManager.searchId(filters1);
assertEquals(0, contentIds.size());
EntitySearchFilter lastEditorFilter = new EntitySearchFilter(IContentManager.CONTENT_LAST_EDITOR_FILTER_KEY, false, "AdMin", true);
EntitySearchFilter[] filters2 = {creationOrder, descrFilter, lastEditorFilter};
contentIds = this._contentManager.searchId(filters2);
assertNotNull(contentIds);
assertEquals(0, contentIds.size());
}
public void testSearchContents_2() throws Throwable {
EntitySearchFilter creationOrder = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
creationOrder.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter groupFilter = new EntitySearchFilter(IContentManager.CONTENT_MAIN_GROUP_FILTER_KEY, false, "coach", false);
EntitySearchFilter[] filters = {creationOrder, groupFilter};
List<String> contentIds = this._contentManager.searchId(filters);
assertNotNull(contentIds);
String[] expected = {"EVN103", "ART104", "ART111", "ART112", "EVN25", "EVN41"};
assertEquals(expected.length, contentIds.size());
this.verifyOrder(contentIds, expected);
}
public void testSearchContents_3() throws Throwable {
EntitySearchFilter modifyOrder = new EntitySearchFilter(IContentManager.CONTENT_MODIFY_DATE_FILTER_KEY, false);
modifyOrder.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter onlineFilter = new EntitySearchFilter(IContentManager.CONTENT_ONLINE_FILTER_KEY, false, "encoding=", true);
EntitySearchFilter[] filters = {modifyOrder, onlineFilter};
List<String> contentIds = this._contentManager.searchId(filters);
assertNotNull(contentIds);
String[] expected = {"ART187", "ART1","EVN193","EVN194","ART180","RAH1",
"EVN191","EVN192","RAH101","EVN103","ART104","ART102","EVN23",
"EVN24","EVN25","EVN41","EVN20","EVN21","ART111","ART120","ART121","ART122","ART112", "ALL4"};
assertEquals(expected.length, contentIds.size());
this.verifyOrder(contentIds, expected);
}
public void testSearchWorkContents() throws Throwable {
List<String> contents = this._contentManager.loadWorkContentsId(null, null);
assertNotNull(contents);
assertEquals(0, contents.size());
EntitySearchFilter creationOrder = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
creationOrder.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter typeFilter = new EntitySearchFilter(IContentManager.ENTITY_TYPE_CODE_FILTER_KEY, false, "ART", false);
EntitySearchFilter[] filters1 = {creationOrder, typeFilter};
contents = this._contentManager.loadWorkContentsId(filters1, null);
assertEquals(0, contents.size());
List<String> groupCodes = new ArrayList<String>();
groupCodes.add("customers");
contents = this._contentManager.loadWorkContentsId(filters1, groupCodes);
String[] order1 = {"ART102"};
assertEquals(order1.length, contents.size());
this.verifyOrder(contents, order1);
groupCodes.add(Group.FREE_GROUP_NAME);
EntitySearchFilter statusFilter = new EntitySearchFilter(IContentManager.CONTENT_STATUS_FILTER_KEY, false, Content.STATUS_DRAFT, false);
EntitySearchFilter[] filters2 = {creationOrder, typeFilter, statusFilter};
contents = this._contentManager.loadWorkContentsId(filters2, groupCodes);
String[] order2 = {"ART102", "ART187", "ART179", "ART1"};
assertEquals(order2.length, contents.size());
this.verifyOrder(contents, order2);
EntitySearchFilter onlineFilter = new EntitySearchFilter(IContentManager.CONTENT_ONLINE_FILTER_KEY, false);
EntitySearchFilter[] filters3 = {creationOrder, typeFilter, onlineFilter};
contents = this._contentManager.loadWorkContentsId(filters3, groupCodes);
String[] order3 = {"ART102", "ART187", "ART180", "ART1"};
assertEquals(order3.length, contents.size());
this.verifyOrder(contents, order3);
onlineFilter.setNullOption(true);
contents = this._contentManager.loadWorkContentsId(filters3, groupCodes);
String[] order4 = {"ART179"};
assertEquals(order4.length, contents.size());
this.verifyOrder(contents, order4);
onlineFilter.setNullOption(false);
EntitySearchFilter descrFilter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "scr", true);
EntitySearchFilter[] filters5 = {creationOrder, typeFilter, onlineFilter, descrFilter};
contents = this._contentManager.loadWorkContentsId(filters5, groupCodes);
String[] order5 = {"ART187", "ART180"};
assertEquals(order5.length, contents.size());
this.verifyOrder(contents, order5);
groupCodes.clear();
groupCodes.add(Group.ADMINS_GROUP_NAME);
contents = this._contentManager.loadWorkContentsId(null, groupCodes);
assertNotNull(contents);
assertEquals(25, contents.size());
}
/*
* ATTENTION: invalid test on mysql db because the standard search with 'LIKE' clause is case insensitive
*/
public void testSearchWorkContents_2_a() throws Throwable {
List<String> groupCodes = new ArrayList<String>();
groupCodes.add("customers");
groupCodes.add(Group.FREE_GROUP_NAME);
EntitySearchFilter creationOrder = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
creationOrder.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter descrFilter_1 = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "eScR", true);
EntitySearchFilter[] filters_1 = {creationOrder, descrFilter_1};
List<String> contents = this._contentManager.loadWorkContentsId(filters_1, groupCodes);
assertEquals(0, contents.size());
EntitySearchFilter descrFilter_2 = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "escr", true);
EntitySearchFilter[] filters_2 = {creationOrder, descrFilter_2};
contents = this._contentManager.loadWorkContentsId(filters_2, groupCodes);
String[] order = {"ALL4", "ART187", "ART180", "ART179"};
assertEquals(order.length, contents.size());
this.verifyOrder(contents, order);
}
public void testSearchWorkContents_2_b() throws Throwable {
//forcing case insensitive search
WorkContentSearcherDAO searcherDao = (WorkContentSearcherDAO) this.getApplicationContext().getBean("jacmsWorkContentSearcherDAO");
searcherDao.setForceCaseInsensitiveLikeSearch(true);
List<String> groupCodes = new ArrayList<String>();
groupCodes.add("customers");
groupCodes.add(Group.FREE_GROUP_NAME);
EntitySearchFilter creationOrder = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
creationOrder.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter descrFilter_1 = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "eScR", true);
EntitySearchFilter[] filters_1 = {creationOrder, descrFilter_1};
List<String> contents = this._contentManager.loadWorkContentsId(filters_1, groupCodes);
String[] order = {"ALL4", "ART187", "ART180", "ART179"};
assertEquals(order.length, contents.size());
this.verifyOrder(contents, order);
}
public void testSearchWorkContents_3() throws Throwable {
List<String> groupCodes = new ArrayList<String>();
groupCodes.add(Group.ADMINS_GROUP_NAME);
EntitySearchFilter creationOrder = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
creationOrder.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = { creationOrder };
String[] categories_1 = { "general_cat2" };
List<String> contents = this._contentManager.loadWorkContentsId(categories_1, filters, groupCodes);
String[] order_a = {"ART120", "ART112", "ART111", "EVN193", "ART179"};
assertEquals(order_a.length, contents.size());
this.verifyOrder(contents, order_a);
String[] categories_2 = { "general_cat1", "general_cat2" };
contents = this._contentManager.loadWorkContentsId(categories_2, filters, groupCodes);
String[] order_b = {"ART111", "ART179"};
assertEquals(order_b.length, contents.size());
assertEquals(order_b[0], contents.get(0));
Content newContent = this._contentManager.loadContent("EVN193", false);
newContent.setId(null);
try {
this._contentManager.saveContent(newContent);
contents = this._contentManager.loadWorkContentsId(categories_1, filters, groupCodes);
String[] order_c = {newContent.getId(), "ART120", "ART112", "ART111", "EVN193", "ART179"};
assertEquals(order_c.length, contents.size());
this.verifyOrder(contents, order_c);
ICategoryManager categoryManager = (ICategoryManager) this.getService(SystemConstants.CATEGORY_MANAGER);
newContent.addCategory(categoryManager.getCategory("general_cat1"));
this._contentManager.saveContent(newContent);
contents = this._contentManager.loadWorkContentsId(categories_2, filters, groupCodes);
String[] order_d = {newContent.getId(), "ART111", "ART179"};
assertEquals(order_d.length, contents.size());
this.verifyOrder(contents, order_d);
} catch (Throwable t) {
throw t;
} finally {
this._contentManager.deleteContent(newContent);
assertNull(this._contentManager.loadContent(newContent.getId(), false));
}
}
private void verifyOrder(List<String> contents, String[] order) {
for (int i=0; i<contents.size(); i++) {
assertEquals(order[i], contents.get(i));
}
}
public void testLoadContent() throws Throwable {
Content content = this._contentManager.loadContent("ART111", false);
assertEquals(Content.STATUS_PUBLIC, content.getStatus());
assertEquals("coach", content.getMainGroup());
assertEquals(2, content.getGroups().size());
assertTrue(content.getGroups().contains("customers"));
assertTrue(content.getGroups().contains("helpdesk"));
Map<String, AttributeInterface> attributes = content.getAttributeMap();
assertEquals(7, attributes.size());
TextAttribute title = (TextAttribute) attributes.get("Titolo");
assertEquals("Titolo Contenuto 3 Coach", title.getTextForLang("it"));
assertNull(title.getTextForLang("en"));
MonoListAttribute authors = (MonoListAttribute) attributes.get("Autori");
assertEquals(4, authors.getAttributes().size());
LinkAttribute link = (LinkAttribute) attributes.get("VediAnche");
assertNull(link.getSymbolicLink());
HypertextAttribute hypertext = (HypertextAttribute) attributes.get("CorpoTesto");
assertEquals("<p>Corpo Testo Contenuto 3 Coach</p>", hypertext.getTextForLang("it").trim());
assertNull(hypertext.getTextForLang("en"));
ResourceAttributeInterface image = (ResourceAttributeInterface) attributes.get("Foto");
assertNull(image.getResource());
DateAttribute date = (DateAttribute) attributes.get("Data");
assertEquals("13/12/2006", DateConverter.getFormattedDate(date.getDate(), "dd/MM/yyyy"));
}
public void testGetContentTypes() {
Map<String, SmallContentType> smallContentTypes = _contentManager.getSmallContentTypesMap();
assertEquals(4, smallContentTypes.size());
}
public void testCreateContent() {
Content contentType = _contentManager.createContentType("ART");
assertNotNull(contentType);
}
public void testCreateContentWithViewPage() {
Content content = _contentManager.createContentType("ART");
String viewPage = content.getViewPage();
assertEquals(viewPage, "contentview");
}
public void testCreateContentWithDefaultModel() {
Content content = _contentManager.createContentType("ART");
String defaultModel = content.getDefaultModel();
assertEquals(defaultModel,"1");
}
public void testGetXML() throws Throwable {
Content content = this._contentManager.createContentType("ART");
content.setId("ART1");
content.setTypeCode("Articolo");
content.setTypeDescription("Articolo");
content.setDescription("descrizione");
content.setStatus(Content.STATUS_DRAFT);
content.setMainGroup("free");
Category cat13 = new Category();
cat13.setCode("13");
content.addCategory(cat13);
Category cat19 = new Category();
cat19.setCode("19");
content.addCategory(cat19);
String xml = content.getXML();
assertNotNull(xml);
assertTrue(xml.indexOf("<content id=\"ART1\" typecode=\"Articolo\" typedescr=\"Articolo\">")!= -1);
assertTrue(xml.indexOf("<descr>descrizione</descr>")!= -1);
assertTrue(xml.indexOf("<status>" + Content.STATUS_DRAFT +"</status>")!= -1);
assertTrue(xml.indexOf("<category id=\"13\" />")!= -1);
assertTrue(xml.indexOf("<category id=\"19\" />")!= -1);
}
public void testLoadPublicContents() throws ApsSystemException {
List<String> contents = _contentManager.loadPublicContentsId(null, null, null);
assertEquals(15, contents.size());
}
public void testLoadPublicEvents_1() throws ApsSystemException {
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, null, null);
String[] expectedFreeContentsId = {"EVN194", "EVN193",
"EVN24", "EVN23", "EVN25", "EVN20", "EVN21", "EVN192", "EVN191"};
assertEquals(expectedFreeContentsId.length, contents.size());
for (int i=0; i<expectedFreeContentsId.length; i++) {
assertTrue(contents.contains(expectedFreeContentsId[i]));
}
assertFalse(contents.contains("EVN103"));
List<String> groups = new ArrayList<String>();
groups.add("coach");
contents = _contentManager.loadPublicContentsId("EVN", null, null, groups);
assertEquals(expectedFreeContentsId.length+2, contents.size());
for (int i=0; i<expectedFreeContentsId.length; i++) {
assertTrue(contents.contains(expectedFreeContentsId[i]));
}
assertTrue(contents.contains("EVN103"));
assertTrue(contents.contains("EVN41"));
}
public void testLoadPublicEvents_2() throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add("coach");
groups.add(Group.ADMINS_GROUP_NAME);
Date start = DateConverter.parseDate("1997-06-10", "yyyy-MM-dd");
Date end = DateConverter.parseDate("2020-09-19", "yyyy-MM-dd");
EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, start, end);
EntitySearchFilter filter2 = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "Even", true);
filter2.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filter, filter2};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, groups);
assertEquals(2, contents.size());
assertEquals("EVN193", contents.get(0));
assertEquals("EVN192", contents.get(1));
filter2 = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false);
filter2.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters2 = {filter, filter2};
contents = _contentManager.loadPublicContentsId("EVN", null, filters2, groups);
String[] expectedOrderedContentsId = {"EVN25", "EVN21", "EVN20", "EVN41", "EVN193",
"EVN192", "EVN103", "EVN23", "EVN24"};
assertEquals(expectedOrderedContentsId.length, contents.size());
for (int i=0; i<expectedOrderedContentsId.length; i++) {
assertEquals(expectedOrderedContentsId[i], contents.get(i));
}
contents = _contentManager.loadPublicContentsId("EVN", null, filters2, null);
String[] expectedFreeOrderedContentsId = {"EVN25", "EVN21", "EVN20", "EVN193",
"EVN192", "EVN23", "EVN24"};
assertEquals(expectedFreeOrderedContentsId.length, contents.size());
for (int i=0; i<expectedFreeOrderedContentsId.length; i++) {
assertEquals(expectedFreeOrderedContentsId[i], contents.get(i));
}
}
public void testLoadPublicEvents_2_1() throws ApsSystemException {
//forcing case insensitive search
PublicContentSearcherDAO searcherDao = (PublicContentSearcherDAO) this.getApplicationContext().getBean("jacmsPublicContentSearcherDAO");
searcherDao.setForceCaseInsensitiveLikeSearch(true);
List<String> groups = new ArrayList<String>();
groups.add("coach");
groups.add(Group.ADMINS_GROUP_NAME);
Date start = DateConverter.parseDate("1997-06-10", "yyyy-MM-dd");
Date end = DateConverter.parseDate("2020-09-19", "yyyy-MM-dd");
EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, start, end);
EntitySearchFilter filter2 = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "even", true);
filter2.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filter, filter2};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, groups);
assertEquals(2, contents.size());
assertEquals("EVN193", contents.get(0));
assertEquals("EVN192", contents.get(1));
}
public void testLoadPublicEvents_2_2() throws ApsSystemException {
//forcing case sensitive search
PublicContentSearcherDAO searcherDao = (PublicContentSearcherDAO) this.getApplicationContext().getBean("jacmsPublicContentSearcherDAO");
searcherDao.setForceCaseSensitiveLikeSearch(true);
List<String> groups = new ArrayList<String>();
groups.add("coach");
groups.add(Group.ADMINS_GROUP_NAME);
Date start = DateConverter.parseDate("1997-06-10", "yyyy-MM-dd");
Date end = DateConverter.parseDate("2020-09-19", "yyyy-MM-dd");
EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, start, end);
EntitySearchFilter filter_x1 = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "even", true);
filter_x1.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters_1 = {filter, filter_x1};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters_1, groups);
assertEquals(0, contents.size());
EntitySearchFilter filter_x2 = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "Even", true);
filter_x2.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters_2 = {filter, filter_x2};
contents = _contentManager.loadPublicContentsId("EVN", null, filters_2, groups);
assertEquals(2, contents.size());
assertEquals("EVN193", contents.get(0));
assertEquals("EVN192", contents.get(1));
}
public void testLoadPublicEvents_3() throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
Date value = DateConverter.parseDate("1999-04-14", "yyyy-MM-dd");
EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, value, false);
EntitySearchFilter[] filters = {filter};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, groups);
assertEquals(1, contents.size());
assertEquals("EVN192", contents.get(0));
}
public void testLoadPublicEvents_4() throws ApsSystemException {
this.testLoadPublicEvents_4(true);
this.testLoadPublicEvents_4(false);
}
protected void testLoadPublicEvents_4(boolean useRoleFilter) throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
EntitySearchFilter filter1 = (useRoleFilter)
? EntitySearchFilter.createRoleFilter(JacmsSystemConstants.ATTRIBUTE_ROLE_TITLE, "Ce", "TF")
: new EntitySearchFilter("Titolo", true, "Ce", "TF");
filter1.setLangCode("it");
filter1.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters1 = {filter1};
List<String> contents = this._contentManager.loadPublicContentsId("EVN", null, filters1, groups);
String[] expectedOrderedContentsId = {"EVN25", "EVN41", "EVN20", "EVN21", "EVN23"};
assertEquals(expectedOrderedContentsId.length, contents.size());
for (int i=0; i<expectedOrderedContentsId.length; i++) {
assertEquals(expectedOrderedContentsId[i], contents.get(i));
}
filter1 = new EntitySearchFilter("Titolo", true, null, "TF");
filter1.setLangCode("it");
filter1.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters2 = {filter1};
contents = this._contentManager.loadPublicContentsId("EVN", null, filters2, groups);
String[] expectedOrderedContentsId2 = {"EVN25", "EVN41", "EVN20", "EVN21", "EVN23", "EVN24"};
assertEquals(expectedOrderedContentsId2.length, contents.size());
for (int i=0; i<expectedOrderedContentsId2.length; i++) {
assertEquals(expectedOrderedContentsId2[i], contents.get(i));
}
}
public void testLoadPublicEvents_5() throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
List<Date> allowedDates = new ArrayList<Date>();
allowedDates.add(DateConverter.parseDate("1999-04-14", "yyyy-MM-dd"));//EVN192
allowedDates.add(DateConverter.parseDate("2008-02-13", "yyyy-MM-dd"));//EVN23
EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, allowedDates, false);
filter.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filter};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, groups);
String[] expectedOrderedContentsId2 = {"EVN23", "EVN192"};
assertEquals(expectedOrderedContentsId2.length, contents.size());
for (int i=0; i<expectedOrderedContentsId2.length; i++) {
assertEquals(expectedOrderedContentsId2[i], contents.get(i));
}
}
public void testLoadPublicEvents_6() throws ApsSystemException {
this.testLoadPublicEvents_6(true);
this.testLoadPublicEvents_6(false);
}
protected void testLoadPublicEvents_6(boolean useRoleFilter) throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
List<String> allowedDescription = new ArrayList<String>();
allowedDescription.add("Mostra");//EVN21, EVN20
allowedDescription.add("Collezione");//EVN23
EntitySearchFilter filter = (useRoleFilter)
? EntitySearchFilter.createRoleFilter(JacmsSystemConstants.ATTRIBUTE_ROLE_TITLE, allowedDescription, true)
: new EntitySearchFilter("Titolo", true, allowedDescription, true);
filter.setLangCode("it");
filter.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filter};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, groups);
String[] expectedOrderedContentsId2 = {"EVN20", "EVN21", "EVN23"};
assertEquals(expectedOrderedContentsId2.length, contents.size());
for (int i=0; i<expectedOrderedContentsId2.length; i++) {
assertEquals(expectedOrderedContentsId2[i], contents.get(i));
}
}
public void testLoadPublicEvents_7() throws ApsSystemException {
this.testLoadPublicEvents_7(true);
this.testLoadPublicEvents_7(false);
}
protected void testLoadPublicEvents_7(boolean useRoleFilter) throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
List<String> allowedDescription = new ArrayList<String>();
allowedDescription.add("Mostra Zootecnica");//EVN20
allowedDescription.add("Title B - Event 2");//EVN192
EntitySearchFilter filter1 = (useRoleFilter)
? EntitySearchFilter.createRoleFilter(JacmsSystemConstants.ATTRIBUTE_ROLE_TITLE, allowedDescription, false)
: new EntitySearchFilter("Titolo", true, allowedDescription, false);
filter1.setLangCode("en");
EntitySearchFilter filter2 = new EntitySearchFilter("DataInizio", true);
filter2.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters = {filter1, filter2};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, groups);
String[] expectedOrderedContentsId2 = {"EVN192", "EVN20"};
assertEquals(expectedOrderedContentsId2.length, contents.size());
for (int i=0; i<expectedOrderedContentsId2.length; i++) {
assertEquals(expectedOrderedContentsId2[i], contents.get(i));
}
}
public void testLoadPublicEvents_8() throws ApsSystemException {
this.testLoadPublicEvents_8(true);
this.testLoadPublicEvents_8(false);
}
protected void testLoadPublicEvents_8(boolean useRoleFilter) throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
List<String> allowedDescription = new ArrayList<String>();
allowedDescription.add("Castello");//EVN24
allowedDescription.add("dei bambini");//EVN24
EntitySearchFilter filter = (useRoleFilter)
? EntitySearchFilter.createRoleFilter(JacmsSystemConstants.ATTRIBUTE_ROLE_TITLE, allowedDescription, true)
: new EntitySearchFilter("Titolo", true, allowedDescription, true);
filter.setLangCode("it");
filter.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filter};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, groups);
String[] expectedOrderedContentsId2 = {"EVN24"};
assertEquals(expectedOrderedContentsId2.length, contents.size());
for (int i=0; i<expectedOrderedContentsId2.length; i++) {
assertEquals(expectedOrderedContentsId2[i], contents.get(i));
}
}
public void testLoadPublicEvents_9_a() throws ApsSystemException {
this.testLoadPublicEvents_9_a(true);
this.testLoadPublicEvents_9_a(false);
}
/*
* ATTENTION: invalid test on mysql db because the standard search with 'LIKE' clause is case insensitive
*/
protected void testLoadPublicEvents_9_a(boolean useRoleFilter) throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
EntitySearchFilter filter = (useRoleFilter)
? EntitySearchFilter.createRoleFilter(JacmsSystemConstants.ATTRIBUTE_ROLE_TITLE, "le", true)
: new EntitySearchFilter("Titolo", true, "le", true);
filter.setLangCode("it");
filter.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filter};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, groups);
String[] expectedOrderedContentsId2 = {"EVN21", "EVN23"};//not EVN25
assertEquals(expectedOrderedContentsId2.length, contents.size());
for (int i=0; i<expectedOrderedContentsId2.length; i++) {
assertEquals(expectedOrderedContentsId2[i], contents.get(i));
}
}
public void testLoadPublicEvents_9_b() throws ApsSystemException {
this.testLoadPublicEvents_9_b(true);
this.testLoadPublicEvents_9_b(false);
}
protected void testLoadPublicEvents_9_b(boolean useRoleFilter) throws ApsSystemException {
//forcing case insensitive search
PublicContentSearcherDAO searcherDao = (PublicContentSearcherDAO) this.getApplicationContext().getBean("jacmsPublicContentSearcherDAO");
searcherDao.setForceCaseInsensitiveLikeSearch(true);
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
EntitySearchFilter filter = (useRoleFilter)
? EntitySearchFilter.createRoleFilter(JacmsSystemConstants.ATTRIBUTE_ROLE_TITLE, "le", true)
: new EntitySearchFilter("Titolo", true, "le", true);
filter.setLangCode("it");
filter.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filter};
List<String> contents = this._contentManager.loadPublicContentsId("EVN", null, filters, groups);
String[] expectedOrderedContentsId2 = {"EVN25", "EVN21", "EVN23"};
assertEquals(expectedOrderedContentsId2.length, contents.size());
for (int i=0; i<expectedOrderedContentsId2.length; i++) {
assertEquals(expectedOrderedContentsId2[i], contents.get(i));
}
}
public void testLoadPublicEvents_9_c() throws ApsSystemException {
this.testLoadPublicEvents_9_c(true);
this.testLoadPublicEvents_9_c(false);
}
protected void testLoadPublicEvents_9_c(boolean useRoleFilter) throws ApsSystemException {
//forcing case sensitive search
PublicContentSearcherDAO searcherDao = (PublicContentSearcherDAO) this.getApplicationContext().getBean("jacmsPublicContentSearcherDAO");
searcherDao.setForceCaseSensitiveLikeSearch(true);
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
EntitySearchFilter filter = (useRoleFilter)
? EntitySearchFilter.createRoleFilter(JacmsSystemConstants.ATTRIBUTE_ROLE_TITLE, "LE", true)
: new EntitySearchFilter("Titolo", true, "LE", true);
filter.setLangCode("it");
filter.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filter};
List<String> contents = this._contentManager.loadPublicContentsId("EVN", null, filters, groups);
String[] expectedOrderedContentsId2 = {"EVN25"};
assertEquals(expectedOrderedContentsId2.length, contents.size());
for (int i=0; i<expectedOrderedContentsId2.length; i++) {
assertEquals(expectedOrderedContentsId2[i], contents.get(i));
}
}
/*
* ATTENTION: invalid test on mysql db because the standard search with 'LIKE' clause is case insensitive
*/
public void testLoadWorkEvents_1_a() throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
List<String> allowedDescription = new ArrayList<String>();
allowedDescription.add("descrizione");//"ART179" "ART180" "ART187"
allowedDescription.add("on line");//"ART179"
allowedDescription.add("customers");//"ART102" "RAH101" ...but not included because the standard search is case sensitive
EntitySearchFilter filter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, allowedDescription, true);
EntitySearchFilter filter2 = new EntitySearchFilter(IContentManager.ENTITY_ID_FILTER_KEY, false);
filter2.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters = {filter, filter2};
List<String> contents = _contentManager.loadWorkContentsId(filters, groups);
String[] expectedOrderedContentsId2 = {"ART179", "ART180", "ART187"};
assertEquals(expectedOrderedContentsId2.length, contents.size());
for (int i=0; i<expectedOrderedContentsId2.length; i++) {
assertEquals(expectedOrderedContentsId2[i], contents.get(i));
}
}
public void testLoadWorkEvents_1_b() throws ApsSystemException {
//forcing case insensitive search
WorkContentSearcherDAO searcherDao = (WorkContentSearcherDAO) this.getApplicationContext().getBean("jacmsWorkContentSearcherDAO");
searcherDao.setForceCaseInsensitiveLikeSearch(true);
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
List<String> allowedDescription = new ArrayList<String>();
allowedDescription.add("descrizione");//"ART179" "ART180" "ART187"
allowedDescription.add("on line");//"ART179"
allowedDescription.add("customers");//"ART102" "RAH101"
EntitySearchFilter filter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, allowedDescription, true);
EntitySearchFilter filter2 = new EntitySearchFilter(IContentManager.ENTITY_ID_FILTER_KEY, false);
filter2.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters = {filter, filter2};
List<String> contents = _contentManager.loadWorkContentsId(filters, groups);
String[] expectedOrderedContentsId2 = {"ART102", "ART179", "ART180", "ART187", "RAH101"};
assertEquals(expectedOrderedContentsId2.length, contents.size());
for (int i=0; i<expectedOrderedContentsId2.length; i++) {
assertEquals(expectedOrderedContentsId2[i], contents.get(i));
}
}
public void testLoadOrderedPublicEvents_1() throws ApsSystemException {
EntitySearchFilter filterForDescr = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false);
filterForDescr.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters = {filterForDescr};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, null);
String[] expectedFreeContentsId = {"EVN24", "EVN23", "EVN191",
"EVN192", "EVN193", "EVN194", "EVN20", "EVN21", "EVN25"};
assertEquals(expectedFreeContentsId.length, contents.size());
for (int i=0; i<expectedFreeContentsId.length; i++) {
assertEquals(expectedFreeContentsId[i], contents.get(i));
}
filterForDescr.setOrder(EntitySearchFilter.DESC_ORDER);
contents = _contentManager.loadPublicContentsId("EVN", null, filters, null);
assertEquals(expectedFreeContentsId.length, contents.size());
for (int i=0; i<expectedFreeContentsId.length; i++) {
assertEquals(expectedFreeContentsId[expectedFreeContentsId.length - i - 1], contents.get(i));
}
}
public void testLoadOrderedPublicEvents_2() throws ApsSystemException {
EntitySearchFilter filterForCreation = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
filterForCreation.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters = {filterForCreation};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, null);
String[] expectedFreeOrderedContentsId = {"EVN191", "EVN192", "EVN193", "EVN194",
"EVN20", "EVN23", "EVN24", "EVN25", "EVN21"};
assertEquals(expectedFreeOrderedContentsId.length, contents.size());
for (int i=0; i<expectedFreeOrderedContentsId.length; i++) {
assertEquals(expectedFreeOrderedContentsId[i], contents.get(i));
}
filterForCreation.setOrder(EntitySearchFilter.DESC_ORDER);
contents = _contentManager.loadPublicContentsId("EVN", null, filters, null);
assertEquals(expectedFreeOrderedContentsId.length, contents.size());
for (int i=0; i<expectedFreeOrderedContentsId.length; i++) {
assertEquals(expectedFreeOrderedContentsId[expectedFreeOrderedContentsId.length - i - 1], contents.get(i));
}
}
public void testLoadOrderedPublicEvents_3() throws ApsSystemException {
EntitySearchFilter filterForCreation = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
filterForCreation.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter filterForDate = new EntitySearchFilter("DataInizio", true);
filterForDate.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filterForCreation, filterForDate};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, null);
String[] expectedFreeOrderedContentsId = {"EVN21", "EVN25", "EVN24", "EVN23",
"EVN20", "EVN194", "EVN193", "EVN192", "EVN191"};
assertEquals(expectedFreeOrderedContentsId.length, contents.size());
for (int i=0; i<expectedFreeOrderedContentsId.length; i++) {
assertEquals(expectedFreeOrderedContentsId[i], contents.get(i));
}
EntitySearchFilter[] filters2 = {filterForDate, filterForCreation};
List<String> contents2 = _contentManager.loadPublicContentsId("EVN", null, filters2, null);
String[] expectedFreeOrderedContentsId2 = {"EVN194", "EVN193", "EVN24",
"EVN23", "EVN25", "EVN20", "EVN21", "EVN192", "EVN191"};
assertEquals(expectedFreeOrderedContentsId2.length, contents2.size());
for (int i=0; i<expectedFreeOrderedContentsId2.length; i++) {
assertEquals(expectedFreeOrderedContentsId2[i], contents2.get(i));
}
}
public void testLoadOrderedPublicEvents_4() throws Throwable {
Content masterContent = this._contentManager.loadContent("EVN193", true);
masterContent.setId(null);
DateAttribute dateAttribute = (DateAttribute) masterContent.getAttribute("DataInizio");
dateAttribute.setDate(DateConverter.parseDate("17/06/2019", "dd/MM/yyyy"));
try {
this._contentManager.saveContent(masterContent);
this._contentManager.insertOnLineContent(masterContent);
this.waitNotifyingThread();
EntitySearchFilter filterForDate = new EntitySearchFilter("DataInizio", true);
filterForDate.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filterForDate};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, null);
String[] expectedFreeOrderedContentsId = {"EVN194", masterContent.getId(), "EVN193", "EVN24",
"EVN23", "EVN25", "EVN20", "EVN21", "EVN192", "EVN191"};
assertEquals(expectedFreeOrderedContentsId.length, contents.size());
for (int i=0; i<expectedFreeOrderedContentsId.length; i++) {
assertEquals(expectedFreeOrderedContentsId[i], contents.get(i));
}
} catch (Throwable t) {
throw t;
} finally {
if (null != masterContent.getId() && !"EVN193".equals(masterContent.getId())) {
this._contentManager.removeOnLineContent(masterContent);
this._contentManager.deleteContent(masterContent);
}
}
}
public void testLoadFutureEvents_1() throws ApsSystemException {
Date today = DateConverter.parseDate("2005-01-01", "yyyy-MM-dd");
EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, today, null);
filter.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters = {filter};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, null);
String[] expectedOrderedContentsId = {"EVN21", "EVN20", "EVN25", "EVN23",
"EVN24", "EVN193", "EVN194"};
assertEquals(expectedOrderedContentsId.length, contents.size());
for (int i=0; i<expectedOrderedContentsId.length; i++) {
assertEquals(expectedOrderedContentsId[i], contents.get(i));
}
}
public void testLoadFutureEvents_2() throws ApsSystemException {
Date today = DateConverter.parseDate("2005-01-01", "yyyy-MM-dd");
EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, today, null);
filter.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filter};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, null);
String[] expectedOrderedContentsId = {"EVN194", "EVN193", "EVN24",
"EVN23", "EVN25", "EVN20", "EVN21"};
assertEquals(expectedOrderedContentsId.length, contents.size());
for (int i=0; i<expectedOrderedContentsId.length; i++) {
assertEquals(expectedOrderedContentsId[i], contents.get(i));
}
}
public void testLoadFutureEvents_3() throws ApsSystemException {
Date today = DateConverter.parseDate("2005-01-01", "yyyy-MM-dd");
List<String> groups = new ArrayList<String>();
groups.add("coach");
EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, today, null);
filter.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filter};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, groups);
String[] expectedOrderedContentsId = {"EVN194", "EVN193", "EVN24",
"EVN23", "EVN41", "EVN25", "EVN20", "EVN21"};
assertEquals(expectedOrderedContentsId.length, contents.size());
for (int i=0; i<expectedOrderedContentsId.length; i++) {
assertEquals(expectedOrderedContentsId[i], contents.get(i));
}
}
public void testLoadPastEvents_1() throws ApsSystemException {
Date today = DateConverter.parseDate("2008-10-01", "yyyy-MM-dd");
EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, null, today);
filter.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters = {filter};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, null);
String[] expectedOrderedContentsId = {"EVN191", "EVN192",
"EVN21", "EVN20", "EVN25", "EVN23"};
assertEquals(expectedOrderedContentsId.length, contents.size());
for (int i=0; i<expectedOrderedContentsId.length; i++) {
assertEquals(expectedOrderedContentsId[i], contents.get(i));
}
}
public void testLoadPastEvents_2() throws ApsSystemException {
Date today = DateConverter.parseDate("2008-10-01", "yyyy-MM-dd");
EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, null, today);
filter.setOrder(EntitySearchFilter.DESC_ORDER);
EntitySearchFilter[] filters = {filter};
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, null);
String[] expectedOrderedContentsId = {"EVN23", "EVN25",
"EVN20", "EVN21", "EVN192", "EVN191"};
assertEquals(expectedOrderedContentsId.length, contents.size());
for (int i=0; i<expectedOrderedContentsId.length; i++) {
assertEquals(expectedOrderedContentsId[i], contents.get(i));
}
}
public void testLoadPastEvents_3() throws ApsSystemException {
Date today = DateConverter.parseDate("2008-02-13", "yyyy-MM-dd");
EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, null, today);
filter.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters = {filter};
List<String> groups = new ArrayList<String>();
groups.add("coach");
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, filters, groups);
String[] expectedOrderedContentsId = {"EVN191", "EVN192", "EVN103",
"EVN21", "EVN20", "EVN25", "EVN41", "EVN23"};
assertEquals(expectedOrderedContentsId.length, contents.size());
for (int i=0; i<expectedOrderedContentsId.length; i++) {
assertEquals(expectedOrderedContentsId[i], contents.get(i));
}
}
public void testLoadWorkContentsForCategory_1() throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
String[] categories1 = {"general_cat1"};
List<String> contents = this._contentManager.loadWorkContentsId(categories1, null, groups);
assertEquals(5, contents.size());
assertTrue(contents.contains("ART179"));
assertTrue(contents.contains("ART180"));
assertTrue(contents.contains("ART102"));
assertTrue(contents.contains("ART111"));
assertTrue(contents.contains("EVN192"));
String[] categories2 = {"general_cat1", "general_cat2"};
contents = this._contentManager.loadWorkContentsId(categories2, null, groups);
assertEquals(2, contents.size());
assertTrue(contents.contains("ART111"));
assertTrue(contents.contains("ART179"));
}
public void testLoadWorkContentsForCategory_2() throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
String[] categories1 = {"general_cat1"};
EntitySearchFilter filter1 = new EntitySearchFilter(IContentManager.ENTITY_TYPE_CODE_FILTER_KEY, false, "ART", false);
EntitySearchFilter[] filters = {filter1};
List<String> contents = this._contentManager.loadWorkContentsId(categories1, filters, groups);
assertEquals(4, contents.size());
assertTrue(contents.contains("ART102"));
assertTrue(contents.contains("ART111"));
assertTrue(contents.contains("ART180"));
assertTrue(contents.contains("ART179"));
String[] categories2 = {"general_cat2"};
contents = this._contentManager.loadWorkContentsId(categories2, filters, groups);
assertEquals(4, contents.size());
assertTrue(contents.contains("ART111"));
assertTrue(contents.contains("ART112"));
assertTrue(contents.contains("ART120"));
assertTrue(contents.contains("ART179"));
String[] categories12 = {"general_cat1", "general_cat2"};
contents = this._contentManager.loadWorkContentsId(categories12, false, filters, groups);
assertEquals(2, contents.size());
assertTrue(contents.contains("ART111"));
assertTrue(contents.contains("ART179"));
contents = this._contentManager.loadWorkContentsId(categories12, true, filters, groups);
assertEquals(6, contents.size());
assertTrue(contents.contains("ART102"));
assertTrue(contents.contains("ART111"));
assertTrue(contents.contains("ART112"));
assertTrue(contents.contains("ART120"));
assertTrue(contents.contains("ART180"));
assertTrue(contents.contains("ART179"));
String[] categories3 = {"general_cat3"};
contents = this._contentManager.loadWorkContentsId(categories3, filters, groups);
assertEquals(3, contents.size());
assertTrue(contents.contains("ART120"));
assertTrue(contents.contains("ART121"));
assertTrue(contents.contains("ART122"));
String[] categories23 = {"general_cat2", "general_cat3"};
contents = this._contentManager.loadWorkContentsId(categories23, false, filters, groups);
assertEquals(1, contents.size());
assertTrue(contents.contains("ART120"));
contents = this._contentManager.loadWorkContentsId(categories23, true, filters, groups);
assertEquals(6, contents.size());
assertTrue(contents.contains("ART111"));
assertTrue(contents.contains("ART112"));
assertTrue(contents.contains("ART120"));
assertTrue(contents.contains("ART179"));
assertTrue(contents.contains("ART121"));
assertTrue(contents.contains("ART122"));
String[] categories123 = {"general_cat1", "general_cat2", "general_cat3"};
contents = this._contentManager.loadWorkContentsId(categories123, false, filters, groups);
assertEquals(0, contents.size());
contents = this._contentManager.loadWorkContentsId(categories123, true, filters, groups);
assertEquals(8, contents.size());
assertTrue(contents.contains("ART102"));
assertTrue(contents.contains("ART111"));
assertTrue(contents.contains("ART112"));
assertTrue(contents.contains("ART120"));
assertTrue(contents.contains("ART121"));
assertTrue(contents.contains("ART122"));
assertTrue(contents.contains("ART180"));
assertTrue(contents.contains("ART179"));
}
public void testLoadPublicContentsForCategory() throws ApsSystemException {
String[] categories1 = {"evento"};
List<String> contents = _contentManager.loadPublicContentsId(categories1, null, null);
assertEquals(2, contents.size());
assertTrue(contents.contains("EVN192"));
assertTrue(contents.contains("EVN193"));
String[] categories2 = {"cat1"};
contents = _contentManager.loadPublicContentsId(categories2, null, null);
assertEquals(1, contents.size());
assertTrue(contents.contains("ART180"));
}
public void testLoadPublicEventsForCategory_1() throws ApsSystemException {
String[] categories = {"evento"};
List<String> contents = _contentManager.loadPublicContentsId("EVN", categories, null, null);
assertEquals(2, contents.size());
assertTrue(contents.contains("EVN192"));
assertTrue(contents.contains("EVN193"));
Date today = DateConverter.parseDate("2005-02-13", "yyyy-MM-dd");
EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, null, today);
filter.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters = {filter};
contents = _contentManager.loadPublicContentsId("EVN", categories, filters, null);
assertEquals(1, contents.size());
assertTrue(contents.contains("EVN192"));
}
public void testLoadPublicEventsForCategory_2() throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
String[] categories1 = {"general_cat1"};
EntitySearchFilter filter1 = new EntitySearchFilter(IContentManager.ENTITY_TYPE_CODE_FILTER_KEY, false, "ART", false);
EntitySearchFilter[] filters = {filter1};
List<String> contents = this._contentManager.loadPublicContentsId(categories1, filters, groups);
assertEquals(2, contents.size());
assertTrue(contents.contains("ART102"));
assertTrue(contents.contains("ART111"));
String[] categories2 = {"general_cat2"};
contents = this._contentManager.loadPublicContentsId(categories2, filters, groups);
assertEquals(2, contents.size());
assertTrue(contents.contains("ART111"));
assertTrue(contents.contains("ART120"));
String[] categories12 = {"general_cat1", "general_cat2"};
contents = this._contentManager.loadPublicContentsId(categories12, false, filters, groups);
assertEquals(1, contents.size());
assertTrue(contents.contains("ART111"));
contents = this._contentManager.loadPublicContentsId(categories12, true, filters, groups);
assertEquals(3, contents.size());
assertTrue(contents.contains("ART102"));
assertTrue(contents.contains("ART111"));
assertTrue(contents.contains("ART120"));
String[] categories3 = {"general_cat3"};
contents = this._contentManager.loadPublicContentsId(categories3, filters, groups);
assertEquals(2, contents.size());
assertTrue(contents.contains("ART120"));
assertTrue(contents.contains("ART122"));
String[] categories23 = {"general_cat2", "general_cat3"};
contents = this._contentManager.loadPublicContentsId(categories23, false, filters, groups);
assertEquals(1, contents.size());
assertTrue(contents.contains("ART120"));
contents = this._contentManager.loadPublicContentsId(categories23, true, filters, groups);
assertEquals(3, contents.size());
assertTrue(contents.contains("ART111"));
assertTrue(contents.contains("ART120"));
assertTrue(contents.contains("ART122"));
String[] categories123 = {"general_cat1", "general_cat2", "general_cat3"};
contents = this._contentManager.loadPublicContentsId(categories123, false, filters, groups);
assertEquals(0, contents.size());
contents = this._contentManager.loadPublicContentsId(categories123, true, filters, groups);
assertEquals(4, contents.size());
assertTrue(contents.contains("ART102"));
assertTrue(contents.contains("ART111"));
assertTrue(contents.contains("ART120"));
assertTrue(contents.contains("ART122"));
}
public void testLoadEventsForGroup() throws ApsSystemException {
List<String> contents = _contentManager.loadPublicContentsId("EVN", null, null, null);
String[] expectedFreeContentsId = {"EVN191", "EVN192", "EVN193", "EVN194",
"EVN20", "EVN23", "EVN21", "EVN24", "EVN25"};
assertEquals(expectedFreeContentsId.length, contents.size());
for (int i=0; i<expectedFreeContentsId.length; i++) {
assertTrue(contents.contains(expectedFreeContentsId[i]));
}
Collection<String> allowedGroup = new HashSet<String>();
allowedGroup.add(Group.FREE_GROUP_NAME);
allowedGroup.add("customers");
contents = _contentManager.loadPublicContentsId("EVN", null, null, allowedGroup);
assertEquals(expectedFreeContentsId.length, contents.size());
for (int i=0; i<expectedFreeContentsId.length; i++) {
assertTrue(contents.contains(expectedFreeContentsId[i]));
}
assertFalse(contents.contains("EVN103"));//evento coach
allowedGroup.remove("customers");
allowedGroup.remove(Group.FREE_GROUP_NAME);
allowedGroup.add(Group.ADMINS_GROUP_NAME);
contents = _contentManager.loadPublicContentsId("EVN", null, null, allowedGroup);
assertEquals(11, contents.size());
for (int i=0; i<expectedFreeContentsId.length; i++) {
assertTrue(contents.contains(expectedFreeContentsId[i]));
}
assertTrue(contents.contains("EVN103"));
assertTrue(contents.contains("EVN41"));
}
public void testLoadWorkContentsByAttribute_1() throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
EntitySearchFilter filter0 = new EntitySearchFilter(IContentManager.ENTITY_ID_FILTER_KEY, false);
filter0.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter filter1 = new EntitySearchFilter(IContentManager.ENTITY_TYPE_CODE_FILTER_KEY, false, "ART", true);
EntitySearchFilter filter2 = new EntitySearchFilter("Numero", true);
filter2.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters = {filter0, filter1, filter2};
String[] expectedContentsId = {"ART120", "ART121"};
List<String> contents = this._contentManager.loadWorkContentsId(filters, groups);
assertEquals(expectedContentsId.length, contents.size());
for (int i=0; i<expectedContentsId.length; i++) {
assertEquals(expectedContentsId[i], contents.get(i));
}
filter2.setNullOption(true);
EntitySearchFilter[] filters2 = {filter0, filter1, filter2};
String[] expectedContentsId2 = {"ART1", "ART102", "ART104",
"ART111", "ART112", "ART122", "ART179", "ART180", "ART187"};
contents = this._contentManager.loadWorkContentsId(filters2, groups);
assertEquals(expectedContentsId2.length, contents.size());
for (int i=0; i<expectedContentsId2.length; i++) {
assertEquals(expectedContentsId2[i], contents.get(i));
}
}
public void testLoadWorkContentsByAttribute_2() throws ApsSystemException {
List<String> groups = new ArrayList<String>();
groups.add(Group.ADMINS_GROUP_NAME);
EntitySearchFilter filter0 = new EntitySearchFilter(IContentManager.ENTITY_ID_FILTER_KEY, false);
filter0.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter filter1 = new EntitySearchFilter(IContentManager.ENTITY_TYPE_CODE_FILTER_KEY, false, "EVN", true);
EntitySearchFilter filter2 = new EntitySearchFilter("Titolo", true);
filter2.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters = {filter0, filter1, filter2};
String[] expectedContentsId = {"EVN103", "EVN191", "EVN192",
"EVN193", "EVN194", "EVN20", "EVN21", "EVN23", "EVN24", "EVN25", "EVN41"};
List<String> contents = this._contentManager.loadWorkContentsId(filters, groups);
assertEquals(expectedContentsId.length, contents.size());
for (int i=0; i<expectedContentsId.length; i++) {
assertEquals(expectedContentsId[i], contents.get(i));
}
filter2.setNullOption(true);
EntitySearchFilter[] filters2 = {filter0, filter1, filter2};
contents = this._contentManager.loadWorkContentsId(filters2, groups);
assertEquals(0, contents.size());
filter2.setLangCode("it");
EntitySearchFilter[] filters3 = {filter0, filter1, filter2};
contents = this._contentManager.loadWorkContentsId(filters3, groups);
assertEquals(0, contents.size());
}
public void testLoadWorkContentsByAttribute_3() throws Throwable {
List<String> groups = new ArrayList<String>();
String[] masterContentIds = {"EVN193", "EVN191", "EVN192", "EVN194", "EVN23", "EVN24"};
String[] newContentIds = null;
try {
newContentIds = this.addDraftContentsForTest(masterContentIds, false);
for (int i = 0; i < newContentIds.length; i++) {
Content content = this._contentManager.loadContent(newContentIds[i], false);
TextAttribute titleAttribute = (TextAttribute) content.getAttribute("Titolo");
if (i%2 == 1 && i<4) {
titleAttribute.setText(null, "en");
}
titleAttribute.setText(null, "it");
this._contentManager.saveContent(content);
}
groups.add(Group.ADMINS_GROUP_NAME);
EntitySearchFilter filter0 = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false);
filter0.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter filter1 = new EntitySearchFilter(IContentManager.ENTITY_TYPE_CODE_FILTER_KEY, false, "EVN", false);
EntitySearchFilter filter2 = new EntitySearchFilter(IContentManager.ENTITY_ID_FILTER_KEY, false);
filter2.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters = {filter0, filter1, filter2};
String[] expectedContentsId = {"EVN191", "EVN192", "EVN193", "EVN194",
"EVN103", "EVN20", "EVN23", "EVN24", "EVN25", "EVN41", "EVN21",
newContentIds[0], newContentIds[1], newContentIds[2], newContentIds[3], newContentIds[4], newContentIds[5]};
List<String> contents = this._contentManager.loadWorkContentsId(filters, groups);
assertEquals(expectedContentsId.length, contents.size());
for (int i=0; i<expectedContentsId.length; i++) {
assertEquals(expectedContentsId[i], contents.get(i));
}
EntitySearchFilter filter3 = new EntitySearchFilter("Titolo", true);
filter3.setLangCode("en");
filter3.setOrder(EntitySearchFilter.ASC_ORDER);
EntitySearchFilter[] filters1 = {filter0, filter1, filter2, filter3};
String[] expectedContentsId1 = {"EVN191", "EVN192", "EVN193", "EVN194",
"EVN103", "EVN20", "EVN23", "EVN24", "EVN25", "EVN41", "EVN21",
newContentIds[0], newContentIds[2]};
contents = this._contentManager.loadWorkContentsId(filters1, groups);
assertEquals(expectedContentsId1.length, contents.size());
for (int i=0; i<expectedContentsId1.length; i++) {
assertEquals(expectedContentsId1[i], contents.get(i));
}
filter3.setNullOption(true);
filter3.setLangCode("it");
EntitySearchFilter[] filters2 = {filter0, filter1, filter2, filter3};
String[] expectedContentsId2 = {newContentIds[0], newContentIds[1],
newContentIds[2], newContentIds[3], newContentIds[4], newContentIds[5]};
contents = this._contentManager.loadWorkContentsId(filters2, groups);
assertEquals(expectedContentsId2.length, contents.size());
for (int i=0; i<expectedContentsId2.length; i++) {
assertEquals(expectedContentsId2[i], contents.get(i));
}
filter3.setNullOption(true);
filter3.setLangCode("en");
EntitySearchFilter[] filters3 = {filter0, filter1, filter2, filter3};
String[] expectedContentsId3 = {newContentIds[1], newContentIds[3], newContentIds[4], newContentIds[5]};
contents = this._contentManager.loadWorkContentsId(filters3, groups);
assertEquals(expectedContentsId3.length, contents.size());
for (int i=0; i<expectedContentsId3.length; i++) {
assertEquals(expectedContentsId3[i], contents.get(i));
}
filter2.setNullOption(true);
EntitySearchFilter[] filters4 = {filter0, filter1, filter2};
contents = this._contentManager.loadWorkContentsId(filters4, groups);
assertEquals(0, contents.size());
} catch (Throwable t) {
throw t;
} finally {
this.deleteContents(newContentIds);
}
}
protected String[] addDraftContentsForTest(String[] masterContentIds, boolean publish) throws Throwable {
String[] newContentIds = new String[masterContentIds.length];
for (int i=0; i<masterContentIds.length; i++) {
Content content = this._contentManager.loadContent(masterContentIds[i], false);
content.setId(null);
this._contentManager.saveContent(content);
newContentIds[i] = content.getId();
if (publish) {
this._contentManager.insertOnLineContent(content);
}
}
for (int i=0; i<newContentIds.length; i++) {
Content content = this._contentManager.loadContent(newContentIds[i], false);
assertNotNull(content);
}
return newContentIds;
}
private void deleteContents(String[] contentIds) throws Throwable {
for (int i=0; i<contentIds.length; i++) {
Content content = this._contentManager.loadContent(contentIds[i], false);
if (null != content) {
this._contentManager.removeOnLineContent(content);
this._contentManager.deleteContent(content);
}
}
}
private void init() throws Exception {
try {
this._contentManager = (IContentManager) this.getService(JacmsSystemConstants.CONTENT_MANAGER);
} catch (Throwable t) {
throw new Exception(t);
}
}
private IContentManager _contentManager = null;
}