@Test
public void propagatesIOException() {

  when(runState.state()).thenReturn(State.RUNNING);
  when(runState.counter()).thenReturn(COUNTER);
  var cause = new IOException("foo!");
  doAnswer(a -> sneakyThrow(cause)).when(delegate).transitionInto(any(), any());
  exception.expect(RuntimeException.class);
  exception.expectCause(is(cause));
  sut.transitionInto(runState, eventRouter);
}