@Test public void testTraversal() throws PersistitException { final Exchange ex = _persistit.getExchange("persistit", "gogo", true); final String mockValue = createString(256); /* insert 1000 records */ for (int i = 0; i < 1000; i++) { final String key = createString(32); ex.clear().append(key); ex.getValue().put(mockValue); ex.store(); } /* traverse forwards through those values */ ex.clear().to(Key.BEFORE); while (ex.next()) { ex.fetch(); assertEquals(mockValue, ex.getValue().getString()); } ex.clear().to(Key.BEFORE); while (ex.hasNext()) { ex.next(); ex.fetch(); assertEquals(mockValue, ex.getValue().getString()); } /* now traverse backwards through those values */ ex.clear().to(Key.AFTER); while (ex.previous()) { ex.fetch(); assertEquals(mockValue, ex.getValue().getString()); } ex.clear().to(Key.AFTER); while (ex.hasPrevious()) { ex.previous(); ex.fetch(); assertEquals(mockValue, ex.getValue().getString()); } /* now use the traverse method with various directions */ ex.clear().to(Key.BEFORE); final Key key = ex.getKey(); final KeyFilter kf = new KeyFilter(key); /* this is mostly to test if we can trigger bad things */ assertEquals(false, ex.traverse(Key.EQ, kf, 4)); assertEquals(false, ex.traverse(Key.GT, kf, 4)); assertEquals(false, ex.traverse(Key.GTEQ, kf, 4)); assertEquals(false, ex.traverse(Key.LT, kf, 4)); assertEquals(false, ex.traverse(Key.LTEQ, kf, 4)); }