/* * * Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved. * * This file is part of jAPS software. * jAPS is a free software; * you can redistribute it and/or modify it * under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2. * * See the file License for the specific language governing permissions * and limitations under the License * * * * Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved. * */ package test.com.agiletec.plugins.jacms.aps.system.services.content.entity; import java.util.Date; import java.util.List; import test.com.agiletec.aps.BaseTestCase; import com.agiletec.aps.system.common.entity.model.ApsEntityRecord; import com.agiletec.aps.system.common.entity.model.EntitySearchFilter; import com.agiletec.aps.system.exception.ApsSystemException; import com.agiletec.aps.util.DateConverter; import com.agiletec.plugins.jacms.aps.system.JacmsSystemConstants; import com.agiletec.plugins.jacms.aps.system.services.content.IContentManager; import com.agiletec.plugins.jacms.aps.system.services.content.model.ContentRecordVO; /** * @author E.Santoboni */ public class TestContentEntityManager extends BaseTestCase { @Override protected void setUp() throws Exception { super.setUp(); this.init(); } public void testSearchRecords() throws Throwable { List<ApsEntityRecord> contents = this._contentManager.searchRecords(null); assertNotNull(contents); assertEquals(24, contents.size()); EntitySearchFilter typeFilter = new EntitySearchFilter(IContentManager.ENTITY_TYPE_CODE_FILTER_KEY, false, "ART", false); EntitySearchFilter[] filters1 = {typeFilter}; contents = this._contentManager.searchRecords(filters1); assertEquals(11, contents.size()); EntitySearchFilter creationOrderFilter = new EntitySearchFilter(IContentManager.CONTENT_CREATION_DATE_FILTER_KEY, false); creationOrderFilter.setOrder(EntitySearchFilter.DESC_ORDER); EntitySearchFilter[] filters2 = {typeFilter, creationOrderFilter}; String[] order2 = {"ART122","ART121","ART120","ART112","ART111","ART104","ART102","ART187","ART180","ART179","ART1"}; contents = this._contentManager.searchRecords(filters2); assertEquals(order2.length, contents.size()); this.verifyOrder(contents, order2); EntitySearchFilter descrFilter = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false, "descriz", true); EntitySearchFilter[] filters3 = {typeFilter, creationOrderFilter, descrFilter}; String[] order3 = {"ART187","ART180","ART179"}; contents = this._contentManager.searchRecords(filters3); assertEquals(order3.length, contents.size()); this.verifyOrder(contents, order3); EntitySearchFilter statusFilter = new EntitySearchFilter(IContentManager.CONTENT_STATUS_FILTER_KEY, false, "AF", true); EntitySearchFilter[] filters4 = {typeFilter, creationOrderFilter, descrFilter, statusFilter}; String[] order4 = {"ART187","ART179"}; contents = this._contentManager.searchRecords(filters4); assertEquals(order4.length, contents.size()); this.verifyOrder(contents, order4); EntitySearchFilter onLineFilter = new EntitySearchFilter(IContentManager.CONTENT_ONLINE_FILTER_KEY, false); EntitySearchFilter[] filters5 = {typeFilter, creationOrderFilter, descrFilter, statusFilter, onLineFilter}; String[] order5 = {"ART187"}; contents = this._contentManager.searchRecords(filters5); assertEquals(order5.length, contents.size()); this.verifyOrder(contents, order5); onLineFilter.setNullOption(true); EntitySearchFilter[] filters6 = {typeFilter, creationOrderFilter, descrFilter, statusFilter, onLineFilter}; String[] order6 = {"ART179"}; contents = this._contentManager.searchRecords(filters6); assertEquals(order6.length, contents.size()); this.verifyOrder(contents, order6); } private void verifyOrder(List<ApsEntityRecord> contents, String[] order) { for (int i=0; i<contents.size(); i++) { ContentRecordVO vo = (ContentRecordVO) contents.get(i); assertEquals(order[i], vo.getId()); } } public void testSearchEvents() throws ApsSystemException { EntitySearchFilter filterIt = new EntitySearchFilter("Titolo", true, "it", false); filterIt.setLangCode("it"); EntitySearchFilter[] filters = {filterIt}; List<String> contents = this._contentManager.searchId("EVN", filters); assertTrue(contents.isEmpty()); filterIt = new EntitySearchFilter("Titolo", true, "it", true); filterIt.setLangCode("it"); EntitySearchFilter[] filters1 = {filterIt}; contents = this._contentManager.searchId("EVN", filters1); assertFalse(contents.isEmpty()); String[] expectedItalianContentsId = {"EVN194", "EVN193", "EVN192", "EVN191", "EVN103"}; assertEquals(expectedItalianContentsId.length, contents.size()); for (int i=0; i<expectedItalianContentsId.length; i++) { assertTrue(contents.contains(expectedItalianContentsId[i])); } EntitySearchFilter filterEn = new EntitySearchFilter("Titolo", true, "it", true); filterEn.setLangCode("en"); EntitySearchFilter[] filters2 = {filterEn}; contents = this._contentManager.searchId("EVN", filters2); assertFalse(contents.isEmpty()); String[] expectedEnglishContentsId = {"EVN103", "EVN193", "EVN191", "EVN192", "EVN194"}; assertEquals(expectedEnglishContentsId.length, contents.size()); for (int i=0; i<expectedEnglishContentsId.length; i++) { assertTrue(contents.contains(expectedEnglishContentsId[i])); } filterEn.setOrder(EntitySearchFilter.DESC_ORDER); EntitySearchFilter[] filters3 = {filterEn}; contents = this._contentManager.searchId("EVN", filters3); assertEquals(expectedEnglishContentsId.length, contents.size()); for (int i=0; i<expectedEnglishContentsId.length; i++) { assertEquals(expectedEnglishContentsId[i], contents.get(i)); } filterEn.setOrder(EntitySearchFilter.ASC_ORDER); EntitySearchFilter[] filters4 = {filterEn}; contents = this._contentManager.searchId("EVN", filters4); assertEquals(expectedEnglishContentsId.length, contents.size()); for (int i=0; i<expectedEnglishContentsId.length; i++) { assertEquals(expectedEnglishContentsId[expectedEnglishContentsId.length - i - 1], contents.get(i)); } } public void testSearchEntities() throws ApsSystemException { EntitySearchFilter filter = new EntitySearchFilter("Data", true); EntitySearchFilter[] filters = {filter}; List<String> contents = this._contentManager.searchId("ART", filters); String[] expectedContentsId1 = {"ART1", "ART104", "ART112", "ART111", "ART120", "ART121", "ART179"}; assertEquals(expectedContentsId1.length, contents.size()); for (int i=0; i<expectedContentsId1.length; i++) { assertTrue(contents.contains(expectedContentsId1[i])); } contents = this._contentManager.searchId("EVN", null); String[] expectedContentsId2 = {"EVN194", "EVN193", "EVN192", "EVN191", "EVN103", "EVN20", "EVN21", "EVN23", "EVN24", "EVN25", "EVN41"}; assertEquals(expectedContentsId2.length, contents.size()); for (int i=0; i<expectedContentsId2.length; i++) { assertTrue(contents.contains(expectedContentsId2[i])); } } public void testLoadOrderedEvents_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.searchId("EVN", filters); String[] expectedContentsId = {"EVN24", "EVN23", "EVN103", "EVN191", "EVN192", "EVN193", "EVN194", "EVN41", "EVN20", "EVN21", "EVN25"}; assertEquals(expectedContentsId.length, contents.size()); for (int i=0; i<expectedContentsId.length; i++) { assertEquals(expectedContentsId[i], contents.get(i)); } filterForDescr.setOrder(EntitySearchFilter.DESC_ORDER); contents = _contentManager.searchId("EVN", filters); assertEquals(expectedContentsId.length, contents.size()); for (int i=0; i<expectedContentsId.length; i++) { assertEquals(expectedContentsId[expectedContentsId.length - i - 1], contents.get(i)); } } public void testLoadOrderedEvents_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.searchId("EVN", filters); String[] expectedOrderedContentsId = {"EVN191", "EVN192", "EVN193", "EVN194", "EVN103", "EVN20", "EVN23", "EVN24", "EVN25", "EVN41", "EVN21"}; assertEquals(expectedOrderedContentsId.length, contents.size()); for (int i=0; i<expectedOrderedContentsId.length; i++) { assertEquals(expectedOrderedContentsId[i], contents.get(i)); } filterForCreation.setOrder(EntitySearchFilter.DESC_ORDER); contents = _contentManager.searchId("EVN", filters); assertEquals(expectedOrderedContentsId.length, contents.size()); for (int i=0; i<expectedOrderedContentsId.length; i++) { assertEquals(expectedOrderedContentsId[expectedOrderedContentsId.length - i - 1], contents.get(i)); } } public void testLoadEvents2() throws ApsSystemException { 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.searchId("EVN", filters); assertEquals(2, contents.size()); assertEquals("EVN193", contents.get(0)); assertEquals("EVN192", contents.get(1)); EntitySearchFilter filter3 = new EntitySearchFilter(IContentManager.CONTENT_STATUS_FILTER_KEY, false, "pronto", true); EntitySearchFilter[] filters2 = {filter, filter3, filter2}; contents = _contentManager.searchId("EVN", filters2); assertEquals(0, contents.size()); EntitySearchFilter[] filters2_bis = {filter, filter2, filter3}; contents = _contentManager.searchId("EVN", filters2_bis); assertEquals(0, contents.size()); filter2 = new EntitySearchFilter(IContentManager.CONTENT_DESCR_FILTER_KEY, false); filter2.setOrder(EntitySearchFilter.DESC_ORDER); EntitySearchFilter[] filters3 = {filter, filter2}; contents = _contentManager.searchId("EVN", filters3); 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)); } } public void testLoadFutureEvents1() 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 = this._contentManager.searchId("EVN", filters); String[] expectedOrderedEntitiesId = {"EVN21", "EVN20", "EVN25", "EVN41", "EVN23", "EVN24", "EVN193", "EVN194"}; assertEquals(expectedOrderedEntitiesId.length, contents.size()); for (int i=0; i<expectedOrderedEntitiesId.length; i++) { assertEquals(expectedOrderedEntitiesId[i], contents.get(i)); } } public void testLoadFutureEvents2() throws ApsSystemException { Date date = DateConverter.parseDate("2008-01-01", "yyyy-MM-dd"); EntitySearchFilter filter = new EntitySearchFilter("DataInizio", true, date, null); filter.setOrder(EntitySearchFilter.ASC_ORDER); EntitySearchFilter[] filters = {filter}; List<String> contents = this._contentManager.searchId("EVN", filters); String[] expectedOrderedEntitiesId = {"EVN41", "EVN23", "EVN24", "EVN193", "EVN194"}; assertEquals(expectedOrderedEntitiesId.length, contents.size()); for (int i=0; i<expectedOrderedEntitiesId.length; i++) { assertEquals(expectedOrderedEntitiesId[i], contents.get(i)); } } public void testLoadFutureEvents3() 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 = this._contentManager.searchId("EVN", filters); String[] expectedOrderedEntitiesId = {"EVN194", "EVN193", "EVN24", "EVN23", "EVN41", "EVN25", "EVN20", "EVN21"}; assertEquals(expectedOrderedEntitiesId.length, contents.size()); for (int i=0; i<expectedOrderedEntitiesId.length; i++) { assertEquals(expectedOrderedEntitiesId[i], contents.get(i)); } } public void testLoadPastEvents1() 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> contents2 = this._contentManager.searchId("EVN", filters); String[] expectedOrderedEntitiesId = {"EVN191", "EVN192", "EVN103", "EVN21", "EVN20", "EVN25", "EVN41", "EVN23"}; assertEquals(expectedOrderedEntitiesId.length, contents2.size()); for (int i=0; i<expectedOrderedEntitiesId.length; i++) { assertEquals(expectedOrderedEntitiesId[i], contents2.get(i)); } } public void testLoadPastEvents2() 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> contents2 = this._contentManager.searchId("EVN", filters); String[] expectedOrderedEntitiesId = {"EVN23", "EVN41", "EVN25", "EVN20", "EVN21", "EVN103", "EVN192", "EVN191"}; assertEquals(expectedOrderedEntitiesId.length, contents2.size()); for (int i=0; i<expectedOrderedEntitiesId.length; i++) { assertEquals(expectedOrderedEntitiesId[i], contents2.get(i)); } } public void testLoadFutureEntityEvents1() throws Throwable { Date dateForTest = DateConverter.parseDate("1999-03-14", "yyyy-MM-dd"); EntitySearchFilter filter1 = new EntitySearchFilter("DataInizio", true, dateForTest, null); filter1.setOrder(EntitySearchFilter.ASC_ORDER); EntitySearchFilter[] filters = {filter1}; List<String> contents = this._contentManager.searchId("EVN", filters); String[] expectedOrderedEnitiesId = {"EVN192", "EVN103", "EVN21", "EVN20", "EVN25", "EVN41", "EVN23", "EVN24", "EVN193", "EVN194"}; assertEquals(expectedOrderedEnitiesId.length, contents.size()); for (int i=0; i<expectedOrderedEnitiesId.length; i++) { assertEquals(expectedOrderedEnitiesId[i], contents.get(i)); } filter1.setOrder(EntitySearchFilter.DESC_ORDER); EntitySearchFilter[] filters2 = {filter1}; contents = this._contentManager.searchId("EVN", filters2); assertEquals(expectedOrderedEnitiesId.length, contents.size()); for (int i=0; i<expectedOrderedEnitiesId.length; i++) { assertEquals(expectedOrderedEnitiesId[expectedOrderedEnitiesId.length - i - 1], contents.get(i)); } } public void testLoadFutureEntityEvents2() throws Throwable { Date startDateForTest = DateConverter.parseDate("1999-03-14", "yyyy-MM-dd"); EntitySearchFilter filter1 = new EntitySearchFilter("DataInizio", true, startDateForTest, null); filter1.setOrder(EntitySearchFilter.ASC_ORDER); Date endDateForTest = DateConverter.parseDate("2017-09-12", "yyyy-MM-dd"); EntitySearchFilter filter2 = new EntitySearchFilter("DataFine", true, null, endDateForTest); filter2.setOrder(EntitySearchFilter.ASC_ORDER); EntitySearchFilter[] filters3 = {filter1, filter2}; List<String> contents = this._contentManager.searchId("EVN", filters3); String[] expectedOrderedEntitiesId = {"EVN192", "EVN103", "EVN21", "EVN20", "EVN25", "EVN41", "EVN23", "EVN24", "EVN193"}; assertEquals(expectedOrderedEntitiesId.length, contents.size()); for (int i=0; i<expectedOrderedEntitiesId.length; i++) { assertEquals(expectedOrderedEntitiesId[i], contents.get(i)); } filter2.setOrder(EntitySearchFilter.DESC_ORDER); contents = this._contentManager.searchId("EVN", filters3); //l'ordinamento รจ lo stesso il quanto il primo ordinamento viene fatto con il filter1 assertEquals(expectedOrderedEntitiesId.length, contents.size()); for (int i=0; i<expectedOrderedEntitiesId.length; i++) { assertEquals(expectedOrderedEntitiesId[i], contents.get(i)); } filter1.setOrder(EntitySearchFilter.DESC_ORDER); contents = this._contentManager.searchId("EVN", filters3); assertEquals(expectedOrderedEntitiesId.length, contents.size()); for (int i=0; i<expectedOrderedEntitiesId.length; i++) { assertEquals(expectedOrderedEntitiesId[expectedOrderedEntitiesId.length - i - 1], contents.get(i)); } filter1.setOrder(EntitySearchFilter.ASC_ORDER); filter2.setOrder(EntitySearchFilter.ASC_ORDER); EntitySearchFilter[] filters4 = {filter2, filter1}; contents = this._contentManager.searchId("EVN", filters4); String[] expectedOrderedEntitiesId2 = {"EVN192", "EVN103", "EVN20", "EVN21", "EVN25", "EVN41", "EVN23", "EVN24", "EVN193"}; assertEquals(expectedOrderedEntitiesId2.length, contents.size()); for (int i=0; i<expectedOrderedEntitiesId2.length; i++) { assertEquals(expectedOrderedEntitiesId2[i], contents.get(i)); } filter2.setOrder(EntitySearchFilter.DESC_ORDER); contents = this._contentManager.searchId("EVN", filters4); assertEquals(expectedOrderedEntitiesId2.length, contents.size()); for (int i=0; i<expectedOrderedEntitiesId2.length; i++) { assertEquals(expectedOrderedEntitiesId2[expectedOrderedEntitiesId2.length - i - 1], contents.get(i)); } } 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; }