@Test(expected = IllegalArgumentException.class) public void testSpecifyBothRateAndRateLimiter() { RemoteTableDescriptor desc = new RemoteTableDescriptor("1"); desc.withReadFunction(createMockTableReadFunction()); desc.withReadRateLimit(100); desc.withRateLimiter(createMockRateLimiter(), null, null); desc.toConfig(new MapConfig()); }
private void doTestSerialize(RateLimiter rateLimiter, TableRateLimiter.CreditFunction readCredFn, TableRateLimiter.CreditFunction writeCredFn) { String tableId = "1"; RemoteTableDescriptor desc = new RemoteTableDescriptor(tableId) .withReadFunction(createMockTableReadFunction()) .withWriteFunction(createMockTableWriteFunction()); if (rateLimiter != null) { desc.withRateLimiter(rateLimiter, readCredFn, writeCredFn); } else { desc.withReadRateLimit(100); desc.withWriteRateLimit(200); } Map<String, String> tableConfig = desc.toConfig(new MapConfig()); assertExists(RemoteTableDescriptor.RATE_LIMITER, tableId, tableConfig); Assert.assertEquals(readCredFn != null, tableConfig.containsKey(JavaTableConfig.buildKey(tableId, RemoteTableDescriptor.READ_CREDIT_FN))); Assert.assertEquals(writeCredFn != null, tableConfig.containsKey(JavaTableConfig.buildKey(tableId, RemoteTableDescriptor.WRITE_CREDIT_FN))); }
desc.withRateLimiter(rateLimiter, new CountingCreditFunction(), new CountingCreditFunction());