* PS: Test will fail if for some reason we cannot do 50 ops/sec against a hash map. So yeah, pretty unlikely.
*/
public void testQuotaPctUsageCalculation() throws Exception {
File tempDir = TestUtils.createTempDir();
FileBackedCachingStorageEngine quotaStore = new FileBackedCachingStorageEngine("quota-usage-test-store",
tempDir.getAbsolutePath());
InMemoryStorageEngine<ByteArray, byte[], byte[]> inMemoryEngine = new InMemoryStorageEngine<ByteArray, byte[], byte[]>("inMemoryBackingStore");
QuotaLimitStats quotaStats = new QuotaLimitStats(null, 1000);
StatTrackingStore statTrackingStore = new StatTrackingStore(inMemoryEngine, null);
QuotaLimitingStore quotaLimitingStore = new QuotaLimitingStore(statTrackingStore,
statTrackingStore.getStats(),
quotaStats,
quotaStore);
int targetRate = 50;
// provide a quota of 100 gets/sec
quotaStore.put(new ByteArray(QuotaUtils.makeQuotaKey(statTrackingStore.getName(),
QuotaType.GET_THROUGHPUT).getBytes()),
new Versioned<byte[]>("100.0".getBytes()),
null);
long testIntervalMs = 5000;