@Test
public void testSemaphoreExecutionWithTimeout() {

    TestHystrixCommand<Boolean> cmd = new InterruptibleCommand(new TestCircuitBreaker(), false);
    System.out.println("Starting command");
    long timeMillis = System.currentTimeMillis();
    try {
        cmd.execute();
        fail("Should throw");
    } catch (Throwable t) {
        assertNotNull(cmd.getExecutionException());
        System.out.println("Unsuccessful Execution took : " + (System.currentTimeMillis() - timeMillis));
        assertCommandExecutionEvents(cmd, HystrixEventType.TIMEOUT, HystrixEventType.FALLBACK_MISSING);
        assertEquals(0, cmd.metrics.getCurrentConcurrentExecutionCount());
        assertSaneHystrixRequestLog(1);
    }
}