@SuppressWarnings("unchecked")
public void testAppendAndRead() throws InvalidRecordLocationException, InterruptedException, IOException {
Packet data1 = createPacket("Hello World 1");
RecordLocation location1 = journal.write(data1, false);
Packet data2 = createPacket("Hello World 2");
RecordLocation location2 = journal.write(data2, false);
Packet data3 = createPacket("Hello World 3");
RecordLocation location3 = journal.write(data3, false);
// Thread.sleep(1000);
// Now see if we can read that data.
Packet data;
data = journal.read(location2);
assertEquals(data2, data);
data = journal.read(location1);
assertEquals(data1, data);
data = journal.read(location3);
assertEquals(data3, data);
// Can we cursor the data?
RecordLocation l = journal.getNextRecordLocation(null);
int t = l.compareTo(location1);
assertEquals(0, t);
data = journal.read(l);
assertEquals(data1, data);
l = journal.getNextRecordLocation(l);
assertEquals(0, l.compareTo(location2));
data = journal.read(l);
assertEquals(data2, data);
l = journal.getNextRecordLocation(l);
assertEquals(0, l.compareTo(location3));
data = journal.read(l);
assertEquals(data3, data);
l = journal.getNextRecordLocation(l);
assertNull(l);