using System; #if !NOSERIALIZABLE using System.Collections.Generic; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using Google.ProtocolBuffers.TestProtos; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace Google.ProtocolBuffers { [TestClass] public class SerializableLiteTest { /// /// Just keep it from even compiling if we these objects don't implement the expected interface. /// public static readonly ISerializable CompileTimeCheckSerializableMessage = TestRequiredLite.DefaultInstance; public static readonly ISerializable CompileTimeCheckSerializableBuilder = new TestRequiredLite.Builder(); [TestMethod] public void TestPlainMessage() { TestRequiredLite message = TestRequiredLite.CreateBuilder() .SetD(42) .BuildPartial(); MemoryStream ms = new MemoryStream(); new BinaryFormatter().Serialize(ms, message); ms.Position = 0; TestRequiredLite copy = (TestRequiredLite)new BinaryFormatter().Deserialize(ms); Assert.AreEqual(message, copy); } [TestMethod] public void TestPlainBuilder() { TestRequiredLite.Builder builder = TestRequiredLite.CreateBuilder() .SetD(42) ; MemoryStream ms = new MemoryStream(); new BinaryFormatter().Serialize(ms, builder); ms.Position = 0; TestRequiredLite.Builder copy = (TestRequiredLite.Builder)new BinaryFormatter().Deserialize(ms); Assert.AreEqual(builder.BuildPartial(), copy.BuildPartial()); } } } #endif