|
43 | 43 | import org.junit.Test; |
44 | 44 | import org.junit.rules.TemporaryFolder; |
45 | 45 | import org.lmdbjava.Dbi.DbFullException; |
46 | | -import org.lmdbjava.Dbi.KeyExistsException; |
47 | 46 | import static org.lmdbjava.DbiFlags.MDB_CREATE; |
48 | 47 | import static org.lmdbjava.DbiFlags.MDB_DUPSORT; |
49 | 48 | import org.lmdbjava.Env.MapFullException; |
50 | 49 | import static org.lmdbjava.Env.create; |
51 | 50 | import static org.lmdbjava.EnvFlags.MDB_NOSUBDIR; |
52 | 51 | import static org.lmdbjava.GetOp.MDB_SET_KEY; |
53 | 52 | import org.lmdbjava.LmdbNativeException.ConstantDerviedException; |
| 53 | +import static org.lmdbjava.PutFlags.MDB_NODUPDATA; |
54 | 54 | import static org.lmdbjava.PutFlags.MDB_NOOVERWRITE; |
55 | 55 | import static org.lmdbjava.TestUtils.DB_1; |
56 | 56 | import static org.lmdbjava.TestUtils.ba; |
@@ -120,20 +120,29 @@ public void getName() { |
120 | 120 | assertThat(db.getName(), is(DB_1)); |
121 | 121 | } |
122 | 122 |
|
123 | | - @Test(expected = KeyExistsException.class) |
124 | | - public void keyExistsException() { |
| 123 | + @Test |
| 124 | + public void returnValueForNoOverwrite() { |
125 | 125 | final Dbi<ByteBuffer> db = env.openDbi(DB_1, MDB_CREATE); |
126 | 126 | try (Txn<ByteBuffer> txn = env.txnWrite()) { |
127 | | - db.put(txn, bb(5), bb(6), MDB_NOOVERWRITE); // ok |
128 | | - try { |
129 | | - db.put(txn, bb(5), bb(8), MDB_NOOVERWRITE); // fails, but gets exist val |
130 | | - } catch (final KeyExistsException ke) { |
131 | | - assertThat(txn.val().getInt(0), is(6)); |
132 | | - throw ke; |
133 | | - } |
| 127 | + // ok |
| 128 | + assertThat(db.put(txn, bb(5), bb(6), MDB_NOOVERWRITE), is(true)); |
| 129 | + // fails, but gets exist val |
| 130 | + assertThat(db.put(txn, bb(5), bb(8), MDB_NOOVERWRITE), is(false)); |
| 131 | + assertThat(txn.val().getInt(0), is(6)); |
134 | 132 | } |
135 | 133 | } |
136 | 134 |
|
| 135 | + @Test |
| 136 | + public void returnValueForNoDupData() { |
| 137 | + final Dbi<ByteBuffer> db = env.openDbi(DB_1, MDB_CREATE, MDB_DUPSORT); |
| 138 | + try (Txn<ByteBuffer> txn = env.txnWrite()) { |
| 139 | + // ok |
| 140 | + assertThat(db.put(txn, bb(5), bb(6), MDB_NODUPDATA), is(true)); |
| 141 | + assertThat(db.put(txn, bb(5), bb(7), MDB_NODUPDATA), is(true)); |
| 142 | + assertThat(db.put(txn, bb(5), bb(6), MDB_NODUPDATA), is(false)); |
| 143 | + } |
| 144 | + } |
| 145 | + |
137 | 146 | @Test |
138 | 147 | public void putAbortGet() { |
139 | 148 | final Dbi<ByteBuffer> db = env.openDbi(DB_1, MDB_CREATE); |
|
0 commit comments