]> git.proxmox.com Git - ceph.git/blob - ceph/src/rocksdb/java/src/test/java/org/rocksdb/RocksIteratorTest.java
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / rocksdb / java / src / test / java / org / rocksdb / RocksIteratorTest.java
1 // Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
2 // This source code is licensed under both the GPLv2 (found in the
3 // COPYING file in the root directory) and Apache 2.0 License
4 // (found in the LICENSE.Apache file in the root directory).
5 package org.rocksdb;
6
7 import org.junit.ClassRule;
8 import org.junit.Rule;
9 import org.junit.Test;
10 import org.junit.rules.TemporaryFolder;
11
12 import static org.assertj.core.api.Assertions.assertThat;
13
14 public class RocksIteratorTest {
15
16 @ClassRule
17 public static final RocksMemoryResource rocksMemoryResource =
18 new RocksMemoryResource();
19
20 @Rule
21 public TemporaryFolder dbFolder = new TemporaryFolder();
22
23 @Test
24 public void rocksIterator() throws RocksDBException {
25 try (final Options options = new Options()
26 .setCreateIfMissing(true)
27 .setCreateMissingColumnFamilies(true);
28 final RocksDB db = RocksDB.open(options,
29 dbFolder.getRoot().getAbsolutePath())) {
30 db.put("key1".getBytes(), "value1".getBytes());
31 db.put("key2".getBytes(), "value2".getBytes());
32
33 try (final RocksIterator iterator = db.newIterator()) {
34 iterator.seekToFirst();
35 assertThat(iterator.isValid()).isTrue();
36 assertThat(iterator.key()).isEqualTo("key1".getBytes());
37 assertThat(iterator.value()).isEqualTo("value1".getBytes());
38 iterator.next();
39 assertThat(iterator.isValid()).isTrue();
40 assertThat(iterator.key()).isEqualTo("key2".getBytes());
41 assertThat(iterator.value()).isEqualTo("value2".getBytes());
42 iterator.next();
43 assertThat(iterator.isValid()).isFalse();
44 iterator.seekToLast();
45 iterator.prev();
46 assertThat(iterator.isValid()).isTrue();
47 assertThat(iterator.key()).isEqualTo("key1".getBytes());
48 assertThat(iterator.value()).isEqualTo("value1".getBytes());
49 iterator.seekToFirst();
50 iterator.seekToLast();
51 assertThat(iterator.isValid()).isTrue();
52 assertThat(iterator.key()).isEqualTo("key2".getBytes());
53 assertThat(iterator.value()).isEqualTo("value2".getBytes());
54 iterator.status();
55 }
56
57 try (final RocksIterator iterator = db.newIterator()) {
58 iterator.seek("key0".getBytes());
59 assertThat(iterator.isValid()).isTrue();
60 assertThat(iterator.key()).isEqualTo("key1".getBytes());
61
62 iterator.seek("key1".getBytes());
63 assertThat(iterator.isValid()).isTrue();
64 assertThat(iterator.key()).isEqualTo("key1".getBytes());
65
66 iterator.seek("key1.5".getBytes());
67 assertThat(iterator.isValid()).isTrue();
68 assertThat(iterator.key()).isEqualTo("key2".getBytes());
69
70 iterator.seek("key2".getBytes());
71 assertThat(iterator.isValid()).isTrue();
72 assertThat(iterator.key()).isEqualTo("key2".getBytes());
73
74 iterator.seek("key3".getBytes());
75 assertThat(iterator.isValid()).isFalse();
76 }
77
78 try (final RocksIterator iterator = db.newIterator()) {
79 iterator.seekForPrev("key0".getBytes());
80 assertThat(iterator.isValid()).isFalse();
81
82 iterator.seekForPrev("key1".getBytes());
83 assertThat(iterator.isValid()).isTrue();
84 assertThat(iterator.key()).isEqualTo("key1".getBytes());
85
86 iterator.seekForPrev("key1.5".getBytes());
87 assertThat(iterator.isValid()).isTrue();
88 assertThat(iterator.key()).isEqualTo("key1".getBytes());
89
90 iterator.seekForPrev("key2".getBytes());
91 assertThat(iterator.isValid()).isTrue();
92 assertThat(iterator.key()).isEqualTo("key2".getBytes());
93
94 iterator.seekForPrev("key3".getBytes());
95 assertThat(iterator.isValid()).isTrue();
96 assertThat(iterator.key()).isEqualTo("key2".getBytes());
97 }
98 }
99 }
100 }