@Test
public void testCheckIfArgumentsMatchParameterTypesShouldThrowIllegalArgumentExceptionIfAnyArgumentTypeIsNotAssignableToParameterType() {

    // Given:
    Object[] arguments = new Object[] { 2, "2", 2l };
    Class<?>[] parameterTypes = new Class<?>[] { int.class, String.class, boolean.class };
    expectedException.expect(IllegalArgumentException.class);
    expectedException
            .expectMessage("Parameter number 2 is of type 'boolean' but argument given is '2' of type 'Long'");
    // When:
    underTest.checkIfArgumentsMatchParameterTypes(arguments, parameterTypes);
    // Then: expect exception
}