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.MutableColumnFamilyOptions.MutableColumnFamilyOptionsBuilder; 9 10 import java.util.NoSuchElementException; 11 12 import static org.assertj.core.api.Assertions.assertThat; 13 14 public class MutableColumnFamilyOptionsTest { 15 16 @Test builder()17 public void builder() { 18 final MutableColumnFamilyOptionsBuilder builder = 19 MutableColumnFamilyOptions.builder(); 20 builder 21 .setWriteBufferSize(10) 22 .setInplaceUpdateNumLocks(5) 23 .setDisableAutoCompactions(true) 24 .setParanoidFileChecks(true); 25 26 assertThat(builder.writeBufferSize()).isEqualTo(10); 27 assertThat(builder.inplaceUpdateNumLocks()).isEqualTo(5); 28 assertThat(builder.disableAutoCompactions()).isEqualTo(true); 29 assertThat(builder.paranoidFileChecks()).isEqualTo(true); 30 } 31 32 @Test(expected = NoSuchElementException.class) builder_getWhenNotSet()33 public void builder_getWhenNotSet() { 34 final MutableColumnFamilyOptionsBuilder builder = 35 MutableColumnFamilyOptions.builder(); 36 37 builder.writeBufferSize(); 38 } 39 40 @Test builder_build()41 public void builder_build() { 42 final MutableColumnFamilyOptions options = MutableColumnFamilyOptions 43 .builder() 44 .setWriteBufferSize(10) 45 .setParanoidFileChecks(true) 46 .build(); 47 48 assertThat(options.getKeys().length).isEqualTo(2); 49 assertThat(options.getValues().length).isEqualTo(2); 50 assertThat(options.getKeys()[0]) 51 .isEqualTo( 52 MutableColumnFamilyOptions.MemtableOption.write_buffer_size.name()); 53 assertThat(options.getValues()[0]).isEqualTo("10"); 54 assertThat(options.getKeys()[1]) 55 .isEqualTo( 56 MutableColumnFamilyOptions.MiscOption.paranoid_file_checks.name()); 57 assertThat(options.getValues()[1]).isEqualTo("true"); 58 } 59 60 @Test mutableColumnFamilyOptions_toString()61 public void mutableColumnFamilyOptions_toString() { 62 final String str = MutableColumnFamilyOptions 63 .builder() 64 .setWriteBufferSize(10) 65 .setInplaceUpdateNumLocks(5) 66 .setDisableAutoCompactions(true) 67 .setParanoidFileChecks(true) 68 .build() 69 .toString(); 70 71 assertThat(str).isEqualTo("write_buffer_size=10;inplace_update_num_locks=5;" 72 + "disable_auto_compactions=true;paranoid_file_checks=true"); 73 } 74 75 @Test mutableColumnFamilyOptions_parse()76 public void mutableColumnFamilyOptions_parse() { 77 final String str = "write_buffer_size=10;inplace_update_num_locks=5;" 78 + "disable_auto_compactions=true;paranoid_file_checks=true"; 79 80 final MutableColumnFamilyOptionsBuilder builder = 81 MutableColumnFamilyOptions.parse(str); 82 83 assertThat(builder.writeBufferSize()).isEqualTo(10); 84 assertThat(builder.inplaceUpdateNumLocks()).isEqualTo(5); 85 assertThat(builder.disableAutoCompactions()).isEqualTo(true); 86 assertThat(builder.paranoidFileChecks()).isEqualTo(true); 87 } 88 } 89