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. }
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 {
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); } }
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); } }
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) { } }