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.
>
>

Reply via email to