@Test
public void testExecutionMultipleTimes() {

    TestHystrixCommand<Integer> command = getCommand(ExecutionIsolationStrategy.THREAD, AbstractTestHystrixCommand.ExecutionResult.SUCCESS);
    assertFalse(command.isExecutionComplete());
    // first should succeed
    assertEquals(FlexibleTestHystrixCommand.EXECUTE_VALUE, command.execute());
    assertTrue(command.isExecutionComplete());
    assertTrue(command.isExecutedInThread());
    assertTrue(command.getExecutionTimeInMilliseconds() > -1);
    assertTrue(command.isSuccessfulExecution());
    assertNull(command.getExecutionException());
    try {
        // second should fail
        command.execute();
        fail("we should not allow this ... it breaks the state of request logs");
    } catch (HystrixRuntimeException e) {
        e.printStackTrace();
        // we want to get here
    }
    assertEquals(0, command.getBuilder().metrics.getCurrentConcurrentExecutionCount());
    assertSaneHystrixRequestLog(1);
    assertCommandExecutionEvents(command, HystrixEventType.SUCCESS);
}