/** * Have a PDX with an Object[] whose element is a DataSerializable which * has a Long[]. Its a bug if the array nested in the DS becomes an Object[] * during deserialization. * Demonstrates bug 43838. */ public void testNestedDS() throws IOException, ClassNotFoundException { PdxInstanceFactory c = PdxInstanceFactoryImpl.newCreator("nestedDS", false); c.writeObject("obj", new MyDS()); PdxInstance pi = c.create(); pi.getField("obj"); checkPdxInstance(pi); }
/** * Have a pdx with an array of pdx. * Make sure the array class does not get loaded during * getField, hashCode, and equals. */ public void testNestedArray() throws IOException, ClassNotFoundException { PdxInstance pi; { PdxInstanceFactory c = PdxInstanceFactoryImpl.newCreator("nestedArray", false); MyPdx[] array = new MyPdx[]{new MyPdx()}; c.writeObjectArray("array", array); pi = c.create(); } pi.getField("array"); checkPdxInstance(pi); }
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")); }
pi.setField("f", (byte)38); assertEquals((byte)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", false); assertEquals(false, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (char)38); assertEquals((char)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (short)38); assertEquals((short)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (int)38); assertEquals((int)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (long)38); assertEquals((long)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (float)38); assertEquals((float)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (double)38);
pi.setField("f", (byte)38); assertEquals((byte)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", false); assertEquals(false, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (char)38); assertEquals((char)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (short)38); assertEquals((short)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (int)38); assertEquals((int)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (long)38); assertEquals((long)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (float)38); assertEquals((float)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (double)38);
pi.setField("f", (byte)38); assertEquals((byte)38, pi.getField("f")); checkPdxInstance(pi); try { pi.setField("bogusFieldName", null); pi.setField("f", false); assertEquals(false, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (char)38); assertEquals((char)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (short)38); assertEquals((short)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (int)38); assertEquals((int)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (long)38); assertEquals((long)38, pi.getField("f")); checkPdxInstance(pi); pi.setField("f", (float)38); assertEquals((float)38, pi.getField("f")); checkPdxInstance(pi);
public void testBasics() throws IOException, ClassNotFoundException { PdxInstanceFactory c = PdxInstanceFactoryImpl.newCreator("basics", false); c.writeInt("intField", 37); PdxInstance pi = c.create(); WritablePdxInstance wpi = pi.createWriter(); assertEquals(true, wpi.hasField("intField")); assertEquals(37, wpi.getField("intField")); assertEquals(false, wpi.isIdentityField("intField")); wpi.setField("intField", 38); assertEquals(38, wpi.getField("intField")); checkPdxInstance(wpi); PdxType t1 = ((PdxInstanceImpl)pi).getPdxType(); PdxInstanceFactory c2 = PdxInstanceFactoryImpl.newCreator("basics", false); c2.writeInt("intField", 46); PdxInstance pi2 = c2.create(); PdxType t2 = ((PdxInstanceImpl)pi2).getPdxType(); assertEquals(t1, t2); assertEquals(t1.getTypeId(), t2.getTypeId()); } public void testEnums() throws IOException, ClassNotFoundException {
assertEquals(22, pi.getField("intField2")); checkPdxInstance(pi);