### Question:
Invocation { @Override public boolean equals(Object obj) { if (obj == null || !obj.getClass().equals(this.getClass())) { return false; } Invocation otherInvocation = (Invocation) obj; if (!method.equals(otherInvocation.getMethod())) { return false; } Object otherTarget = otherInvocation.getTarget(); Object target = this.getTarget(); if (target == otherTarget) { return true; } if (target == null) { return false; } return target.equals(otherTarget); } private  Invocation();  Invocation(Object target, String methodName);  Invocation(Object target, String methodName, Class parameterType);  Invocation(Object target, String methodName, Class[] parameterTypes); boolean fire(); boolean fire(Object argument); boolean fire(Object[] arguments); @Override boolean equals(Object obj); @Override int hashCode(); Method getMethod(); Object getTarget(); Class[] getParameterTypes();  }### Answer:
@Test public void testEqualsNull() throws NoSuchMethodException { Invocation inv0 = new Invocation(this, _methodName); assertTrue(inv0.equals(null) == false); }
@Test public void testEqualsDifferentMethods() throws NoSuchMethodException { Invocation inv0 = new Invocation(this, _methodName); Invocation inv1 = new Invocation(this, _methodName, new Class[]{Object.class}); assertTrue(inv0.equals(inv1) == false); }
@Test public void testEqualsNoVsOneArg() throws NoSuchMethodException { Invocation inv0 = new Invocation(this, _methodName); Invocation inv1 = new Invocation(this, _methodName, new Class[]{Object.class}); assertTrue(inv0.equals(inv1) == false); }