    @Test
    public void run_invokeThrows_moduleErrorGetsCalled() throws InvocationTargetException, IllegalAccessException {

        // given
        NullPointerException npe = new NullPointerException();
        doThrow(npe).when(invoker).invoke(isA(InvocationContext.class));

        try {
            // when
            sut.run();
        } catch (NullPointerException ex) {
            // got you
        }

        // then
        verify(module).onError(context, theMessage, npe);
    }