    @Test
    public void testInvokeMethodRaisesAnIllegalArgumentExceptionIfTheArgumentIsWrong() {

        // GIVEN
        MutableToFoo mutableToFoo = createMutableToFoo(null);
        Method idSetterMethod = underTest.getSetterMethodForField(MutableToFoo.class, LIST_FIELD_NAME, List.class);


        // WHEN
        ThrowingCallable actual = () ->
                getMethod(underTest.getClass(), INVOKE_METHOD_NAME, true, Method.class, Object.class, Object[].class)
                        .invoke(underTest, idSetterMethod, mutableToFoo, new Object[]{ONE});

        // THEN
        assertThatThrownBy(actual).hasCauseInstanceOf(IllegalArgumentException.class);
    }