public void testNoCHM() throws Exception { setupSerializer(false, false, "com.gemstone.gemfire.pdx.AutoSerializableJUnitTest.*Holder"); doCHM("without autoSerializer handling ConcurrentHashMap"); } private void doCHM(String msg) throws IOException, ClassNotFoundException {
private void setupSerializer(boolean checkPortability, String... classPatterns) { setupSerializer(new ReflectionBasedAutoSerializer(checkPortability, classPatterns), true); } private void setupSerializer(boolean checkPortability, boolean readSerialized, String... classPatterns) {
private void setupSerializer(String... classPatterns) { setupSerializer(new ReflectionBasedAutoSerializer(classPatterns), true); } private void setupSerializer(boolean checkPortability, String... classPatterns) {
public void testNoExtensibility() throws Exception { setupSerializer(false, false, "com.gemstone.gemfire.pdx.AutoSerializableJUnitTest.BigHolder"); doExtensible("using standard serialization of Big*"); }
public void testConfigWithExclude2() throws Exception { setupSerializer(); Properties props = new Properties(); props.put("classes", "com.gemstone.gemfire.pdx.DomainObject#exclude=string.* ,"); serializer.init(props); assertEquals(1, manager.getFields(DomainObject.class).size()); }
public void testBasicConfig() throws Exception { setupSerializer(); Properties props = new Properties(); props.put("classes", "com.gemstone.gemfire.pdx.DomainObject"); serializer.init(props); assertEquals(4, manager.getFields(DomainObject.class).size()); }
public void testConfigWithIdentityAndExclude4() throws Exception { setupSerializer(); Properties props = new Properties(); props.put("classes", "com.gemstone.gemfire.pdx.DomainObjectPdxAuto#exclude=string.*, " + "com.gemstone.gemfire.pdx.DomainObjectPdxAuto#exclude=long.*"); serializer.init(props); assertEquals(26, manager.getFields(DomainObjectPdxAuto.class).size()); }
public void testConfigWithExclude1() throws Exception { setupSerializer(); Properties props = new Properties(); props.put("classes", "com.gemstone.gemfire.pdx.DomainObject#exclude=long.*"); serializer.init(props); assertEquals(3, manager.getFields(DomainObject.class).size()); }
public void testConcurrentHashMap() throws Exception { setupSerializer("java.util.concurrent..*"); ConcurrentHashMap<String, String> m = new ConcurrentHashMap<String, String>(); m.put("k1", "v1"); m.put("k2", "v2"); m.put("k3", "v3"); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); DataSerializer.writeObject(m, out); Object dObj = DataSerializer.readObject(new DataInputStream( new ByteArrayInputStream(out.toByteArray()))); assertEquals(m, dObj); }
public void testExtensibility() throws Exception { setupSerializer(new BigIntegerAutoSerializer(true, "com.gemstone.gemfire.pdx.AutoSerializableJUnitTest.BigHolder"), false); doExtensible("with autoSerializer handling Big*"); } public void testNoExtensibility() throws Exception {
public void testCHM() throws Exception { setupSerializer(new ConcurrentHashMapAutoSerializer(false, "com.gemstone.gemfire.pdx.AutoSerializableJUnitTest.*Holder"), false); doCHM("with autoSerializer handling ConcurrentHashMap"); } public void testNoCHM() throws Exception {
public void testCheckPortablity() throws Exception { setupSerializer(true, "com.gemstone.gemfire.pdx.AutoSerializableJUnitTest.BigHolder"); BigInteger bi = new BigInteger("12345678901234567890"); BigDecimal bd = new BigDecimal("1234567890.1234567890"); BigHolder bih = new BigHolder(bi, bd); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); try { DataSerializer.writeObject(bih, out); fail("expected NonPortableClassException"); } catch (NonPortableClassException expected) { } }
public void testMonth() throws Exception { setupSerializer(false, false, "com.gemstone.gemfire.pdx.AutoSerializableJUnitTest.MyMonth"); MyMonth m = new MyMonth(1); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); DataSerializer.writeObject(m, out); Object dObj = DataSerializer.readObject(new DataInputStream( new ByteArrayInputStream(out.toByteArray()))); assertEquals(m, dObj); }
public void testExternalizable() throws Exception { setupSerializer("com.gemstone.gemfire.pdx.AutoSerializableJUnitTest.MyExternalizable"); MyExternalizable o = new MyExternalizable(79); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); DataSerializer.writeObject(o, out); Object dObj = DataSerializer.readObject(new DataInputStream( new ByteArrayInputStream(out.toByteArray()))); assertEquals(o, dObj); }
/** * A serializable with a writeReplace method should use standard serialization. */ public void testComparator() throws Exception { setupSerializer("com.gemstone.gemfire.pdx.AutoSerializableJUnitTest.MyComparator"); TreeSet o = new TreeSet(new MyComparator()); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); DataSerializer.writeObject(o, out); Object dObj = DataSerializer.readObject(new DataInputStream( new ByteArrayInputStream(out.toByteArray()))); assertEquals(o, dObj); }
/** * A serializable with a writeReplace method should use standard serialization. */ public void testWriteReplace() throws Exception { setupSerializer("com.gemstone.gemfire.pdx.AutoSerializableJUnitTest.MyWriteReplace"); MyWriteReplace o = new MyWriteReplace("79"); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); DataSerializer.writeObject(o, out); Object dObj = DataSerializer.readObject(new DataInputStream( new ByteArrayInputStream(out.toByteArray()))); assertEquals("79", dObj); }
public void testIsClassAutoSerialized() throws IOException, ClassNotFoundException { setupSerializer(new ExplicitClassNameAutoSerializer(false, ""), false); DomainObject objOut = new DomainObjectPdxAuto(4); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); DataSerializer.writeObject(objOut, out); DomainObject objIn = (DomainObject)DataSerializer.readObject(new DataInputStream( new ByteArrayInputStream(out.toByteArray()))); assertEquals(objOut, objIn); }
public void testException() throws Exception { setupSerializer(stdSerializableClasses); DomainObject objOut = new DomainObjectBad(); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); try { DataSerializer.writeObject(objOut, out); } catch (SerializationException ex) { // Pass } catch (Exception ex) { fail("Expected SerializationException here but got " + ex); } }
public void testNoZeroArgConstructor() throws Exception { setupSerializer(stdSerializableClasses); DomainObject objOut = new DomainObjectPdxAutoNoDefaultConstructor(4); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); try { DataSerializer.writeObject(objOut, out); } catch (NotSerializableException ex) { // This passes the test } catch (Exception ex) { fail("Expected NotSerializableException here but got " + ex); } }
public void testIsFieldIncluded() throws IOException, ClassNotFoundException { setupSerializer(new ExplicitIncludedAutoSerializer(false, "com.gemstone.gemfire.pdx.DomainObjectPdxAuto"), true); DomainObject objOut = new DomainObjectPdxAuto(4); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); DataSerializer.writeObject(objOut, out); PdxInstance pi = (PdxInstance)DataSerializer.readObject(new DataInputStream( new ByteArrayInputStream(out.toByteArray()))); assertEquals(true, pi.hasField("long_0")); assertEquals(false, pi.hasField("string_0")); } public static class ExplicitFieldNameAutoSerializer extends ReflectionBasedAutoSerializer {