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 6 package org.rocksdb; 7 8 import org.junit.ClassRule; 9 import org.junit.Test; 10 11 import java.util.Random; 12 13 import static org.assertj.core.api.Assertions.assertThat; 14 15 public class IngestExternalFileOptionsTest { 16 @ClassRule 17 public static final RocksNativeLibraryResource ROCKS_NATIVE_LIBRARY_RESOURCE 18 = new RocksNativeLibraryResource(); 19 20 public static final Random rand = 21 PlatformRandomHelper.getPlatformSpecificRandomFactory(); 22 23 @Test createExternalSstFileInfoWithoutParameters()24 public void createExternalSstFileInfoWithoutParameters() { 25 try (final IngestExternalFileOptions options = 26 new IngestExternalFileOptions()) { 27 assertThat(options).isNotNull(); 28 } 29 } 30 31 @Test createExternalSstFileInfoWithParameters()32 public void createExternalSstFileInfoWithParameters() { 33 final boolean moveFiles = rand.nextBoolean(); 34 final boolean snapshotConsistency = rand.nextBoolean(); 35 final boolean allowGlobalSeqNo = rand.nextBoolean(); 36 final boolean allowBlockingFlush = rand.nextBoolean(); 37 try (final IngestExternalFileOptions options = 38 new IngestExternalFileOptions(moveFiles, snapshotConsistency, 39 allowGlobalSeqNo, allowBlockingFlush)) { 40 assertThat(options).isNotNull(); 41 assertThat(options.moveFiles()).isEqualTo(moveFiles); 42 assertThat(options.snapshotConsistency()).isEqualTo(snapshotConsistency); 43 assertThat(options.allowGlobalSeqNo()).isEqualTo(allowGlobalSeqNo); 44 assertThat(options.allowBlockingFlush()).isEqualTo(allowBlockingFlush); 45 } 46 } 47 48 @Test moveFiles()49 public void moveFiles() { 50 try (final IngestExternalFileOptions options = 51 new IngestExternalFileOptions()) { 52 final boolean moveFiles = rand.nextBoolean(); 53 options.setMoveFiles(moveFiles); 54 assertThat(options.moveFiles()).isEqualTo(moveFiles); 55 } 56 } 57 58 @Test snapshotConsistency()59 public void snapshotConsistency() { 60 try (final IngestExternalFileOptions options = 61 new IngestExternalFileOptions()) { 62 final boolean snapshotConsistency = rand.nextBoolean(); 63 options.setSnapshotConsistency(snapshotConsistency); 64 assertThat(options.snapshotConsistency()).isEqualTo(snapshotConsistency); 65 } 66 } 67 68 @Test allowGlobalSeqNo()69 public void allowGlobalSeqNo() { 70 try (final IngestExternalFileOptions options = 71 new IngestExternalFileOptions()) { 72 final boolean allowGlobalSeqNo = rand.nextBoolean(); 73 options.setAllowGlobalSeqNo(allowGlobalSeqNo); 74 assertThat(options.allowGlobalSeqNo()).isEqualTo(allowGlobalSeqNo); 75 } 76 } 77 78 @Test allowBlockingFlush()79 public void allowBlockingFlush() { 80 try (final IngestExternalFileOptions options = 81 new IngestExternalFileOptions()) { 82 final boolean allowBlockingFlush = rand.nextBoolean(); 83 options.setAllowBlockingFlush(allowBlockingFlush); 84 assertThat(options.allowBlockingFlush()).isEqualTo(allowBlockingFlush); 85 } 86 } 87 88 @Test ingestBehind()89 public void ingestBehind() { 90 try (final IngestExternalFileOptions options = 91 new IngestExternalFileOptions()) { 92 assertThat(options.ingestBehind()).isFalse(); 93 options.setIngestBehind(true); 94 assertThat(options.ingestBehind()).isTrue(); 95 } 96 } 97 98 @Test writeGlobalSeqno()99 public void writeGlobalSeqno() { 100 try (final IngestExternalFileOptions options = 101 new IngestExternalFileOptions()) { 102 assertThat(options.writeGlobalSeqno()).isTrue(); 103 options.setWriteGlobalSeqno(false); 104 assertThat(options.writeGlobalSeqno()).isFalse(); 105 } 106 } 107 } 108