Assert.assertEquals(101, tracker.getFreeOrdinal());
}
@Test
public void serializesAndDeserializes() throws IOException {
FreeOrdinalTracker tracker = new FreeOrdinalTracker();
for(int i=0;i<100;i++) {
tracker.getFreeOrdinal();
}
tracker.returnOrdinalToPool(20);
tracker.returnOrdinalToPool(30);
tracker.returnOrdinalToPool(40);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
tracker.serializeTo(baos);
FreeOrdinalTracker deserializedTracker = FreeOrdinalTracker.deserializeFrom(new ByteArrayInputStream(baos.toByteArray()));
Assert.assertEquals(40, deserializedTracker.getFreeOrdinal());
Assert.assertEquals(30, deserializedTracker.getFreeOrdinal());
Assert.assertEquals(20, deserializedTracker.getFreeOrdinal());
Assert.assertEquals(100, deserializedTracker.getFreeOrdinal());
Assert.assertEquals(101, deserializedTracker.getFreeOrdinal());
}