| // Copyright (c) 2011-present, Facebook, Inc. All rights reserved. |
| // This source code is licensed under both the GPLv2 (found in the |
| // COPYING file in the root directory) and Apache 2.0 License |
| // (found in the LICENSE.Apache file in the root directory). |
| |
| package org.rocksdb; |
| |
| import java.util.Random; |
| |
| import org.junit.ClassRule; |
| import org.junit.Rule; |
| import org.junit.Test; |
| import org.junit.rules.ExpectedException; |
| |
| import static org.assertj.core.api.Assertions.assertThat; |
| |
| public class ReadOptionsTest { |
| |
| @ClassRule |
| public static final RocksMemoryResource rocksMemoryResource = |
| new RocksMemoryResource(); |
| |
| @Rule |
| public ExpectedException exception = ExpectedException.none(); |
| |
| @Test |
| public void verifyChecksum() { |
| try (final ReadOptions opt = new ReadOptions()) { |
| final Random rand = new Random(); |
| final boolean boolValue = rand.nextBoolean(); |
| opt.setVerifyChecksums(boolValue); |
| assertThat(opt.verifyChecksums()).isEqualTo(boolValue); |
| } |
| } |
| |
| @Test |
| public void fillCache() { |
| try (final ReadOptions opt = new ReadOptions()) { |
| final Random rand = new Random(); |
| final boolean boolValue = rand.nextBoolean(); |
| opt.setFillCache(boolValue); |
| assertThat(opt.fillCache()).isEqualTo(boolValue); |
| } |
| } |
| |
| @Test |
| public void tailing() { |
| try (final ReadOptions opt = new ReadOptions()) { |
| final Random rand = new Random(); |
| final boolean boolValue = rand.nextBoolean(); |
| opt.setTailing(boolValue); |
| assertThat(opt.tailing()).isEqualTo(boolValue); |
| } |
| } |
| |
| @Test |
| public void snapshot() { |
| try (final ReadOptions opt = new ReadOptions()) { |
| opt.setSnapshot(null); |
| assertThat(opt.snapshot()).isNull(); |
| } |
| } |
| |
| @Test |
| public void readTier() { |
| try (final ReadOptions opt = new ReadOptions()) { |
| opt.setReadTier(ReadTier.BLOCK_CACHE_TIER); |
| assertThat(opt.readTier()).isEqualTo(ReadTier.BLOCK_CACHE_TIER); |
| } |
| } |
| |
| @Test |
| public void managed() { |
| try (final ReadOptions opt = new ReadOptions()) { |
| opt.setManaged(true); |
| assertThat(opt.managed()).isTrue(); |
| } |
| } |
| |
| @Test |
| public void totalOrderSeek() { |
| try (final ReadOptions opt = new ReadOptions()) { |
| opt.setTotalOrderSeek(true); |
| assertThat(opt.totalOrderSeek()).isTrue(); |
| } |
| } |
| |
| @Test |
| public void prefixSameAsStart() { |
| try (final ReadOptions opt = new ReadOptions()) { |
| opt.setPrefixSameAsStart(true); |
| assertThat(opt.prefixSameAsStart()).isTrue(); |
| } |
| } |
| |
| @Test |
| public void pinData() { |
| try (final ReadOptions opt = new ReadOptions()) { |
| opt.setPinData(true); |
| assertThat(opt.pinData()).isTrue(); |
| } |
| } |
| |
| @Test |
| public void backgroundPurgeOnIteratorCleanup() { |
| try (final ReadOptions opt = new ReadOptions()) { |
| opt.setBackgroundPurgeOnIteratorCleanup(true); |
| assertThat(opt.backgroundPurgeOnIteratorCleanup()).isTrue(); |
| } |
| } |
| |
| @Test |
| public void readaheadSize() { |
| try (final ReadOptions opt = new ReadOptions()) { |
| final Random rand = new Random(); |
| final long longValue = rand.nextLong(); |
| opt.setReadaheadSize(longValue); |
| assertThat(opt.readaheadSize()).isEqualTo(longValue); |
| } |
| } |
| |
| @Test |
| public void ignoreRangeDeletions() { |
| try (final ReadOptions opt = new ReadOptions()) { |
| opt.setIgnoreRangeDeletions(true); |
| assertThat(opt.ignoreRangeDeletions()).isTrue(); |
| } |
| } |
| |
| @Test |
| public void failSetVerifyChecksumUninitialized() { |
| try (final ReadOptions readOptions = |
| setupUninitializedReadOptions(exception)) { |
| readOptions.setVerifyChecksums(true); |
| } |
| } |
| |
| @Test |
| public void failVerifyChecksumUninitialized() { |
| try (final ReadOptions readOptions = |
| setupUninitializedReadOptions(exception)) { |
| readOptions.verifyChecksums(); |
| } |
| } |
| |
| @Test |
| public void failSetFillCacheUninitialized() { |
| try (final ReadOptions readOptions = |
| setupUninitializedReadOptions(exception)) { |
| readOptions.setFillCache(true); |
| } |
| } |
| |
| @Test |
| public void failFillCacheUninitialized() { |
| try (final ReadOptions readOptions = |
| setupUninitializedReadOptions(exception)) { |
| readOptions.fillCache(); |
| } |
| } |
| |
| @Test |
| public void failSetTailingUninitialized() { |
| try (final ReadOptions readOptions = |
| setupUninitializedReadOptions(exception)) { |
| readOptions.setTailing(true); |
| } |
| } |
| |
| @Test |
| public void failTailingUninitialized() { |
| try (final ReadOptions readOptions = |
| setupUninitializedReadOptions(exception)) { |
| readOptions.tailing(); |
| } |
| } |
| |
| @Test |
| public void failSetSnapshotUninitialized() { |
| try (final ReadOptions readOptions = |
| setupUninitializedReadOptions(exception)) { |
| readOptions.setSnapshot(null); |
| } |
| } |
| |
| @Test |
| public void failSnapshotUninitialized() { |
| try (final ReadOptions readOptions = |
| setupUninitializedReadOptions(exception)) { |
| readOptions.snapshot(); |
| } |
| } |
| |
| private ReadOptions setupUninitializedReadOptions( |
| ExpectedException exception) { |
| final ReadOptions readOptions = new ReadOptions(); |
| readOptions.close(); |
| exception.expect(AssertionError.class); |
| return readOptions; |
| } |
| } |