|
32 | 32 | import java.nio.ByteBuffer; |
33 | 33 | import java.nio.file.Files; |
34 | 34 | import java.nio.file.Path; |
| 35 | +import java.util.List; |
35 | 36 | import java.util.Random; |
36 | 37 | import org.junit.jupiter.api.Test; |
37 | 38 | import org.lmdbjava.Env.AlreadyClosedException; |
@@ -371,8 +372,11 @@ void detectTransactionThreadViolation() { |
371 | 372 | void info() { |
372 | 373 | FileUtil.useTempFile( |
373 | 374 | file -> { |
374 | | - try (Env<ByteBuffer> env = |
375 | | - Env.create().setMaxReaders(4).setMapSize(123_456).setEnvFlags(MDB_NOSUBDIR).open(file)) { |
| 375 | + try (Env<ByteBuffer> env = Env.create() |
| 376 | + .setMaxReaders(4) |
| 377 | + .setMapSize(123_456) |
| 378 | + .setEnvFlags(MDB_NOSUBDIR) |
| 379 | + .open(file)) { |
376 | 380 | final EnvInfo info = env.info(); |
377 | 381 | assertThat(info).isNotNull(); |
378 | 382 | assertThat(info.lastPageNumber).isEqualTo(1L); |
@@ -470,6 +474,10 @@ void setMapSize() { |
470 | 474 | } |
471 | 475 | assertThat(mapFullExThrown).isTrue(); |
472 | 476 |
|
| 477 | + assertThatThrownBy(() -> { |
| 478 | + env.setMapSize(-1, ByteUnit.KIBIBYTES); |
| 479 | + }).isInstanceOf(IllegalArgumentException.class); |
| 480 | + |
473 | 481 | env.setMapSize(1024, ByteUnit.KIBIBYTES); |
474 | 482 |
|
475 | 483 | try (Txn<ByteBuffer> roTxn = env.txnRead()) { |
@@ -528,4 +536,44 @@ void testDefaultOpen() { |
528 | 536 | } |
529 | 537 | }); |
530 | 538 | } |
| 539 | + |
| 540 | + @Test |
| 541 | + void testDefaultOpenNoName1() { |
| 542 | + FileUtil.useTempDir( |
| 543 | + dir -> { |
| 544 | + try (Env<ByteBuffer> env = Env.create().setMapSize(10, ByteUnit.MEBIBYTES).open(dir)) { |
| 545 | + final EnvInfo info = env.info(); |
| 546 | + assertThat(info.maxReaders).isEqualTo(MAX_READERS_DEFAULT); |
| 547 | + final Dbi<ByteBuffer> db = env.openDbi((String) null, MDB_CREATE); |
| 548 | + db.put(bb("abc"), allocateDirect(1)); |
| 549 | + db.put(bb("def"), allocateDirect(1)); |
| 550 | + |
| 551 | + // As this is the unnamed database it returns all keys in the unnamed db |
| 552 | + final List<byte[]> dbiNames = env.getDbiNames(); |
| 553 | + assertThat(dbiNames) |
| 554 | + .hasSize(2); |
| 555 | + assertThat(dbiNames.get(0)) |
| 556 | + .isEqualTo("abc".getBytes(Env.DEFAULT_NAME_CHARSET)); |
| 557 | + } |
| 558 | + }); |
| 559 | + } |
| 560 | + |
| 561 | + @Test |
| 562 | + void testDefaultOpenNoName2() { |
| 563 | + FileUtil.useTempDir( |
| 564 | + dir -> { |
| 565 | + try (Env<ByteBuffer> env = Env.create().setMapSize(10, ByteUnit.MEBIBYTES).open(dir)) { |
| 566 | + final EnvInfo info = env.info(); |
| 567 | + assertThat(info.maxReaders).isEqualTo(MAX_READERS_DEFAULT); |
| 568 | + final Dbi<ByteBuffer> db = env.openDbi((byte[]) null, MDB_CREATE); |
| 569 | + |
| 570 | + // As this is the unnamed database it returns all keys in the unnamed db |
| 571 | + final List<byte[]> dbiNames = env.getDbiNames(); |
| 572 | + assertThat(dbiNames) |
| 573 | + .hasSize(1); |
| 574 | + assertThat(dbiNames.get(0)) |
| 575 | + .isEqualTo(new byte[0]); |
| 576 | + } |
| 577 | + }); |
| 578 | + } |
531 | 579 | } |
0 commit comments