SerializableLiteTest.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. namespace Google.ProtocolBuffers
  10. {
  11. [TestFixture]
  12. public class SerializableLiteTest
  13. {
  14. /// <summary>
  15. /// Just keep it from even compiling if we these objects don't implement the expected interface.
  16. /// </summary>
  17. public static readonly ISerializable CompileTimeCheckSerializableMessage = TestRequiredLite.DefaultInstance;
  18. public static readonly ISerializable CompileTimeCheckSerializableBuilder = new TestRequiredLite.Builder();
  19. [Test]
  20. public void TestPlainMessage()
  21. {
  22. TestRequiredLite message = TestRequiredLite.CreateBuilder()
  23. .SetD(42)
  24. .BuildPartial();
  25. MemoryStream ms = new MemoryStream();
  26. new BinaryFormatter().Serialize(ms, message);
  27. ms.Position = 0;
  28. TestRequiredLite copy = (TestRequiredLite)new BinaryFormatter().Deserialize(ms);
  29. Assert.AreEqual(message, copy);
  30. }
  31. [Test]
  32. public void TestPlainBuilder()
  33. {
  34. TestRequiredLite.Builder builder = TestRequiredLite.CreateBuilder()
  35. .SetD(42)
  36. ;
  37. MemoryStream ms = new MemoryStream();
  38. new BinaryFormatter().Serialize(ms, builder);
  39. ms.Position = 0;
  40. TestRequiredLite.Builder copy = (TestRequiredLite.Builder)new BinaryFormatter().Deserialize(ms);
  41. Assert.AreEqual(builder.BuildPartial(), copy.BuildPartial());
  42. }
  43. }
  44. }