@Test
public void execute_multipleRunnablesIndependent_executionSuccessful() throws Exception {

    // Arrange
    final Semaphore semaphore = new Semaphore(-1);
    Runnable runnable1 = new Runnable() {
        @Override
        public void run() {
            semaphore.release();
        }
    };
    Runnable runnable2 = new Runnable() {
        @Override
        public void run() {
            semaphore.release();
        }
    };
    // Act
    SUT.post(runnable1);
    SUT.post(runnable2);
    // Assert
    semaphore.acquireUninterruptibly();
}