blob: 7c12ef4033a3e472887f2523268302d61937ddfb [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;
8using NUnit.Framework;
9
10namespace Google.ProtocolBuffers
11{
12 [TestFixture]
13 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
21 [Test]
22 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
37 [Test]
38 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}