content: // 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 org.junit.ClassRule;
  import org.junit.Rule;
  import org.junit.Test;
  import org.junit.rules.TemporaryFolder;
  
  import static org.assertj.core.api.Assertions.assertThat;
  
  public class FlushTest {
  
    @ClassRule
    public static final RocksMemoryResource rocksMemoryResource =
        new RocksMemoryResource();
  
    @Rule
    public TemporaryFolder dbFolder = new TemporaryFolder();
  
    @Test
    public void flush() throws RocksDBException {
      try(final Options options = new Options()
          .setCreateIfMissing(true)
          .setMaxWriteBufferNumber(10)
          .setMinWriteBufferNumberToMerge(10);
          final WriteOptions wOpt = new WriteOptions()
              .setDisableWAL(true);
          final FlushOptions flushOptions = new FlushOptions()
              .setWaitForFlush(true)) {
        assertThat(flushOptions.waitForFlush()).isTrue();
  
        try(final RocksDB db = RocksDB.open(options,
            dbFolder.getRoot().getAbsolutePath())) {
          db.put(wOpt, "key1".getBytes(), "value1".getBytes());
          db.put(wOpt, "key2".getBytes(), "value2".getBytes());
          db.put(wOpt, "key3".getBytes(), "value3".getBytes());
          db.put(wOpt, "key4".getBytes(), "value4".getBytes());
          assertThat(db.getProperty("rocksdb.num-entries-active-mem-table"))
              .isEqualTo("4");
          db.flush(flushOptions);
          assertThat(db.getProperty("rocksdb.num-entries-active-mem-table"))
              .isEqualTo("0");
        }
      }
    }
  }
  