Jira ticket as been filed for this: GEODE-5639: Replace usage of CatchException with AssertJ and remove CatchException dependency
On Thu, Aug 23, 2018 at 4:03 PM, Kirk Lund <kl...@apache.org> wrote: > I goofed on #1. We should be using* org.assertj.core.api.**Assertions* > directly, not *AssertionsForClassTypes*. > > 1) Basic assertion about an expected exception > > Use: org.assertj.core.api.Assertions.assertThatThrownBy > > Example from JdbcWriterTest: > > assertThatThrownBy(() -> writer.beforeUpdate(entryEvent)) > .isInstanceOf(IllegalArgumentException.class); > > I'll fix JdbcWriterTest's imports. I copied the import to the email > without looking closely at it. > > On Thu, Aug 23, 2018 at 4:01 PM, Kirk Lund <kl...@apache.org> wrote: > >> We have a small number of tests using >> com.googlecode.catchexception.CatchException. >> This project isn't very active and AssertJ provides better support for >> testing expected exceptions and throwables. Most Geode developers are >> already using AssertJ for expected exceptions. >> >> I propose we update the few tests using CatchException to instead use >> AssertJ and then remove our testing dependency on CatchException. >> >> The recommended ways of handling expected exception testing would then >> involve using following AssertJ APIs: >> >> 1) Basic assertion about an expected exception >> >> Use: org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy >> >> Example from JdbcWriterTest: >> >> assertThatThrownBy(() -> writer.beforeUpdate(entryEvent)) >> .isInstanceOf(IllegalArgumentException.class); >> >> 2) Complex assertion about an expected exception (potentially with many >> nested causes with messages that we want to validate as well) >> >> Use: org.assertj.core.api.Assertions.catchThrowable >> >> Example from DeltaPropagationFailureRegressionTest: >> >> Throwable thrown = server1.invoke(() -> catchThrowable(() -> >> putDelta(FROM_DELTA))); >> >> assertThat(thrown).isInstanceOf(DeltaSerializationException.class) >> .hasMessageContaining("deserializing delta >> bytes").hasCauseInstanceOf(EOFException.class); >> >> 3) Simple assertion that an invocation should not thrown (probably used >> in a regression test) >> >> Use: org.assertj.core.api.Assertions.assertThatCode >> >> Example from RegisterInterestDistributedTest: >> >> assertThatCode(() -> clientCache.readyForEvents()). >> doesNotThrowAnyException(); >> >> Let me know if you can think of another use case that isn't handled by >> the above AssertJ APIs. >> >> >