assertEquals(7, pdx.f1); assertEquals(0, pdx.f2); byte[] v1actual = createBlob(pdx); int v1typeId = getBlobPdxTypeId(v1actual); MyEvolvablePdx pdxv2 = deblob(v1actual); assertEquals(7, pdxv2.f1); assertEquals(0, pdxv2.f2); pdxv2.f2 = 23; byte[] v2actual = createBlob(pdxv2); int v2typeId = getBlobPdxTypeId(v2actual); assertEquals(v1typeId+1, v2typeId); assertFalse(v1Type.equals(v2Type)); assertFalse(v1Type.compatible(v2Type)); assertNotNull(v1Type.getPdxField("f1")); assertNull(v1Type.getPdxField("f2")); assertNotNull(v2Type.getPdxField("f1")); assertNotNull(v2Type.getPdxField("f2")); MyEvolvablePdx pdxv3 = deblob(v2actual); assertEquals(7, pdxv3.f1); assertEquals(0, pdxv3.f2);
public void testFieldInsert() throws Exception { MyEvolvablePdx.setVersion(1); MyEvolvablePdx pdx = new MyEvolvablePdx(7); assertEquals(7, pdx.f1); assertEquals(0, pdx.f2); assertEquals(7, pdx.f1); assertEquals(8, pdx.f2); byte[] v3actual = createBlob(pdx); int v3typeId = getBlobPdxTypeId(v3actual); c.getPdxRegistry().removeLocal(pdx); MyEvolvablePdx.setVersion(1); MyEvolvablePdx pdxv1 = deblob(v3actual); assertEquals(7, pdxv1.f1); assertEquals(0, pdxv1.f2); byte[] v1actual = createBlob(pdxv1); int mergedTypeId = getBlobPdxTypeId(v1actual); assertEquals(v3typeId+1, mergedTypeId); TypeRegistry tr = c.getPdxRegistry(); PdxType v3Type = tr.getType(v3typeId); PdxType mergedType = tr.getType(mergedTypeId); assertFalse(mergedType.equals(v3Type)); assertTrue(mergedType.compatible(v3Type)); MyEvolvablePdx pdxv3 = deblob(v1actual); assertEquals(7, pdxv3.f1); assertEquals(8, pdxv3.f2);
MyEvolvablePdx.setVersion(1); MyEvolvablePdx pdx = new MyEvolvablePdx(7); assertEquals(7, pdx.f1); assertEquals(0, pdx.f2); assertEquals(7, pdx.f1); assertEquals(8, pdx.f2); byte[] v2actual = createBlob(pdx); int v2typeId = getBlobPdxTypeId(v2actual); MyEvolvablePdx pdxv1 = deblob(v2actual); assertEquals(7, pdxv1.f1); assertEquals(0, pdxv1.f2); byte[] v1actual = createBlob(pdxv1); assertEquals(v2typeId, getBlobPdxTypeId(v1actual)); checkBytes(v2actual, v1actual); v1actual = createBlob(pdxv1); assertEquals(v2typeId, getBlobPdxTypeId(v1actual)); checkBytes(v2actual, v1actual); v1actual = createBlob(pdxv1copy); assertEquals(v2typeId, getBlobPdxTypeId(v1actual)); checkBytes(v2actual, v1actual); MyEvolvablePdx pdxv2 = deblob(v1actual); assertEquals(7, pdxv2.f1); assertEquals(8, pdxv2.f2);
public void testAllWithNullsWF() throws IOException, ClassNotFoundException { AllFieldTypesWF v1 = new AllFieldTypesWF(0x102030405060708L, true); AllFieldTypesWF v2 = (AllFieldTypesWF) serializeAndDeserialize(v1); assertEquals(v1, v2); }
public void testBasicAllWithNulls() throws IOException, ClassNotFoundException { BasicAllFieldTypes v1 = new BasicAllFieldTypes(0x1020304050607080L, true); try { serializeAndDeserialize(v1); fail("expected NotSerializableException"); } catch (NotSerializableException expected) { } this.c.setPdxSerializer(new BasicAllFieldTypesPdxSerializer()); try { BasicAllFieldTypes v2 = (BasicAllFieldTypes) serializeAndDeserialize(v1); assertEquals(v1, v2); } finally { this.c.setPdxSerializer(null); } }
SimpleClass1 pdx = new SimpleClass1(myFlag, myShort, myString1, myLong, myString2, myString3, myInt, myFloat); DataSerializer.writeObject(pdx, out); int typeId = getLastPdxTypeId(); assertTrue("Mismatch in length, actual.length: " + actual.length + " and expected length: " + expected.length, actual.length == expected.length); for(int i = 0; i < actual.length; i++) { if (actual[i] != expected[i]) { System.out.println(msg.toString()); assertTrue("Mismatch at index " + i, actual[i] == expected[i]); assertTrue("Mismatch in write and read value: Value Write..." + pdx + " Value Read..." + actualVal, pdx.equals(actualVal)); PdxInstance pi = (PdxInstance)DataSerializer.readObject(in); actualVal = (SimpleClass1)pi.getObject(); assertTrue("Mismatch in write and read value: Value Write..." + pdx + " Value Read..." + actualVal, pdx.equals(actualVal)); assertTrue(pi.hasField("myFlag")); assertTrue(pi.hasField("myShort")); assertTrue(pi.hasField("myString1")); assertTrue(pi.hasField("myLong")); assertTrue(pi.hasField("myString2")); assertTrue(pi.hasField("myString3")); assertTrue(pi.hasField("myInt")); assertTrue(pi.hasField("myFloat")); assertEquals(pdx.isMyFlag(), pi.getField("myFlag")); assertEquals(pdx.getMyShort(), pi.getField("myShort")); assertEquals(pdx.getMyString1(), pi.getField("myString1"));
public void testObjectArrayPdxInstance() throws IOException, ClassNotFoundException { DefaultQuery.setPdxReadSerialized(true); PdxReaderImpl.TESTHOOK_TRACKREADS = true; try { LongFieldHolder[] v = new LongFieldHolder[]{new LongFieldHolder(1), new LongFieldHolder(2)}; PdxInstance pi = (PdxInstance) serializeAndDeserialize(new ObjectArrayHolder(v)); ObjectArrayHolder oah = (ObjectArrayHolder) pi.getObject(); LongFieldHolder[] nv = (LongFieldHolder[])oah.getObjectArray(); if (!Arrays.equals(v, nv)) { fail("expected " + Arrays.toString(v) + " but had " + Arrays.toString(nv)); } Object[] oa = (Object[]) pi.getField("f1"); assertTrue(oa[0] instanceof PdxInstance); assertTrue(oa[1] instanceof PdxInstance); LongFieldHolder[] nv2 = new LongFieldHolder[2]; nv2[0] = (LongFieldHolder)((PdxInstance)oa[0]).getObject(); nv2[1] = (LongFieldHolder)((PdxInstance)oa[1]).getObject(); if (!Arrays.equals(v, nv2)) { fail("expected " + Arrays.toString(v) + " but had " + Arrays.toString(nv2)); } } finally { DefaultQuery.setPdxReadSerialized(false); PdxReaderImpl.TESTHOOK_TRACKREADS = false; } } public void testLongField() throws IOException, ClassNotFoundException {
PdxSerializable object = new SimpleClass(1, (byte)5, null); DataSerializer.writeObject(object, out); int typeId = getLastPdxTypeId(); byte[] actual = out.toByteArray(); byte[] expected = new byte[] { msg.append(val + ", "); assertTrue("Mismatch in length, actual.length: " + actual.length + " and expected length: " + expected.length, actual.length == expected.length); for(int i = 0; i<actual.length; i++) { if (actual[i] != expected[i]) { System.out.println(msg.toString()); assertTrue("Mismatch at index " + i, actual[i] == expected[i]); SimpleClass actualVal = (SimpleClass)DataSerializer.readObject(in); assertTrue("Mismatch in write and read value: Value Write..." + object + " Value Read..." + actualVal, object.equals(actualVal));
checkBytes(expected, actual); assertTrue("Mismatch in write and read value: Value Write..." + ds + " Value Read..." + actualVal, ds.equals(actualVal));
public void testVariableFields() throws Exception { HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); DataSerializer.writeObject(new VariableFields(1), out); try { DataSerializer.writeObject(new VariableFields(2), out); fail("expected ToDataException"); } catch (ToDataException expected) { if (!(expected.getCause() instanceof PdxSerializationException)) { fail("expected cause to be PdxSerializationException"); } } try { DataSerializer.writeObject(new VariableFields(0), out); fail("expected PdxSerializationException"); } catch (PdxSerializationException expected) { } try { DataSerializer.writeObject(new VariableFields(1, Object.class), out); fail("expected ToDataException"); } catch (ToDataException expected) { if (!(expected.getCause() instanceof PdxSerializationException)) { fail("expected cause to be PdxSerializationException"); } } // TODO also test marking different identity fields. }
private void checkBytes(byte[] expected, byte[] actual) { StringBuffer msg = new StringBuffer("Actual output: "); for (byte val : actual) { msg.append(val + ", "); } msg.append("\nExpected output: "); for (byte val : expected) { msg.append(val + ", "); } if (actual.length != expected.length) { System.out.println(msg.toString()); } assertTrue("Mismatch in length, actual.length: " + actual.length + " and expected length: " + expected.length, actual.length == expected.length); for(int i = 0; i<actual.length; i++) { if (actual[i] != expected[i]) { System.out.println(msg.toString()); } assertTrue("Mismatch at index " + i, actual[i] == expected[i]); } }
r1 = this.c.createRegionFactory(RegionShortcut.LOCAL_PERSISTENT).setDiskStoreName("r2DS").create("r1"); r2 = this.c.createRegionFactory(RegionShortcut.LOCAL_PERSISTENT).setDiskStoreName("r2DS").create("r2"); assertEquals(true, r1.containsKey(new SimpleClass(1, (byte) 1))); assertEquals(true, r1.containsKey(new SimpleClass(2, (byte) 2))); assertEquals(true, r2.containsKey(new SimpleClass(1, (byte) 1))); assertEquals(true, r2.containsKey(new SimpleClass(2, (byte) 2))); assertEquals(new SimpleClass(1, (byte) 1), r2.get(new SimpleClass(1, (byte) 1))); assertEquals(new SimpleClass(2, (byte) 2), r2.get(new SimpleClass(2, (byte) 2))); this.c.close(); r1 = this.c.getRegion("/r1"); r2 = this.c.getRegion("/r2"); assertEquals(true, r1.containsKey(new SimpleClass(1, (byte) 1))); assertEquals(true, r1.containsKey(new SimpleClass(2, (byte) 2))); assertEquals(true, r2.containsKey(new SimpleClass(1, (byte) 1))); assertEquals(true, r2.containsKey(new SimpleClass(2, (byte) 2))); assertEquals(new SimpleClass(1, (byte) 1), r2.get(new SimpleClass(1, (byte) 1))); assertEquals(new SimpleClass(2, (byte) 2), r2.get(new SimpleClass(2, (byte) 2))); this.c.close();
public void testAllRF() throws IOException, ClassNotFoundException { AllFieldTypesRF v1 = new AllFieldTypesRF(0x1020304050607080L, false); AllFieldTypesRF v2 = (AllFieldTypesRF) serializeAndDeserialize(v1); assertEquals(v1, v2); }
public void testBasicAll() throws IOException, ClassNotFoundException { BasicAllFieldTypes v1 = new BasicAllFieldTypes(0x1020304050607080L, false); try { serializeAndDeserialize(v1); fail("expected NotSerializableException"); } catch (NotSerializableException expected) { } this.c.setPdxSerializer(new BasicAllFieldTypesPdxSerializer()); try { BasicAllFieldTypes v2 = (BasicAllFieldTypes) serializeAndDeserialize(v1); assertEquals(v1, v2); } finally { this.c.setPdxSerializer(null); } }
SimpleClass1 pdx = new SimpleClass1(myFlag, myShort, myString1, myLong, myString2, myString3, myInt, myFloat); DataSerializer.writeObject(pdx, out); int typeId = getLastPdxTypeId(); assertTrue("Mismatch in length, actual.length: " + actual.length + " and expected length: " + expected.length, actual.length == expected.length); for(int i = 0; i<actual.length; i++) { if (actual[i] != expected[i]) { System.out.println(msg.toString()); assertTrue("Mismatch at index " + i, actual[i] == expected[i]); assertTrue("Mismatch in write and read value: Value Write..." + pdx + " Value Read..." + actualVal, pdx.equals(actualVal)); c.setReadSerialized(true); PdxInstance pi = (PdxInstance)DataSerializer.readObject(in); actualVal = (SimpleClass1)pi.getObject(); assertTrue("Mismatch in write and read value: Value Write..." + pdx + " Value Read..." + actualVal, pdx.equals(actualVal)); assertTrue(pi.hasField("myFlag")); assertTrue(pi.hasField("myShort")); assertTrue(pi.hasField("myString1")); assertTrue(pi.hasField("myLong")); assertTrue(pi.hasField("myString2")); assertTrue(pi.hasField("myString3")); assertTrue(pi.hasField("myInt")); assertTrue(pi.hasField("myFloat")); assertEquals(pdx.isMyFlag(), pi.getField("myFlag")); assertEquals(pdx.getMyShort(), pi.getField("myShort"));
PdxSerializable pdx = new DSInsidePdx(myString1, myLong, myDS, myString2, myFloat); DataSerializer.writeObject(pdx, out); int typeId = getLastPdxTypeId(); msg.append(val + ", "); assertTrue("Mismatch in length, actual.length: " + actual.length + " and expected length: " + expected.length, actual.length == expected.length); for(int i = 0; i<actual.length; i++) { if (actual[i] != expected[i]) { System.out.println(msg.toString()); assertTrue("Mismatch at index " + i, actual[i] == expected[i]); DSInsidePdx actualVal = (DSInsidePdx)DataSerializer.readObject(in); assertTrue("Mismatch in write and read value: Value Write..." + pdx + " Value Read..." + actualVal, pdx.equals(actualVal)); System.out.println("\n");
public void testNoDiskStore() throws Exception { this.c.close(); this.c = (GemFireCacheImpl) new CacheFactory().set("mcast-port", "0") .setPdxPersistent(true) .setPdxDiskStore("doesNotExist") .create(); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); PdxSerializable object = new SimpleClass(1, (byte)5, null); try { DataSerializer.writeObject(object, out); fail("expected PdxInitializationException"); } catch (PdxInitializationException expected) { } }
private void checkBytes(Byte[] expected, byte[] actual) { StringBuffer msg = new StringBuffer("Actual output: "); for (byte val : actual) { msg.append(val + ", "); } msg.append("\nExpected output: "); for (byte val : expected) { msg.append(val + ", "); } if (actual.length != expected.length) { System.out.println(msg.toString()); } assertTrue("Mismatch in length, actual.length: " + actual.length + " and expected length: " + expected.length, actual.length == expected.length); for(int i = 0; i<actual.length; i++) { if (actual[i] != expected[i]) { System.out.println(msg.toString()); } assertTrue("Mismatch at index " + i, actual[i] == expected[i]); } } private void checkBytes(byte[] expected, byte[] actual) {
r1 = this.c.createRegionFactory(RegionShortcut.LOCAL_PERSISTENT).create("r1"); r2 = this.c.createRegionFactory(RegionShortcut.LOCAL_PERSISTENT).setDiskStoreName("r2DS").create("r2"); assertEquals(true, r1.containsKey(new SimpleClass(1, (byte) 1))); assertEquals(true, r1.containsKey(new SimpleClass(2, (byte) 2))); assertEquals(true, r2.containsKey(new SimpleClass(1, (byte) 1))); assertEquals(true, r2.containsKey(new SimpleClass(2, (byte) 2))); assertEquals(new SimpleClass(1, (byte) 1), r2.get(new SimpleClass(1, (byte) 1))); assertEquals(new SimpleClass(2, (byte) 2), r2.get(new SimpleClass(2, (byte) 2))); this.c.close(); r1 = this.c.getRegion("/r1"); r2 = this.c.getRegion("/r2"); assertEquals(true, r1.containsKey(new SimpleClass(1, (byte) 1))); assertEquals(true, r1.containsKey(new SimpleClass(2, (byte) 2))); assertEquals(true, r2.containsKey(new SimpleClass(1, (byte) 1))); assertEquals(true, r2.containsKey(new SimpleClass(2, (byte) 2))); assertEquals(new SimpleClass(1, (byte) 1), r2.get(new SimpleClass(1, (byte) 1))); assertEquals(new SimpleClass(2, (byte) 2), r2.get(new SimpleClass(2, (byte) 2))); this.c.close();
public void testAll() throws IOException, ClassNotFoundException { AllFieldTypes v1 = new AllFieldTypes(0x1020304050607080L, false); AllFieldTypes v2 = (AllFieldTypes) serializeAndDeserialize(v1); assertEquals(v1, v2); }