コード例 #1
0
 @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));
 }