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 WriteOptionsTest {
16 
17   @ClassRule
18   public static final RocksNativeLibraryResource ROCKS_NATIVE_LIBRARY_RESOURCE =
19       new RocksNativeLibraryResource();
20 
21   public static final Random rand = PlatformRandomHelper.
22           getPlatformSpecificRandomFactory();
23 
24   @Test
writeOptions()25   public void writeOptions() {
26     try (final WriteOptions writeOptions = new WriteOptions()) {
27 
28       writeOptions.setSync(true);
29       assertThat(writeOptions.sync()).isTrue();
30       writeOptions.setSync(false);
31       assertThat(writeOptions.sync()).isFalse();
32 
33       writeOptions.setDisableWAL(true);
34       assertThat(writeOptions.disableWAL()).isTrue();
35       writeOptions.setDisableWAL(false);
36       assertThat(writeOptions.disableWAL()).isFalse();
37 
38 
39       writeOptions.setIgnoreMissingColumnFamilies(true);
40       assertThat(writeOptions.ignoreMissingColumnFamilies()).isTrue();
41       writeOptions.setIgnoreMissingColumnFamilies(false);
42       assertThat(writeOptions.ignoreMissingColumnFamilies()).isFalse();
43 
44       writeOptions.setNoSlowdown(true);
45       assertThat(writeOptions.noSlowdown()).isTrue();
46       writeOptions.setNoSlowdown(false);
47       assertThat(writeOptions.noSlowdown()).isFalse();
48 
49       writeOptions.setLowPri(true);
50       assertThat(writeOptions.lowPri()).isTrue();
51       writeOptions.setLowPri(false);
52       assertThat(writeOptions.lowPri()).isFalse();
53     }
54   }
55 
56   @Test
copyConstructor()57   public void copyConstructor() {
58     WriteOptions origOpts = new WriteOptions();
59     origOpts.setDisableWAL(rand.nextBoolean());
60     origOpts.setIgnoreMissingColumnFamilies(rand.nextBoolean());
61     origOpts.setSync(rand.nextBoolean());
62     WriteOptions copyOpts = new WriteOptions(origOpts);
63     assertThat(origOpts.disableWAL()).isEqualTo(copyOpts.disableWAL());
64     assertThat(origOpts.ignoreMissingColumnFamilies()).isEqualTo(
65             copyOpts.ignoreMissingColumnFamilies());
66     assertThat(origOpts.sync()).isEqualTo(copyOpts.sync());
67   }
68 
69 }
70