@Test
public void shouldReportExceptions() 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);
  try {
    loggingUpdate.update("log this plx", 13);
  } catch (Exception e) {
    // ignore
  }
  //noinspection unchecked
  assertThat(
      logger.updateErrors,
      contains(CapturingLogger.UpdateErrorArgs.create("log this plx", 13, expected)));
}