private void restoreAndAssert(HollowProducer producer, long version, int size, int valueMultiplier, int valueFieldCount) {
ReadState readState = producer.restore(version, blobRetriever);
Assert.assertNotNull(lastRestoreStatus);
Assert.assertEquals(Status.SUCCESS, lastRestoreStatus.getStatus());
Assert.assertEquals("Version should be the same", version, lastRestoreStatus.getDesiredVersion());
HollowObjectTypeReadState typeState = (HollowObjectTypeReadState) readState.getStateEngine().getTypeState("TestPojo");
BitSet populatedOrdinals = typeState.getPopulatedOrdinals();
Assert.assertEquals(size, populatedOrdinals.cardinality());
int ordinal = populatedOrdinals.nextSetBit(0);
while (ordinal != -1) {
GenericHollowObject obj = new GenericHollowObject(new HollowObjectGenericDelegate(typeState), ordinal);
System.out.println("ordinal=" + ordinal + obj);
int id = obj.getInt("id");
for (int i = 0; i < valueFieldCount; i++) {
String valueFN = "v" + (i + 1);
int value = id * valueMultiplier;
Assert.assertEquals(valueFN, value, obj.getInt(valueFN));
}
ordinal = populatedOrdinals.nextSetBit(ordinal + 1);
}
System.out.println("Asserted Correctness of version:" + version + "\n\n");
}