blob: 3efb91796508bdf5cb2b4aa91172e4ad977b9269 [file] [log] [blame]
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]
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