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.ClassRule; 8 import org.junit.Test; 9 10 import static org.assertj.core.api.Assertions.assertThat; 11 import static org.rocksdb.RateLimiter.*; 12 13 public class RateLimiterTest { 14 15 @ClassRule 16 public static final RocksNativeLibraryResource ROCKS_NATIVE_LIBRARY_RESOURCE = 17 new RocksNativeLibraryResource(); 18 19 @Test bytesPerSecond()20 public void bytesPerSecond() { 21 try(final RateLimiter rateLimiter = 22 new RateLimiter(1000, DEFAULT_REFILL_PERIOD_MICROS, 23 DEFAULT_FAIRNESS, DEFAULT_MODE, DEFAULT_AUTOTUNE)) { 24 assertThat(rateLimiter.getBytesPerSecond()).isGreaterThan(0); 25 rateLimiter.setBytesPerSecond(2000); 26 assertThat(rateLimiter.getBytesPerSecond()).isGreaterThan(0); 27 } 28 } 29 30 @Test getSingleBurstBytes()31 public void getSingleBurstBytes() { 32 try(final RateLimiter rateLimiter = 33 new RateLimiter(1000, DEFAULT_REFILL_PERIOD_MICROS, 34 DEFAULT_FAIRNESS, DEFAULT_MODE, DEFAULT_AUTOTUNE)) { 35 assertThat(rateLimiter.getSingleBurstBytes()).isEqualTo(100); 36 } 37 } 38 39 @Test getTotalBytesThrough()40 public void getTotalBytesThrough() { 41 try(final RateLimiter rateLimiter = 42 new RateLimiter(1000, DEFAULT_REFILL_PERIOD_MICROS, 43 DEFAULT_FAIRNESS, DEFAULT_MODE, DEFAULT_AUTOTUNE)) { 44 assertThat(rateLimiter.getTotalBytesThrough()).isEqualTo(0); 45 } 46 } 47 48 @Test getTotalRequests()49 public void getTotalRequests() { 50 try(final RateLimiter rateLimiter = 51 new RateLimiter(1000, DEFAULT_REFILL_PERIOD_MICROS, 52 DEFAULT_FAIRNESS, DEFAULT_MODE, DEFAULT_AUTOTUNE)) { 53 assertThat(rateLimiter.getTotalRequests()).isEqualTo(0); 54 } 55 } 56 57 @Test autoTune()58 public void autoTune() { 59 try(final RateLimiter rateLimiter = 60 new RateLimiter(1000, DEFAULT_REFILL_PERIOD_MICROS, 61 DEFAULT_FAIRNESS, DEFAULT_MODE, true)) { 62 assertThat(rateLimiter.getBytesPerSecond()).isGreaterThan(0); 63 } 64 } 65 } 66