2222import java .util .LinkedList ;
2323import static org .hamcrest .CoreMatchers .is ;
2424import static org .hamcrest .MatcherAssert .assertThat ;
25+ import org .junit .Before ;
2526import org .junit .Rule ;
2627import org .junit .Test ;
2728import org .junit .rules .TemporaryFolder ;
@@ -39,103 +40,87 @@ public class CursorIteratorTest {
3940
4041 @ Rule
4142 public final TemporaryFolder tmp = new TemporaryFolder ();
42- Dbi <ByteBuffer > db ;
43- Env <ByteBuffer > env ;
44- LinkedList <Integer > list = new LinkedList <>() ;
43+ private Dbi <ByteBuffer > db ;
44+ private Env <ByteBuffer > env ;
45+ private LinkedList <Integer > list ;
4546
4647 @ Test
4748 public void backward () {
48- final Env <ByteBuffer > env = makeEnv ();
49-
50- try (final Txn <ByteBuffer > txn = env .txnRead ()) {
51- try (CursorIterator <ByteBuffer > c = db .iterate (txn , BACKWARD )) {
52- for (KeyVal <ByteBuffer > kv : c .iterable ()) {
53- assertThat (kv .val .getInt (), is (list .pollLast ()));
54- assertThat (kv .key .getInt (), is (list .pollLast ()));
55- }
49+ try (final Txn <ByteBuffer > txn = env .txnRead ();
50+ CursorIterator <ByteBuffer > c = db .iterate (txn , BACKWARD )) {
51+ for (KeyVal <ByteBuffer > kv : c .iterable ()) {
52+ assertThat (kv .val .getInt (), is (list .pollLast ()));
53+ assertThat (kv .key .getInt (), is (list .pollLast ()));
5654 }
5755 }
5856 }
5957
6058 @ Test
6159 public void backwardSeek () {
62- final Env <ByteBuffer > env = makeEnv ();
6360 ByteBuffer key = bb (5 );
6461 list .pollLast ();
6562 list .pollLast ();
66- try (final Txn <ByteBuffer > txn = env .txnRead ()) {
67- try (CursorIterator <ByteBuffer > c = db .iterate (txn , key , BACKWARD )) {
68- for (KeyVal <ByteBuffer > kv : c .iterable ()) {
69- assertThat (kv .val .getInt (), is (list .pollLast ()));
70- assertThat (kv .key .getInt (), is (list .pollLast ()));
71- }
63+ try (final Txn <ByteBuffer > txn = env .txnRead ();
64+ CursorIterator <ByteBuffer > c = db .iterate (txn , key , BACKWARD )) {
65+ for (KeyVal <ByteBuffer > kv : c .iterable ()) {
66+ assertThat (kv .val .getInt (), is (list .pollLast ()));
67+ assertThat (kv .key .getInt (), is (list .pollLast ()));
7268 }
7369 }
7470 }
7571
72+ @ Before
73+ public void before () throws IOException {
74+ final File path = tmp .newFile ();
75+ env = open (path , 10 , MDB_NOSUBDIR );
76+ db = env .openDbi (DB_1 , MDB_CREATE );
77+ list = new LinkedList <>();
78+ list .addAll (asList (1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ));
79+ try (final Txn <ByteBuffer > txn = env .txnWrite ()) {
80+ final Cursor <ByteBuffer > c = db .openCursor (txn );
81+ c .put (bb (1 ), bb (2 ), MDB_NOOVERWRITE );
82+ c .put (bb (3 ), bb (4 ));
83+ c .put (bb (5 ), bb (6 ));
84+ c .put (bb (7 ), bb (8 ));
85+ txn .commit ();
86+ }
87+ }
88+
7689 @ Test
7790 public void forward () {
78- final Env <ByteBuffer > env = makeEnv ();
79-
80- try (final Txn <ByteBuffer > txn = env .txnRead ()) {
81- try (CursorIterator <ByteBuffer > c = db .iterate (txn , FORWARD )) {
82- for (KeyVal <ByteBuffer > kv : c .iterable ()) {
83- assertThat (kv .key .getInt (), is (list .pollFirst ()));
84- assertThat (kv .val .getInt (), is (list .pollFirst ()));
85- }
91+ try (final Txn <ByteBuffer > txn = env .txnRead ();
92+ CursorIterator <ByteBuffer > c = db .iterate (txn , FORWARD )) {
93+ for (KeyVal <ByteBuffer > kv : c .iterable ()) {
94+ assertThat (kv .key .getInt (), is (list .pollFirst ()));
95+ assertThat (kv .val .getInt (), is (list .pollFirst ()));
8696 }
8797 }
8898 }
8999
90100 @ Test
91101 public void forwardSeek () {
92- final Env <ByteBuffer > env = makeEnv ();
93-
94102 ByteBuffer key = bb (3 );
95103 list .pollFirst ();
96104 list .pollFirst ();
97105
98- try (final Txn <ByteBuffer > txn = env .txnRead ()) {
99- try (CursorIterator <ByteBuffer > c = db .iterate (txn , key , FORWARD )) {
100- for (KeyVal <ByteBuffer > kv : c .iterable ()) {
101- assertThat (kv .key .getInt (), is (list .pollFirst ()));
102- assertThat (kv .val .getInt (), is (list .pollFirst ()));
103- }
106+ try (final Txn <ByteBuffer > txn = env .txnRead ();
107+ CursorIterator <ByteBuffer > c = db .iterate (txn , key , FORWARD )) {
108+ for (KeyVal <ByteBuffer > kv : c .iterable ()) {
109+ assertThat (kv .key .getInt (), is (list .pollFirst ()));
110+ assertThat (kv .val .getInt (), is (list .pollFirst ()));
104111 }
105112 }
106113 }
107114
108115 @ Test
109116 public void iterate () {
110- final Env <ByteBuffer > env = makeEnv ();
111-
112- try (final Txn <ByteBuffer > txn = env .txnRead ()) {
113- try (CursorIterator <ByteBuffer > c = db .iterate (txn )) {
114- for (KeyVal <ByteBuffer > kv : c .iterable ()) {
115- assertThat (kv .key .getInt (), is (list .pollFirst ()));
116- assertThat (kv .val .getInt (), is (list .pollFirst ()));
117- }
117+ try (final Txn <ByteBuffer > txn = env .txnRead ();
118+ CursorIterator <ByteBuffer > c = db .iterate (txn )) {
119+ for (KeyVal <ByteBuffer > kv : c .iterable ()) {
120+ assertThat (kv .key .getInt (), is (list .pollFirst ()));
121+ assertThat (kv .val .getInt (), is (list .pollFirst ()));
118122 }
119123 }
120124 }
121125
122- private Env <ByteBuffer > makeEnv () {
123- try {
124- final File path = tmp .newFile ();
125- env = open (path , 10 , MDB_NOSUBDIR );
126- db = env .openDbi (DB_1 , MDB_CREATE );
127- list .addAll (asList (1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ));
128- try (final Txn <ByteBuffer > txn = env .txnWrite ()) {
129- final Cursor <ByteBuffer > c = db .openCursor (txn );
130- c .put (bb (1 ), bb (2 ), MDB_NOOVERWRITE );
131- c .put (bb (3 ), bb (4 ));
132- c .put (bb (5 ), bb (6 ));
133- c .put (bb (7 ), bb (8 ));
134- txn .commit ();
135- }
136- return env ;
137- } catch (IOException e ) {
138- throw new RuntimeException (e );
139- }
140- }
141126}
0 commit comments