DefaultBiMapper.registerClass(Reference.class);
@Test public void autoSerializableBinder() throws Exception { // if the object is instance of Map (for example Binder), it could also have // it's own serialization: Rebinder b = new Rebinder(); DefaultBiMapper.registerClass(Rebinder.class); b.put("foo", "bar"); Binder s = DefaultBiMapper.serialize(b); Object x = DefaultBiMapper.deserialize(s); assertThat(x, instanceOf(Rebinder.class)); assertEquals("bar", ((Map)x).get("foo")); }
@Test public void autoSerializable() throws Exception { Test1 t1 = new Test1("foo"); DefaultBiMapper.registerClass(Test1.class); Binder s = DefaultBiMapper.serialize(t1); assertEquals(s.getStringOrThrow("__type"), "foobar1"); assertEquals(s.getStringOrThrow("value"), "foo"); Test1 t2 = DefaultBiMapper.deserialize(s); assertThat(t2, instanceOf(Test1.class) ); assertEquals("foo", t2.getValue()); }
@Test public void autoSerializableInheritance() throws Exception { Test1 t1 = new Test2("foo"); DefaultBiMapper.registerClass(Test2.class); Binder s = DefaultBiMapper.serialize(t1); assertEquals(s.getStringOrThrow("__type"), "net.sergeych.biserializer.Test2"); Test2 t2 = DefaultBiMapper.deserialize(s); assertThat(t2, instanceOf(Test1.class) ); assertEquals("bad", t2.getValue()); assertEquals("foo", t2.getBar()); }