}
}
public void testAddTreeRecords() throws Exception {
ODirectMemoryPointer pagePointer = new ODirectMemoryPointer(new byte[OClusterPage.PAGE_SIZE + ODurablePage.PAGE_PADDING]);
OCachePointer cachePointer = new OCachePointer(pagePointer, new OLogSequenceNumber(0, 0));
cachePointer.incrementReferrer();
OCacheEntry cacheEntry = new OCacheEntry(0, 0, cachePointer, false);
try {
OClusterPage localPage = new OClusterPage(cacheEntry, true, ODurablePage.TrackMode.FULL);
int freeSpace = localPage.getFreeSpace();
Assert.assertEquals(localPage.getRecordsCount(), 0);
ORecordVersion recordVersion = OVersionFactory.instance().createVersion();
recordVersion.increment();
int positionOne = localPage.appendRecord(recordVersion, new byte[] { 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1 }, false);
int positionTwo = localPage.appendRecord(recordVersion, new byte[] { 2, 2, 3, 4, 5, 6, 5, 4, 3, 2, 2 }, false);
int positionThree = localPage.appendRecord(recordVersion, new byte[] { 3, 2, 3, 4, 5, 6, 5, 4, 3, 2, 3 }, false);
Assert.assertEquals(localPage.getRecordsCount(), 3);
Assert.assertEquals(positionOne, 0);
Assert.assertEquals(positionTwo, 1);
Assert.assertEquals(positionThree, 2);
Assert.assertEquals(localPage.getFreeSpace(), freeSpace - (3 * (27 + OVersionFactory.instance().getVersionSize())));
Assert.assertFalse(localPage.isDeleted(0));
Assert.assertFalse(localPage.isDeleted(1));
Assert.assertFalse(localPage.isDeleted(2));
Assert.assertEquals(localPage.getRecordBinaryValue(0, 0, 11), new byte[] { 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1 });
Assert.assertEquals(localPage.getRecordSize(0), 11);
Assert.assertEquals(localPage.getRecordVersion(0), recordVersion);
Assert.assertEquals(localPage.getRecordBinaryValue(1, 0, 11), new byte[] { 2, 2, 3, 4, 5, 6, 5, 4, 3, 2, 2 });
Assert.assertEquals(localPage.getRecordSize(0), 11);
Assert.assertEquals(localPage.getRecordVersion(1), recordVersion);
Assert.assertEquals(localPage.getRecordBinaryValue(2, 0, 11), new byte[] { 3, 2, 3, 4, 5, 6, 5, 4, 3, 2, 3 });
Assert.assertEquals(localPage.getRecordSize(0), 11);
Assert.assertEquals(localPage.getRecordVersion(2), recordVersion);
assertChangesTracking(localPage, pagePointer);
} finally {
cachePointer.decrementReferrer();
}
}