private void doTestTrigger(List<Runnable> triggerRunners) {
    blobStore.resumeCompactionCalled = false;
    StorageManagerMetrics metrics = new StorageManagerMetrics(new MetricRegistry());
    config = new StoreConfig(new VerifiableProperties(properties));
    compactionManager = new CompactionManager(MOUNT_PATH, config, Collections.singleton(blobStore), metrics, time);
    compactionManager.enable();
    if (config.storeCompactionTriggers[0].isEmpty()) {
      assertNull("Compaction thread should not be created",
          TestUtils.getThreadByThisName(CompactionManager.THREAD_NAME_PREFIX));
    } else {
      assertNotNull("Compaction thread should be created",
          TestUtils.getThreadByThisName(CompactionManager.THREAD_NAME_PREFIX));
    }
    for (Runnable triggerRunner : triggerRunners) {
      blobStore.compactCallsCountdown = new CountDownLatch(1);
      blobStore.compactCalled = false;
      triggerRunner.run();
    }
    compactionManager.disable();
    compactionManager.awaitTermination();
  }
Does the compaction triggers test by running each trigger in {@code triggerRunners} after resetting state.
@param triggerRunners the code that triggers compaction.
ambry-store/src/test/java/com/github/ambry/store/CompactionManagerTest.java