@SuppressWarnings("FutureReturnValueIgnored")
  public void start() {
    budgetRefreshExecutor.submit(this::subscribeToRefreshBudget);
  }
@Test
  public void testScheduledBudgetRefresh_doesNotRunWhenBudgetRefreshPaused()
      throws InterruptedException {
    CountDownLatch redistributeBudgetLatch = new CountDownLatch(1);
    Runnable redistributeBudget = redistributeBudgetLatch::countDown;
    GetWorkBudgetRefresher budgetRefresher = createBudgetRefresher(true, redistributeBudget);
    budgetRefresher.start();
    boolean redistributeBudgetRan =
        redistributeBudgetLatch.await(
            GetWorkBudgetRefresher.SCHEDULED_BUDGET_REFRESH_MILLIS + WAIT_BUFFER,
            TimeUnit.MILLISECONDS);
    // Make sure that redistributeBudgetLatch.countDown() is never called.
    assertThat(redistributeBudgetLatch.getCount()).isEqualTo(1);
    assertFalse(redistributeBudgetRan);
  }