@Override
  public ParSeqBasedCompletionStage<Void> acceptEitherAsync(CompletionStage<? extends T> other,
      Consumer<? super T> action, Executor executor)
  {
    return produceEitherStageAsync("applyEitherAsync", other, (t) -> {
      action.accept(t);
      return null;
    }, executor);
  }
@Test
  public void testAcceptEitherAsync() throws Exception
  {
    Consumer<String> consumer = mock(Consumer.class);
    CountDownLatch waitLatch = new CountDownLatch(1);

    CompletionStage<String> completionStage = createTestStage(TESTVALUE1);
    CompletionStage<String> completionStage2 = createTestStage(TESTVALUE2);
    finish(completionStage.acceptEitherAsync(completionStage2, r -> {
      assertEquals(THREAD_NAME_VALUE, Thread.currentThread().getName());
      waitLatch.countDown();
    }, _mockExecutor));

    assertTrue(waitLatch.await(1000, TimeUnit.MILLISECONDS));
  }