cursor.close();
assertTrue( cursor.isClosed() );
// ---------- test first() ----------
cursor = new LessEqCursor( store, evaluator );
cursor.first();
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 1L ), cursor.get().getId() );
assertEquals( "1", cursor.get().getKey() );
assertTrue( cursor.next() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 2L ), cursor.get().getId() );
assertEquals( "1", cursor.get().getKey() );
assertTrue( cursor.next() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 3L ), cursor.get().getId() );
assertEquals( "1", cursor.get().getKey() );
assertTrue( cursor.next() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 4L ), cursor.get().getId() );
assertEquals( "2", cursor.get().getKey() );
assertTrue( cursor.next() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 5L ), cursor.get().getId() );
assertEquals( "3", cursor.get().getKey() );
assertFalse( cursor.next() );
assertFalse( cursor.available() );
cursor.close();
assertTrue( cursor.isClosed() );
// ---------- test afterLast() ----------
cursor = new LessEqCursor( store, evaluator );
cursor.afterLast();
assertFalse( cursor.available() );
assertTrue( cursor.previous() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 5L ), cursor.get().getId() );
assertEquals( "3", cursor.get().getKey() );
assertTrue( cursor.previous() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 4L ), cursor.get().getId() );
assertEquals( "2", cursor.get().getKey() );
assertTrue( cursor.previous() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 3L ), cursor.get().getId() );
assertEquals( "1", cursor.get().getKey() );
assertTrue( cursor.previous() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 2L ), cursor.get().getId() );
assertEquals( "1", cursor.get().getKey() );
assertTrue( cursor.previous() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 1L ), cursor.get().getId() );
assertEquals( "1", cursor.get().getKey() );
assertFalse( cursor.previous() );
assertFalse( cursor.available() );
cursor.close();
assertTrue( cursor.isClosed() );
// ---------- test last() ----------
cursor = new LessEqCursor( store, evaluator );
cursor.last();
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 5L ), cursor.get().getId() );
assertEquals( "3", cursor.get().getKey() );
assertTrue( cursor.previous() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 4L ), cursor.get().getId() );
assertEquals( "2", cursor.get().getKey() );
assertTrue( cursor.previous() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 3L ), cursor.get().getId() );
assertEquals( "1", cursor.get().getKey() );
assertTrue( cursor.previous() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 2L ), cursor.get().getId() );
assertEquals( "1", cursor.get().getKey() );
assertTrue( cursor.previous() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 1L ), cursor.get().getId() );
assertEquals( "1", cursor.get().getKey() );
assertFalse( cursor.previous() );
assertFalse( cursor.available() );
cursor.close();
assertTrue( cursor.isClosed() );
// ---------- test before() ----------
cursor = new LessEqCursor( store, evaluator );
IndexEntry<String, String> indexEntry = new IndexEntry<String, String>();
indexEntry.setKey( "2" );
assertFalse( cursor.available() );
cursor.before( indexEntry );
assertFalse( cursor.available() );
assertTrue( cursor.next() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 4L ), cursor.get().getId() );
assertEquals( "2", cursor.get().getKey() );
assertTrue( cursor.next() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 5L ), cursor.get().getId() );
assertEquals( "3", cursor.get().getKey() );
assertFalse( cursor.next() );
assertFalse( cursor.available() );
cursor.close();
assertTrue( cursor.isClosed() );
cursor = new LessEqCursor( store, evaluator );
indexEntry = new IndexEntry<String, String>();
indexEntry.setKey( "7" );
cursor.before( indexEntry );
assertFalse( cursor.available() );
assertTrue( cursor.previous() );
assertEquals( Strings.getUUID( 5L ), cursor.get().getId() );
assertEquals( "3", cursor.get().getKey() );
cursor.close();
cursor = new LessEqCursor( store, evaluator );
indexEntry = new IndexEntry<String, String>();
indexEntry.setKey( "3" );
cursor.before( indexEntry );
assertFalse( cursor.available() );
assertTrue( cursor.next() );
assertEquals( Strings.getUUID( 5L ), cursor.get().getId() );
assertEquals( "3", cursor.get().getKey() );
cursor.close();
// ---------- test after() ----------
cursor = new LessEqCursor( store, evaluator );
indexEntry = new IndexEntry<String, String>();
indexEntry.setKey( "1" );
assertFalse( cursor.available() );
cursor.after( indexEntry );
assertFalse( cursor.available() );
assertTrue( cursor.next() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 4L ), cursor.get().getId() );
assertEquals( "2", cursor.get().getKey() );
assertTrue( cursor.next() );
assertTrue( cursor.available() );
assertEquals( Strings.getUUID( 5L ), cursor.get().getId() );
assertEquals( "3", cursor.get().getKey() );
assertFalse( cursor.next() );
assertFalse( cursor.available() );
cursor.close();
assertTrue( cursor.isClosed() );
cursor = new LessEqCursor( store, evaluator );
indexEntry = new IndexEntry<String, String>();
indexEntry.setKey( "7" );
cursor.after( indexEntry );
assertFalse( cursor.available() );
assertTrue( cursor.previous() );
assertEquals( Strings.getUUID( 5L ), cursor.get().getId() );
assertEquals( "3", cursor.get().getKey() );
cursor.close();
cursor = new LessEqCursor( store, evaluator );
indexEntry = new IndexEntry<String, String>();
indexEntry.setKey( "3" );
cursor.after( indexEntry );
assertFalse( cursor.available() );
assertTrue( cursor.previous() );