@Test
public void testShortCircuitFallbackCounter() {

    TestCircuitBreaker circuitBreaker = new TestCircuitBreaker().setForceShortCircuit(true);
    KnownFailureTestCommandWithFallback command1 = new KnownFailureTestCommandWithFallback(circuitBreaker);
    command1.execute();
    KnownFailureTestCommandWithFallback command2 = new KnownFailureTestCommandWithFallback(circuitBreaker);
    command2.execute();
    // will be -1 because it never attempted execution
    assertTrue(command1.getExecutionTimeInMilliseconds() == -1);
    assertTrue(command1.isResponseShortCircuited());
    assertFalse(command1.isResponseTimedOut());
    assertNotNull(command1.getExecutionException());
    assertCommandExecutionEvents(command1, HystrixEventType.SHORT_CIRCUITED, HystrixEventType.FALLBACK_SUCCESS);
    assertCommandExecutionEvents(command2, HystrixEventType.SHORT_CIRCUITED, HystrixEventType.FALLBACK_SUCCESS);
    assertEquals(0, circuitBreaker.metrics.getCurrentConcurrentExecutionCount());
    assertSaneHystrixRequestLog(2);
}