@Test
public void testExecutionFailureWithFallbackImplementedButDisabled() {

    TestHystrixCommand<Boolean> commandEnabled = new KnownFailureTestCommandWithFallback(new TestCircuitBreaker(), true);
    try {
        assertEquals(false, commandEnabled.execute());
    } catch (Exception e) {
        e.printStackTrace();
        fail("We should have received a response from the fallback.");
    }
    TestHystrixCommand<Boolean> commandDisabled = new KnownFailureTestCommandWithFallback(new TestCircuitBreaker(), false);
    try {
        assertEquals(false, commandDisabled.execute());
        fail("expect exception thrown");
    } catch (Exception e) {
        // expected
    }
    assertEquals("we failed with a simulated issue", commandDisabled.getFailedExecutionException().getMessage());
    assertTrue(commandDisabled.isFailedExecution());
    assertCommandExecutionEvents(commandEnabled, HystrixEventType.FAILURE, HystrixEventType.FALLBACK_SUCCESS);
    assertCommandExecutionEvents(commandDisabled, HystrixEventType.FAILURE);
    assertNotNull(commandDisabled.getExecutionException());
    assertEquals(0, commandDisabled.getBuilder().metrics.getCurrentConcurrentExecutionCount());
    assertSaneHystrixRequestLog(2);
}