test which verifies the dates in each file are monotonically increasing

This commit is contained in:
2016-12-23 13:04:05 +01:00
parent 470f3c730d
commit 5efab12063
2 changed files with 52 additions and 1 deletions

View File

@@ -34,7 +34,6 @@ class PdbWriter implements AutoCloseable {
} }
public void write(final Entry entry) throws WriteException { public void write(final Entry entry) throws WriteException {
// System.out.println(entry);
write(entry.getEpochMilli(), entry.getValue()); write(entry.getEpochMilli(), entry.getValue());
} }
@@ -81,6 +80,14 @@ class PdbWriter implements AutoCloseable {
} }
} }
public static void writeEntry(final PdbFile pdbFile, final Entry... entries) throws IOException {
try (PdbWriter writer = new PdbWriter(pdbFile)) {
for (final Entry entry : entries) {
writer.write(entry);
}
}
}
@Override @Override
public void close() throws IOException { public void close() throws IOException {
outputStream.flush(); outputStream.flush();

View File

@@ -9,6 +9,7 @@ import java.time.ZoneOffset;
import org.lucares.ludb.FieldType; import org.lucares.ludb.FieldType;
import org.lucares.ludb.H2DB; import org.lucares.ludb.H2DB;
import org.lucares.pdb.api.Entry;
import org.lucares.pdb.api.Tags; import org.lucares.pdb.api.Tags;
import org.testng.Assert; import org.testng.Assert;
import org.testng.annotations.AfterMethod; import org.testng.annotations.AfterMethod;
@@ -70,4 +71,47 @@ public class TagsToFilesTest {
Assert.assertEquals(fileForDay1, existingFileForDay1); Assert.assertEquals(fileForDay1, existingFileForDay1);
} }
} }
public void testNewFileIfDateIsTooOld() throws Exception {
try (H2DB db = new H2DB(new File(dataDirectory.toFile(), "lu.db"))) {
db.createField(Fields.DATE_OFFSET, FieldType.STRING);
final TagsToFile tagsToFile = new TagsToFile(dataDirectory, db);
final OffsetDateTime afternoon = DateUtils.getDate(2016, 1, 1, 13, 1, 1);
final OffsetDateTime morning = DateUtils.getDate(2016, 1, 1, 12, 1, 1);
final Tags tags = Tags.create("myKey", "myValue");
final PdbFile fileAfternoon = tagsToFile.getFile(afternoon, tags);
PdbWriter.writeEntry(fileAfternoon, new Entry(afternoon, 1, tags));
final PdbFile fileMorning = tagsToFile.getFile(morning, tags);
Assert.assertNotEquals(fileAfternoon, fileMorning);
}
}
public void testIdenticalDatesGoIntoSameFile() throws Exception {
try (H2DB db = new H2DB(new File(dataDirectory.toFile(), "lu.db"))) {
db.createField(Fields.DATE_OFFSET, FieldType.STRING);
final TagsToFile tagsToFile = new TagsToFile(dataDirectory, db);
final OffsetDateTime timestamp = DateUtils.getDate(2016, 1, 1, 13, 1, 1);
final Tags tags = Tags.create("myKey", "myValue");
final PdbFile fileA = tagsToFile.getFile(timestamp, tags);
PdbWriter.writeEntry(fileA, new Entry(timestamp, 1, tags));
final PdbFile fileB = tagsToFile.getFile(timestamp, tags);
PdbWriter.writeEntry(fileA, new Entry(timestamp, 2, tags));
Assert.assertEquals(fileA, fileB);
}
}
} }