package mil.nga.giat.geowave.adapter.vector.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import mil.nga.giat.geowave.adapter.vector.utils.TimeDescriptors.TimeDescriptorConfiguration; import org.geotools.data.DataUtilities; import org.geotools.feature.SchemaException; import org.junit.Test; import org.opengis.feature.simple.SimpleFeatureType; public class TimeDescriptorsTest { @Test public void testOneTime() throws SchemaException { SimpleFeatureType schema = DataUtilities.createType( "sp.geostuff", "geometry:Geometry:srid=4326,pop:java.lang.Long,when:Date,whennot:Date,pid:String"); final TimeDescriptorConfiguration timeConfig = new TimeDescriptorConfiguration(); timeConfig.configureFromType(schema); TimeDescriptors td = new TimeDescriptors( schema, timeConfig); assertEquals( "when", td.getTime().getLocalName()); assertNull(td.getStartRange()); assertNull(td.getEndRange()); assertTrue(td.hasTime()); } @Test public void testRangeTime() throws SchemaException { SimpleFeatureType schema = DataUtilities.createType( "sp.geostuff", "geometry:Geometry:srid=4326,pop:java.lang.Long,start:Date,end:Date,pid:String"); final TimeDescriptorConfiguration timeConfig = new TimeDescriptorConfiguration(); timeConfig.configureFromType(schema); TimeDescriptors td = new TimeDescriptors( schema, timeConfig); assertEquals( "start", td.getStartRange().getLocalName()); assertEquals( "end", td.getEndRange().getLocalName()); assertNull(td.getTime()); assertTrue(td.hasTime()); } @Test public void testMixedTime() throws SchemaException { SimpleFeatureType schema = DataUtilities.createType( "sp.geostuff", "geometry:Geometry:srid=4326,pop:java.lang.Long,when:Date,start:Date,end:Date,pid:String"); final TimeDescriptorConfiguration timeConfig = new TimeDescriptorConfiguration(); timeConfig.configureFromType(schema); TimeDescriptors td = new TimeDescriptors( schema, timeConfig); assertEquals( "start", td.getStartRange().getLocalName()); assertEquals( "end", td.getEndRange().getLocalName()); assertNull(td.getTime()); assertTrue(td.hasTime()); } @Test public void testJustStartTime() throws SchemaException { SimpleFeatureType schema = DataUtilities.createType( "sp.geostuff", "geometry:Geometry:srid=4326,pop:java.lang.Long,start:Date,pid:String"); final TimeDescriptorConfiguration timeConfig = new TimeDescriptorConfiguration(); timeConfig.configureFromType(schema); TimeDescriptors td = new TimeDescriptors( schema, timeConfig); assertEquals( "start", td.getTime().getLocalName()); assertNull(td.getStartRange()); assertNull(td.getEndRange()); assertTrue(td.hasTime()); } @Test public void testJustEndTime() throws SchemaException { SimpleFeatureType schema = DataUtilities.createType( "sp.geostuff", "geometry:Geometry:srid=4326,pop:java.lang.Long,end:Date,pid:String"); final TimeDescriptorConfiguration timeConfig = new TimeDescriptorConfiguration(); timeConfig.configureFromType(schema); TimeDescriptors td = new TimeDescriptors( schema, timeConfig); assertEquals( "end", td.getTime().getLocalName()); assertNull(td.getStartRange()); assertNull(td.getEndRange()); assertTrue(td.hasTime()); } @Test public void testWhenAndEndTime() throws SchemaException { SimpleFeatureType schema = DataUtilities.createType( "sp.geostuff", "geometry:Geometry:srid=4326,pop:java.lang.Long,when:Date,end:Date,pid:String"); final TimeDescriptorConfiguration timeConfig = new TimeDescriptorConfiguration(); timeConfig.configureFromType(schema); TimeDescriptors td = new TimeDescriptors( schema, timeConfig); assertEquals( "when", td.getTime().getLocalName()); assertNull(td.getStartRange()); assertNull(td.getEndRange()); assertTrue(td.hasTime()); } @Test public void testWhenAndStartTime() throws SchemaException { SimpleFeatureType schema = DataUtilities.createType( "sp.geostuff", "geometry:Geometry:srid=4326,pop:java.lang.Long,when:Date,start:Date,pid:String"); final TimeDescriptorConfiguration timeConfig = new TimeDescriptorConfiguration(); timeConfig.configureFromType(schema); TimeDescriptors td = new TimeDescriptors( schema, timeConfig); assertEquals( "when", td.getTime().getLocalName()); assertNull(td.getStartRange()); assertNull(td.getEndRange()); assertTrue(td.hasTime()); } }