/// <exception cref="System.IO.IOException" /> internal static void TestDifferentClassVersionsUsingDataWriteAndRead(ISerializationService serializationService, ISerializationService serializationService2) { var p1 = new NamedPortable("portable-v1", 111); var data = serializationService.ToData(p1); // emulate socket write by writing data to stream var @out = serializationService.CreateObjectDataOutput(1024); @out.WriteData(data); var bytes = @out.ToByteArray(); // emulate socket read by reading data from stream var @in = serializationService2.CreateObjectDataInput(bytes); data = @in.ReadData(); // read data var object1 = serializationService2.ToObject <object>(data); // serialize new portable version var p2 = new NamedPortableV2("portable-v2", 123); var data2 = serializationService2.ToData(p2); // de-serialize back using old version var object2 = serializationService.ToObject <object>(data2); Assert.IsNotNull(object1, "object1 should not be null!"); Assert.IsNotNull(object2, "object2 should not be null!"); Assert.IsInstanceOf <NamedPortableV2>(object1, "Should be instance of NamedPortableV2: " + object1.GetType()); Assert.IsInstanceOf <NamedPortable>(object2, "Should be instance of NamedPortable: " + object2.GetType()); }
/// <exception cref="System.IO.IOException" /> internal static void TestDifferentClassVersionsUsingDataWriteAndRead(ISerializationService serializationService, ISerializationService serializationService2) { NamedPortable portableV1 = new NamedPortable("portable-v1", 111); IData dataV1 = serializationService.ToData(portableV1); // emulate socket write by writing data to stream var @out = serializationService.CreateObjectDataOutput(1024); @out.WriteData(dataV1); var bytes = @out.ToByteArray(); // emulate socket read by reading data from stream var @in = serializationService2.CreateObjectDataInput(bytes); dataV1 = @in.ReadData(); // serialize new portable version var portableV2 = new NamedPortableV2("portable-v2", 123, 500); var dataV2 = serializationService2.ToData(portableV2); NamedPortable v1FromV2 = serializationService.ToObject <NamedPortable>(dataV2); Assert.AreEqual(portableV2.name, v1FromV2.name); Assert.AreEqual(portableV2.k, v1FromV2.k); NamedPortableV2 v2FromV1 = serializationService2.ToObject <NamedPortableV2>(dataV1); Assert.AreEqual(portableV1.name, v2FromV1.name); Assert.AreEqual(portableV1.k, v2FromV1.k); Assert.AreEqual(v2FromV1.v, 0); }
public void TestWriteDataWithPortable() { var ss = new SerializationServiceBuilder() .AddPortableFactory(TestSerializationConstants.PORTABLE_FACTORY_ID, new PortableFactoryFunc(i => new NamedPortableV2())) .AddDataSerializableFactory(TestSerializationConstants.DATA_SERIALIZABLE_FACTORY_ID, GetDataSerializableFactory()) .Build(); var ss2 = new SerializationServiceBuilder() .AddPortableFactory(TestSerializationConstants.PORTABLE_FACTORY_ID, new PortableFactoryFunc(i => new NamedPortable())) .AddDataSerializableFactory(TestSerializationConstants.DATA_SERIALIZABLE_FACTORY_ID, GetDataSerializableFactory()) .SetPortableVersion(5) .Build(); IPortable p1 = new NamedPortableV2("test", 456); object o1 = new DataDataSerializable(ss.ToData(p1)); var data = ss.ToData(o1); var o2 = ss2.ToObject <DataDataSerializable>(data); Assert.AreEqual(o1, o2); var p2 = ss2.ToObject <IPortable>(o2.Data); Assert.AreEqual(p1, p2); }
internal static void TestDifferentClassVersions(ISerializationService serializationService, ISerializationService serializationService2) { var p1 = new NamedPortable("named-portable", 123); var data = serializationService.ToData(p1); var p2 = new NamedPortableV2("named-portable", 123); var data2 = serializationService2.ToData(p2); var o1 = serializationService2.ToObject <NamedPortableV2>(data); var o2 = serializationService.ToObject <NamedPortable>(data2); Assert.AreEqual(o1.name, o2.name); }
internal static void TestDifferentClassVersions(ISerializationService serializationService, ISerializationService serializationService2) { NamedPortable portableV1 = new NamedPortable("named-portable", 123); IData dataV1 = serializationService.ToData(portableV1); NamedPortableV2 portableV2 = new NamedPortableV2("named-portable", 123, 500); IData dataV2 = serializationService2.ToData(portableV2); NamedPortable v1FromV2 = serializationService.ToObject <NamedPortable>(dataV2); Assert.AreEqual(portableV2.name, v1FromV2.name); Assert.AreEqual(portableV2.k, v1FromV2.k); NamedPortableV2 v2FromV1 = serializationService2.ToObject <NamedPortableV2>(dataV1); Assert.AreEqual(portableV1.name, v2FromV1.name); Assert.AreEqual(portableV1.k, v2FromV1.k); Assert.AreEqual(v2FromV1.v, 0); //Assert.IsNull(v2FromV1.v); }
protected bool Equals(NamedPortableV2 other) { return(base.Equals(other) && v == other.v); }
/// <exception cref="System.IO.IOException" /> internal static void TestDifferentClassVersionsUsingDataWriteAndRead(ISerializationService serializationService, ISerializationService serializationService2) { var p1 = new NamedPortable("portable-v1", 111); var data = serializationService.ToData(p1); // emulate socket write by writing data to stream var @out = serializationService.CreateObjectDataOutput(1024); @out.WriteData(data); var bytes = @out.ToByteArray(); // emulate socket read by reading data from stream var @in = serializationService2.CreateObjectDataInput(bytes); data = @in.ReadData(); // read data var object1 = serializationService2.ToObject<object>(data); // serialize new portable version var p2 = new NamedPortableV2("portable-v2", 123); var data2 = serializationService2.ToData(p2); // de-serialize back using old version var object2 = serializationService.ToObject<object>(data2); Assert.IsNotNull(object1, "object1 should not be null!"); Assert.IsNotNull(object2, "object2 should not be null!"); Assert.IsInstanceOf<NamedPortableV2>(object1, "Should be instance of NamedPortableV2: " + object1.GetType()); Assert.IsInstanceOf<NamedPortable>(object2, "Should be instance of NamedPortable: " + object2.GetType()); }
internal static void TestDifferentClassVersions(ISerializationService serializationService, ISerializationService serializationService2) { var p1 = new NamedPortable("named-portable", 123); var data = serializationService.ToData(p1); var p2 = new NamedPortableV2("named-portable", 123); var data2 = serializationService2.ToData(p2); var o1 = serializationService2.ToObject<NamedPortableV2>(data); var o2 = serializationService.ToObject<NamedPortable>(data2); Assert.AreEqual(o1.name, o2.name); }
public void TestWriteDataWithPortable() { var ss = new SerializationServiceBuilder() .AddPortableFactory(TestSerializationConstants.PORTABLE_FACTORY_ID, new PortableFactoryFunc(i => new NamedPortableV2())) .AddDataSerializableFactory(TestSerializationConstants.DATA_SERIALIZABLE_FACTORY_ID, GetDataSerializableFactory()) .Build(); var ss2 = new SerializationServiceBuilder() .AddPortableFactory(TestSerializationConstants.PORTABLE_FACTORY_ID, new PortableFactoryFunc(i => new NamedPortable())) .AddDataSerializableFactory(TestSerializationConstants.DATA_SERIALIZABLE_FACTORY_ID, GetDataSerializableFactory()) .SetPortableVersion(5) .Build(); IPortable p1 = new NamedPortableV2("test", 456); object o1 = new DataDataSerializable(ss.ToData(p1)); var data = ss.ToData(o1); var o2 = ss2.ToObject<DataDataSerializable>(data); Assert.AreEqual(o1, o2); var p2 = ss2.ToObject<IPortable>(o2.Data); Assert.AreEqual(p1, p2); }
protected bool Equals(NamedPortableV2 other) { return base.Equals(other) && v == other.v; }