blob: a688a909e0355d0c792f94360a9b86fbc322eb5d [file] [log] [blame]
csharptest3c6e9322011-09-09 18:14:40 -05001using System;
2using System.Collections.Generic;
3using System.IO;
4using System.Runtime.Serialization;
5using System.Runtime.Serialization.Formatters.Binary;
6using System.Text;
7using Google.ProtocolBuffers.TestProtos;
csharptesteac64a52011-10-04 13:43:26 -05008using Microsoft.VisualStudio.TestTools.UnitTesting;
csharptest3c6e9322011-09-09 18:14:40 -05009
10namespace Google.ProtocolBuffers
11{
csharptesteac64a52011-10-04 13:43:26 -050012 [TestClass]
csharptest3c6e9322011-09-09 18:14:40 -050013 public class SerializableLiteTest
14 {
15 /// <summary>
16 /// Just keep it from even compiling if we these objects don't implement the expected interface.
17 /// </summary>
18 public static readonly ISerializable CompileTimeCheckSerializableMessage = TestRequiredLite.DefaultInstance;
19 public static readonly ISerializable CompileTimeCheckSerializableBuilder = new TestRequiredLite.Builder();
20
csharptesteac64a52011-10-04 13:43:26 -050021 [TestMethod]
csharptest3c6e9322011-09-09 18:14:40 -050022 public void TestPlainMessage()
23 {
24 TestRequiredLite message = TestRequiredLite.CreateBuilder()
25 .SetD(42)
26 .BuildPartial();
27
28 MemoryStream ms = new MemoryStream();
29 new BinaryFormatter().Serialize(ms, message);
30
31 ms.Position = 0;
32 TestRequiredLite copy = (TestRequiredLite)new BinaryFormatter().Deserialize(ms);
33
34 Assert.AreEqual(message, copy);
35 }
36
csharptesteac64a52011-10-04 13:43:26 -050037 [TestMethod]
csharptest3c6e9322011-09-09 18:14:40 -050038 public void TestPlainBuilder()
39 {
40 TestRequiredLite.Builder builder = TestRequiredLite.CreateBuilder()
41 .SetD(42)
42 ;
43
44 MemoryStream ms = new MemoryStream();
45 new BinaryFormatter().Serialize(ms, builder);
46
47 ms.Position = 0;
48 TestRequiredLite.Builder copy = (TestRequiredLite.Builder)new BinaryFormatter().Deserialize(ms);
49
50 Assert.AreEqual(builder.BuildPartial(), copy.BuildPartial());
51 }
52 }
53}