public void TestWriteReadWithNullPortableArray() { int portableVersion = 1; var builder0 = new ClassDefinitionBuilder(SerializationTestsConstants.PORTABLE_FACTORY_ID, 1, portableVersion); var builder1 = new ClassDefinitionBuilder(SerializationTestsConstants.PORTABLE_FACTORY_ID, 2, portableVersion); builder0.AddPortableArrayField("list", builder1.Build()); var ss = new SerializationServiceBuilder(new NullLoggerFactory()) .SetPortableVersion(portableVersion) .AddClassDefinition(builder0.Build()) .AddClassDefinition(builder1.Build()) .Build(); var data = ss.ToData(new TestObject1()); var ss2 = new SerializationServiceBuilder(new NullLoggerFactory()) .AddPortableFactory(1, new PortableFactoryFunc(classId => { switch (classId) { case 1: return(new TestObject1()); case 2: return(new TestObject2()); } return(null); })).Build(); var obj = ss2.ToObject <object>(data); Assert.IsNotNull(obj); Assert.IsInstanceOf <TestObject1>(obj); }
internal static IClassDefinition CreateNamedPortableClassDefinition(int portableVersion) { var builder = new ClassDefinitionBuilder(SerializationTestsConstants.PORTABLE_FACTORY_ID, SerializationTestsConstants.NAMED_PORTABLE, portableVersion); builder.AddStringField("name"); builder.AddIntField("myint"); return(builder.Build()); }
internal static IClassDefinition CreateNamedPortableClassDefinition() { var builder = new ClassDefinitionBuilder(TestSerializationConstants.PORTABLE_FACTORY_ID, TestSerializationConstants.NAMED_PORTABLE); builder.AddUTFField("name"); builder.AddIntField("myint"); return(builder.Build()); }
public virtual void SetUp() { var builder = new ClassDefinitionBuilder(1, 2, 3); foreach (var fieldName in fieldNames) { builder.AddByteField(fieldName); } classDefinition = (ClassDefinition)builder.Build(); }
internal static IClassDefinition CreateInnerPortableClassDefinition() { var builder = new ClassDefinitionBuilder(FactoryId, TestSerializationConstants.INNER_PORTABLE); builder.AddByteArrayField("b"); builder.AddCharArrayField("c"); builder.AddShortArrayField("s"); builder.AddIntArrayField("i"); builder.AddLongArrayField("l"); builder.AddFloatArrayField("f"); builder.AddDoubleArrayField("d"); builder.AddPortableArrayField("nn", PortableSerializationTest.CreateNamedPortableClassDefinition()); return(builder.Build()); }
public void TestRawDataInvaliRead() { var serializationService = CreateSerializationService(1, ByteOrder.BigEndian); var p = new InvalidRawDataPortable2(DateTime.Now.ToFileTime(), "test chars".ToCharArray(), new NamedPortable("named portable", 34567), 9876, "Testing raw portable", new ByteArrayDataSerializable(Encoding.UTF8.GetBytes("test bytes"))); var builder = new ClassDefinitionBuilder(p.GetFactoryId(), p.GetClassId()); builder.AddLongField("l").AddCharArrayField("c").AddPortableField("p", CreateNamedPortableClassDefinition()); serializationService.GetPortableContext().RegisterClassDefinition(builder.Build()); var data = serializationService.ToData(p); Assert.AreEqual(p, serializationService.ToObject <RawDataPortable>(data)); }