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 | |
{ | |
/// <summary> | |
/// Just keep it from even compiling if we these objects don't implement the expected interface. | |
/// </summary> | |
public static readonly ISerializable CompileTimeCheckSerializableMessage = TestRequiredLite.DefaultInstance; | |
public static readonly ISerializable CompileTimeCheckSerializableBuilder = new TestRequiredLite.Builder(); | |
[TestMethod] | |
[Ignore] // Serialization hasn't been reimplemented yet | |
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] | |
[Ignore] // Serialization hasn't been reimplemented yet | |
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 |