public void testEqualsDifferentTypes() throws IOException, ClassNotFoundException { PdxInstance instance1 = getPdx(new TestPdx() { public void toData(PdxWriter writer) { writer.writeBoolean("field1", true); } }); PdxInstance instance2 = getPdx(new TestPdx() { public void toData(PdxWriter writer) { writer.writeBoolean("field1", true); } }); //These are different classes, so they shouldn't match. assertFalse(instance1.equals(instance2)); assertFalse(instance1.isIdentityField("field1")); }
PdxInstance pi = InternalDataSerializer.readPdxInstance(cdValBytes, GemFireCacheImpl.getForPdx("Could not check value equality")); if (pi != null) { return pi.equals(pdx); } else {
c.writeInt("intField", 37); PdxInstance pi = c.create(); assertEquals(false, pi.equals(null)); assertEquals(false, pi.equals(new Date(37))); c = PdxInstanceFactoryImpl.newCreator("testEquals", false); c.writeInt("intField", 37); pi.hashCode(); pi2.hashCode(); assertEquals(false, pi.equals(pi2)); assertEquals(false, pi2.equals(pi)); pi.hashCode(); pi2.hashCode(); assertEquals(false, pi.equals(pi2)); assertEquals(false, pi2.equals(pi)); pi.hashCode(); pi2.hashCode(); assertEquals(false, pi.equals(pi2)); assertEquals(false, pi2.equals(pi)); pi.hashCode(); pi2.hashCode(); assertEquals(false, pi.equals(pi2)); assertEquals(false, pi2.equals(pi)); pi2 = c.create(); assertEquals(pi.hashCode(), pi2.hashCode());
public void VerifyJSONByteArray(JSONData jd) { Region r = getRootRegion("testSimplePdx"); PdxInstance pdx = JSONFormatter.fromJSON(jd.getJsonByteArray()); r.put(1, pdx); pdx = (PdxInstance)r.get(1); byte[] jsonByteArray = JSONFormatter.toJSONByteArray(pdx); byte[] o1 = jsonParse(jd.getJsonByteArray()); byte[] o2 = jsonParse(jsonByteArray); // junit.framework.Assert.assertEquals("Pdx byte aray are not equal after fetching from cache " + jd.getFileName(), o1, o2); compareByteArray(o1, o2); PdxInstance pdx2 = JSONFormatter.fromJSON(jsonByteArray); boolean pdxequals = pdx.equals(pdx2); junit.framework.Assert.assertEquals("Pdx are not equal for byte array ; json filename " + jd.getFileName(), pdx, pdx2 ); } public void compareByteArray(byte[] b1, byte[] b2) {
PdxInstance pi = InternalDataSerializer.readPdxInstance(cdValBytes, GemFireCacheImpl.getForPdx("Could not check value equality")); if (pi != null) { return pi.equals(pdx); } else {
public void testHashCodeAndEqualsSameType() throws IOException, ClassNotFoundException { PdxInstance instance = getAllFields(0); assertEquals(instance, getAllFields(0)); assertEquals(instance.hashCode(), getAllFields(0).hashCode()); for(int i =1; i < allFieldCount + 1; i++) { PdxInstance other = getAllFields(i); assertFalse("One field " + i + " hashcode have been unequal but were equal" + instance.getField("field" + (i-1)) +", " + other.getField("field" + (i-1)) + ", " + instance + ", " + other, instance.equals(other)); //Technically, this could be true. If this asserts fails I guess we can just change the test. assertFalse("One field " + i + " hashcode have been unequal but were equal" + instance +", " + other, instance.hashCode() == other.hashCode()); } }
public void testNestedPdxInstance() throws IOException, ClassNotFoundException { PdxInstanceFactory c = PdxInstanceFactoryImpl.newCreator("testNestedPdxInstanceChild", false); c.writeField("f", 37, int.class); PdxInstance child = c.create(); c = PdxInstanceFactoryImpl.newCreator("testNestedPdxInstanceParent", false); c.writeObject("f", child); WritablePdxInstance parent = c.create().createWriter(); checkPdxInstance(child); checkPdxInstance(parent); WritablePdxInstance child2 = ((PdxInstance)parent.getField("f")).createWriter(); assertEquals(child, child2); assertTrue(child != child2); child2.setField("f", 38); assertFalse(child.equals(child2)); assertEquals(child, parent.getField("f")); parent.setField("f", child2); assertFalse(child.equals(parent.getField("f"))); assertEquals(child2, parent.getField("f")); PdxInstance parentCopy = checkPdxInstance(parent); assertEquals(child2, parentCopy.getField("f")); }