package mil.nga.giat.geowave.core.store.index.temporal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import junit.framework.Assert;
import mil.nga.giat.geowave.core.index.ByteArrayId;
import mil.nga.giat.geowave.core.index.ByteArrayRange;
import mil.nga.giat.geowave.core.index.lexicoder.Lexicoders;
import mil.nga.giat.geowave.core.store.base.DataStoreEntryInfo.FieldInfo;
import mil.nga.giat.geowave.core.store.data.PersistentValue;
import org.junit.Test;
public class TemporalIndexStrategyTest
{
private final TemporalIndexStrategy strategy = new TemporalIndexStrategy();
private final ByteArrayId fieldId = new ByteArrayId(
"fieldId");
private final Date date = new Date(
1440080038544L);
@Test
public void testInsertions() {
final List<FieldInfo<Date>> fieldInfoList = new ArrayList<>();
final FieldInfo<Date> fieldInfo = new FieldInfo<>(
new PersistentValue<Date>(
null,
date),
null,
null);
fieldInfoList.add(fieldInfo);
final List<ByteArrayId> insertionIds = strategy.getInsertionIds(fieldInfoList);
Assert.assertTrue(insertionIds.size() == 1);
Assert.assertTrue(insertionIds.contains(new ByteArrayId(
Lexicoders.LONG.toByteArray(date.getTime()))));
}
@Test
public void testDateRange() {
final List<ByteArrayRange> ranges = strategy.getQueryRanges(new TemporalQueryConstraint(
fieldId,
date,
date));
Assert.assertTrue(ranges.size() == 1);
Assert.assertTrue(ranges.get(
0).equals(
new ByteArrayRange(
new ByteArrayId(
Lexicoders.LONG.toByteArray(date.getTime())),
new ByteArrayId(
Lexicoders.LONG.toByteArray(date.getTime())))));
}
}