package mil.nga.giat.geowave.core.geotime.store.field;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import junit.framework.Assert;
import mil.nga.giat.geowave.core.store.data.field.FieldUtils;
import org.junit.Before;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
public class GeoTimeReaderWriterTest
{
private Geometry geometryExpected;
private Geometry[] geometryArrayExpected;
private Date dateExpected;
private Date[] dateArrayExpected;
private Calendar calendarExpected;
private Calendar[] calendarArrayExpected;
@Before
public void init() {
geometryExpected = new GeometryFactory().createPoint(new Coordinate(
25,
32));
geometryArrayExpected = new Geometry[] {
new GeometryFactory().createPoint(new Coordinate(
25,
32)),
new GeometryFactory().createPoint(new Coordinate(
26,
33)),
new GeometryFactory().createPoint(new Coordinate(
27,
34)),
new GeometryFactory().createPoint(new Coordinate(
28,
35))
};
dateExpected = new Date();
dateArrayExpected = new Date[] {
new Date(),
null,
new Date(
0),
null
};
calendarExpected = new GregorianCalendar();
calendarExpected.setTimeZone(TimeZone.getTimeZone("GMT"));
final Calendar cal1 = new GregorianCalendar();
cal1.setTimeZone(TimeZone.getTimeZone("GMT"));
final Calendar cal2 = new GregorianCalendar();
cal2.setTimeZone(TimeZone.getTimeZone("GMT"));
calendarArrayExpected = new Calendar[] {
cal1,
null,
cal2,
null
};
}
public void testGeoTimeReadWrite() {
byte[] value;
// test Geometry reader/writer
value = FieldUtils.getDefaultWriterForClass(
Geometry.class).writeField(
geometryExpected);
final Geometry geometryActual = FieldUtils.getDefaultReaderForClass(
Geometry.class).readField(
value);
// TODO develop the "equals" test for Geometry
Assert.assertEquals(
"FAILED test of Geometry reader/writer",
geometryExpected,
geometryActual);
// test Geometry Array reader/writer
value = FieldUtils.getDefaultWriterForClass(
Geometry[].class).writeField(
geometryArrayExpected);
final Geometry[] geometryArrayActual = FieldUtils.getDefaultReaderForClass(
Geometry[].class).readField(
value);
Assert.assertTrue(
"FAILED test of String Array reader/writer",
Arrays.deepEquals(
geometryArrayExpected,
geometryArrayActual));
// test Date reader/writer
value = FieldUtils.getDefaultWriterForClass(
Date.class).writeField(
dateExpected);
final Date dateActual = FieldUtils.getDefaultReaderForClass(
Date.class).readField(
value);
Assert.assertEquals(
"FAILED test of Date reader/writer",
dateExpected,
dateActual);
// test Date Array reader/writer
value = FieldUtils.getDefaultWriterForClass(
Date[].class).writeField(
dateArrayExpected);
final Date[] dateArrayActual = FieldUtils.getDefaultReaderForClass(
Date[].class).readField(
value);
Assert.assertTrue(
"FAILED test of Date Array reader/writer",
Arrays.deepEquals(
dateArrayExpected,
dateArrayActual));
// test Calendar reader/writer
value = FieldUtils.getDefaultWriterForClass(
Calendar.class).writeField(
calendarExpected);
final Calendar calendarActual = FieldUtils.getDefaultReaderForClass(
Calendar.class).readField(
value);
Assert.assertEquals(
"FAILED test of Calendar reader/writer",
calendarExpected,
calendarActual);
// test Calendar Array reader/writer
value = FieldUtils.getDefaultWriterForClass(
Calendar[].class).writeField(
calendarArrayExpected);
final Calendar[] calendarArrayActual = FieldUtils.getDefaultReaderForClass(
Calendar[].class).readField(
value);
Assert.assertTrue(
"FAILED test of Calendar Array reader/writer",
Arrays.deepEquals(
calendarArrayExpected,
calendarArrayActual));
}
}