@Test
public void shouldPropagateExceptions() throws Exception {

  final RuntimeException expected = new RuntimeException("expected");
  loggingUpdate =
      new LoggingUpdate<>(
          new Update<String, Integer, Boolean>() {
            @Nonnull
            @Override
            public Next<String, Boolean> update(String model, Integer event) {
              throw expected;
            }
          },
          logger);
  assertThatThrownBy(() -> loggingUpdate.update("hi", 7)).isEqualTo(expected);
}