@Test
public void executeHappyPath() throws InterruptedException {

  underTest = new BlockingExecutor(delegate, semaphore);
  underTest.execute(runnable);
  InOrder inOrder = inOrder(delegate, semaphore);
  inOrder.verify(semaphore).acquire();
  inOrder.verify(delegate).execute(captor.capture());
  inOrder.verify(semaphore, never()).release();
  captor.getValue().run();
  InOrder inOrder2 = inOrder(runnable, semaphore);
  inOrder2.verify(runnable).run();
  inOrder2.verify(semaphore).release();
}