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 package org.rocksdb; 6 7 import org.junit.Test; 8 import org.rocksdb.MutableDBOptions.MutableDBOptionsBuilder; 9 10 import java.util.NoSuchElementException; 11 12 import static org.assertj.core.api.Assertions.assertThat; 13 14 public class MutableDBOptionsTest { 15 16 @Test builder()17 public void builder() { 18 final MutableDBOptionsBuilder builder = 19 MutableDBOptions.builder(); 20 builder 21 .setBytesPerSync(1024 * 1024 * 7) 22 .setMaxBackgroundJobs(5) 23 .setAvoidFlushDuringShutdown(false); 24 25 assertThat(builder.bytesPerSync()).isEqualTo(1024 * 1024 * 7); 26 assertThat(builder.maxBackgroundJobs()).isEqualTo(5); 27 assertThat(builder.avoidFlushDuringShutdown()).isEqualTo(false); 28 } 29 30 @Test(expected = NoSuchElementException.class) builder_getWhenNotSet()31 public void builder_getWhenNotSet() { 32 final MutableDBOptionsBuilder builder = 33 MutableDBOptions.builder(); 34 35 builder.bytesPerSync(); 36 } 37 38 @Test builder_build()39 public void builder_build() { 40 final MutableDBOptions options = MutableDBOptions 41 .builder() 42 .setBytesPerSync(1024 * 1024 * 7) 43 .setMaxBackgroundJobs(5) 44 .build(); 45 46 assertThat(options.getKeys().length).isEqualTo(2); 47 assertThat(options.getValues().length).isEqualTo(2); 48 assertThat(options.getKeys()[0]) 49 .isEqualTo( 50 MutableDBOptions.DBOption.bytes_per_sync.name()); 51 assertThat(options.getValues()[0]).isEqualTo("7340032"); 52 assertThat(options.getKeys()[1]) 53 .isEqualTo( 54 MutableDBOptions.DBOption.max_background_jobs.name()); 55 assertThat(options.getValues()[1]).isEqualTo("5"); 56 } 57 58 @Test mutableDBOptions_toString()59 public void mutableDBOptions_toString() { 60 final String str = MutableDBOptions 61 .builder() 62 .setMaxOpenFiles(99) 63 .setDelayedWriteRate(789) 64 .setAvoidFlushDuringShutdown(true) 65 .setStrictBytesPerSync(true) 66 .build() 67 .toString(); 68 69 assertThat(str).isEqualTo("max_open_files=99;delayed_write_rate=789;" 70 + "avoid_flush_during_shutdown=true;strict_bytes_per_sync=true"); 71 } 72 73 @Test mutableDBOptions_parse()74 public void mutableDBOptions_parse() { 75 final String str = "max_open_files=99;delayed_write_rate=789;" 76 + "avoid_flush_during_shutdown=true"; 77 78 final MutableDBOptionsBuilder builder = 79 MutableDBOptions.parse(str); 80 81 assertThat(builder.maxOpenFiles()).isEqualTo(99); 82 assertThat(builder.delayedWriteRate()).isEqualTo(789); 83 assertThat(builder.avoidFlushDuringShutdown()).isEqualTo(true); 84 } 85 } 86