BufferedConfigurationExplorer extends ConfigurationExplorer { @Override public boolean moveTo(String name, boolean create) { if(super.moveTo(name, create)) { sections.push(getSection()); return true; } return false; } BufferedConfigurationExplorer(ConfigurationSection root); boolean hasSections(); ConfigurationSection popSection(); @Override boolean moveTo(String name, boolean create);  }
@Test public void testSectionFoundBuffer() { BufferedConfigurationExplorer explorer; for(int i = 0; i < DEPTH; i++) { moveTo(explorer = (BufferedConfigurationExplorer)getExplorer(), i); backtrack(explorer, i); } }
@Test public void testSectionNotFoundBuffer() { BufferedConfigurationExplorer explorer; for(int i = 0; i < DEPTH; i++) { moveTo(explorer = (BufferedConfigurationExplorer)getExplorer(), i); assert !explorer.moveTo(FAKE_SECTION + i, false); backtrack(explorer, i); } }