public void TestBasics(Endianness Endianness) { var ss = CreateSerializationService(1, Endianness); var ss2 = CreateSerializationService(2, Endianness); var nn = new NamedPortable[5]; for (var i = 0; i < nn.Length; i++) { nn[i] = new NamedPortable("named-portable-" + i, i); } NamedPortable np = nn[0]; var data = ss.ToData(np); Assert.AreEqual(np, ss.ToObject(data)); Assert.AreEqual(np, ss2.ToObject(data)); var inner = new InnerPortable(new byte[] { 0, 1, 2 }, new[] { 'c', 'h', 'a', 'r' }, new short[] { 3, 4, 5 }, new[] { 9, 8, 7, 6 }, new long[] { 0, 1, 5, 7, 9, 11 }, new[] { 0.6543f, -3.56f, 45.67f }, new[] { 456.456, 789.789, 321.321 }, nn); var main = new MainPortable(113, true, 'x', -500, 56789, -50992225L, 900.5678f, -897543.3678909d, "this is main portable object created for testing!", inner); data = ss.ToData(main); var mainPortable = ss.ToObject <MainPortable>(data); Assert.AreEqual(main, mainPortable); Assert.AreEqual(main, ss2.ToObject <MainPortable>(data)); }
/// <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 virtual void TestPreDefinedDifferentVersionsWithInnerPortable() { var serializationService = PortableSerializationTest.CreateSerializationService(1); serializationService.GetPortableContext().RegisterClassDefinition(CreateInnerPortableClassDefinition(1)); var serializationService2 = PortableSerializationTest.CreateSerializationService(2); serializationService2.GetPortableContext().RegisterClassDefinition(CreateInnerPortableClassDefinition(2)); var nn = new NamedPortable[1]; nn[0] = new NamedPortable("name", 123); var inner = new InnerPortable(new byte[] { 0, 1, 2 }, new[] { 'c', 'h', 'a', 'r' }, new short[] { 3, 4, 5 }, new[] { 9, 8, 7, 6 }, new long[] { 0, 1, 5, 7, 9, 11 }, new[] { 0.6543f, -3.56f, 45.67f }, new[] { 456.456 , 789.789, 321.321 }, nn); var mainWithInner = new MainPortable(unchecked (113), true, 'x', -500, 56789, -50992225L, 900.5678f, -897543.3678909d, "this is main portable object created for testing!", inner); TestPreDefinedDifferentVersions(serializationService, serializationService2, mainWithInner); }
/// <exception cref="System.IO.IOException" /> internal static void TestDifferentClassVersionsUsingDataWriteAndRead(SerializationService serializationService, SerializationService serializationService2) { var portableV1 = new NamedPortable("portable-v1", 111); var dataV1 = serializationService.ToData(portableV1); // 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); }
internal static void TestDifferentClassVersions(SerializationService serializationService, SerializationService 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); }