@Test
public void testCompletelyMissingMap() throws IOException {
roundTripSnapshot();
readStateEngine.setMissingDataHandler(new FakeMissingDataHandler());
GenericHollowMap map = (GenericHollowMap) GenericHollowRecordHelper.instantiate(readStateEngine, "MissingMap", 0);
Assert.assertEquals(2, map.size());
Assert.assertTrue(map.containsKey(new FakeMissingHollowRecord(new HollowObjectMissingDataAccess(readStateEngine, "MissingObject"), 2)));
Assert.assertEquals(300, map.get(new FakeMissingHollowRecord(new HollowObjectMissingDataAccess(readStateEngine, "MissingObject"), 3)).getOrdinal());
Assert.assertFalse(map.containsKey(new FakeMissingHollowRecord(new HollowObjectMissingDataAccess(readStateEngine, "MissingObject"), 0)));
Assert.assertNull(map.get(new FakeMissingHollowRecord(new HollowObjectMissingDataAccess(readStateEngine, "MissingObject"), 4)));
Iterator<Map.Entry<HollowRecord, HollowRecord>> rec = map.entrySet().iterator();
Assert.assertTrue(rec.hasNext());
Map.Entry<HollowRecord, HollowRecord> next = rec.next();
Assert.assertEquals(2, next.getKey().getOrdinal());
Assert.assertEquals("MissingObject", next.getKey().getSchema().getName());
Assert.assertEquals(200, next.getValue().getOrdinal());
Assert.assertEquals("MissingObject", next.getValue().getSchema().getName());
Assert.assertTrue(rec.hasNext());
next = rec.next();
Assert.assertEquals(3, next.getKey().getOrdinal());
Assert.assertEquals("MissingObject", next.getKey().getSchema().getName());
Assert.assertEquals(300, next.getValue().getOrdinal());
Assert.assertEquals("MissingObject", next.getValue().getSchema().getName());
Assert.assertEquals(300, map.get(next.getKey()).getOrdinal());
Assert.assertEquals("MissingObject", map.get(next.getKey()).getSchema().getName());
Assert.assertFalse(rec.hasNext());
}