csharptest | 3c6e932 | 2011-09-09 18:14:40 -0500 | [diff] [blame^] | 1 | using System;
|
| 2 | using System.Collections.Generic;
|
| 3 | using System.IO;
|
| 4 | using System.Runtime.Serialization;
|
| 5 | using System.Runtime.Serialization.Formatters.Binary;
|
| 6 | using System.Text;
|
| 7 | using Google.ProtocolBuffers.TestProtos;
|
| 8 | using NUnit.Framework;
|
| 9 |
|
| 10 | namespace 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 | }
|