RemoteTable table = new RemoteTable(tableId, readFn, writeFn, readRateLimiter, writeRateLimiter, rateLimitingExecutors.get(tableId),
private <K, V, T extends RemoteTable<K, V>> T getTable(String tableId, TableReadFunction<K, V> readFn, TableWriteFunction<K, V> writeFn, ExecutorService cbExecutor, boolean retry) { TableRateLimiter<K, V> readRateLimiter = mock(TableRateLimiter.class); TableRateLimiter<K, V> writeRateLimiter = mock(TableRateLimiter.class); TableRetryPolicy readPolicy = retry ? new TableRetryPolicy() : null; TableRetryPolicy writePolicy = retry ? new TableRetryPolicy() : null; ExecutorService rateLimitingExecutor = Executors.newSingleThreadExecutor(); ScheduledExecutorService retryExecutor = Executors.newSingleThreadScheduledExecutor(); RemoteTable<K, V> table = new RemoteTable(tableId, readFn, writeFn, readRateLimiter, writeRateLimiter, rateLimitingExecutor, readPolicy, writePolicy, retryExecutor, cbExecutor); table.init(getMockContext()); return (T) table; }
doReturn(CompletableFuture.completedFuture(null)).when(writeFn).deleteAsync(any()); final RemoteTable<String, String> remoteTable = new RemoteTable<>( tableId, readFn, writeFn, rateLimitHelper, rateLimitHelper, Executors.newSingleThreadExecutor(),
TableReadFunction<String, String> readFn = mock(TableReadFunction.class); TableWriteFunction<String, String> writeFn = mock(TableWriteFunction.class); final RemoteTable<String, String> remoteTable = new RemoteTable<>( tableId + "-remote", readFn, writeFn, rateLimitHelper, rateLimitHelper, Executors.newSingleThreadExecutor(),