assertFalse("Should not be equal", p1.equals(p2));
Object p3 = getP3();
p1 = setDelegate(p1, new SingleInstanceDispatcher(p3));
p2 = setDelegate(p2, new SingleInstanceDispatcher(p3));
assertTrue("Should be equal", p1.equals(p2));
Object p4 = getProxyInstance(getProxyClass(getTestClass()));
Object p5 = getProxyInstance(getProxyClass(getTestClass()));
p4 = setDelegate(p4, new SingleInstanceDispatcher(p1));
p5 = setDelegate(p5, new SingleInstanceDispatcher(p2));
assertTrue("Should be equal", p4.equals(p5));
}