/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2014, Open Source Geospatial Foundation (OSGeo) * * 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; * version 2.1 of the License. * * 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 org.geotools.data.solr; import java.util.Date; import org.geotools.data.simple.SimpleFeatureCollection; import org.geotools.data.simple.SimpleFeatureIterator; import org.opengis.filter.Filter; import org.opengis.filter.FilterFactory; import org.opengis.temporal.Period; public class SolrTemporalTest extends SolrTestSupport { public void testCompareDateFilter() throws Exception { init(); Date testDate = df.parse("2009-06-28 00:00:00"); FilterFactory ff = dataStore.getFilterFactory(); Filter f = ff.lessOrEqual(ff.property("installed_tdt"), ff.literal(testDate)); SimpleFeatureCollection features = featureSource.getFeatures(f); assertEquals(4, features.size()); SimpleFeatureIterator it = features.features(); while (it.hasNext()) { Date date = (Date) it.next().getAttribute("installed_tdt"); assertTrue(date.before(testDate) || date.equals(testDate)); } it.close(); f = ff.greaterOrEqual(ff.property("installed_tdt"), ff.literal(testDate)); features = featureSource.getFeatures(f); assertEquals(5, features.size()); it = features.features(); while (it.hasNext()) { Date date = (Date) it.next().getAttribute("installed_tdt"); assertTrue(date.after(testDate) || date.equals(testDate)); } it.close(); } public void testAfterFilter() throws Exception { init(); Date testDate = df.parse("2009-28-06 00:00:00"); FilterFactory ff = dataStore.getFilterFactory(); Filter f = ff.after(ff.property("installed_tdt"), ff.literal(testDate)); SimpleFeatureCollection features = featureSource.getFeatures(f); assertEquals(5, features.size()); } public void testAfterInterval() throws Exception { init(); Period period = period("2011-21-05 00:00:00", "2011-15-09 00:00:00"); FilterFactory ff = dataStore.getFilterFactory(); Filter f = ff.after(ff.property("installed_tdt"), ff.literal(period)); SimpleFeatureCollection features = featureSource.getFeatures(f); assertEquals(4, features.size()); } public void testBeforeFilter() throws Exception { init(); Date testDate = df.parse("2009-28-06 00:00:00"); FilterFactory ff = dataStore.getFilterFactory(); Filter f = ff.before(ff.property("installed_tdt"), ff.literal(testDate)); SimpleFeatureCollection features = featureSource.getFeatures(f); assertEquals(4, features.size()); } public void testBeforeInterval() throws Exception { init(); Period period = period("2000-12-11 00:00:00", "2011-05-21 00:00:00"); FilterFactory ff = dataStore.getFilterFactory(); Filter f = ff.before(ff.property("installed_tdt"), ff.literal(period)); SimpleFeatureCollection features = featureSource.getFeatures(f); assertEquals(1, features.size()); } public void testBegins() throws Exception { init(); Period period = period("2004-20-06 03:44:56", "2014-22-06 03:44:56"); FilterFactory ff = dataStore.getFilterFactory(); Filter f = ff.begins(ff.property("installed_tdt"), ff.literal(period)); SimpleFeatureCollection features = featureSource.getFeatures(f); assertEquals(1, features.size()); } public void testBegunBy() throws Exception { init(); Period period = period("2004-20-06 03:44:56", "2014-22-06 03:44:56"); FilterFactory ff = dataStore.getFilterFactory(); Filter f = ff.begunBy(ff.literal(period), ff.property("installed_tdt")); SimpleFeatureCollection features = featureSource.getFeatures(f); assertEquals(1, features.size()); } public void testEnds() throws Exception { init(); Period period = period("2002-20-06 03:44:56", "2004-20-06 03:44:56"); FilterFactory ff = dataStore.getFilterFactory(); Filter f = ff.ends(ff.property("installed_tdt"), ff.literal(period)); SimpleFeatureCollection features = featureSource.getFeatures(f); assertEquals(1, features.size()); } public void testEndedBy() throws Exception { init(); Period period = period("2004-11-06 03:44:56", "2004-20-06 03:44:56"); FilterFactory ff = dataStore.getFilterFactory(); Filter f = ff.endedBy(ff.literal(period), ff.property("installed_tdt")); SimpleFeatureCollection features = featureSource.getFeatures(f); assertEquals(1, features.size()); } public void testDuring() throws Exception { init(); Period period = period("2004-19-06 03:44:56", "2004-20-06 03:44:58"); FilterFactory ff = dataStore.getFilterFactory(); Filter f = ff.during(ff.property("installed_tdt"), ff.literal(period)); SimpleFeatureCollection features = featureSource.getFeatures(f); assertEquals(1, features.size()); } public void testTContains() throws Exception { init(); Period period = period("2004-19-06 03:44:56", "2004-20-06 03:44:58"); FilterFactory ff = dataStore.getFilterFactory(); Filter f = ff.tcontains(ff.literal(period), ff.property("installed_tdt")); SimpleFeatureCollection features = featureSource.getFeatures(f); assertEquals(1, features.size()); } public void testTEquals() throws Exception { init(); Date testDate = df.parse("2013-01-10 00:13:11"); FilterFactory ff = dataStore.getFilterFactory(); Filter f = ff.tequals(ff.property("installed_tdt"), ff.literal(testDate)); SimpleFeatureCollection features = featureSource.getFeatures(f); assertEquals(1, features.size()); } }