MessageStreamWriterTest.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System.IO;
  2. using NUnit.Framework;
  3. using NestedMessage = Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage;
  4. namespace Google.ProtocolBuffers {
  5. [TestFixture]
  6. public class MessageStreamWriterTest {
  7. internal static readonly byte[] ThreeMessageData = new byte[] {
  8. (1 << 3) | 2, 2, // Field 1, 2 bytes long (first message)
  9. (1 << 3) | 0, 5, // Field 1, value 5
  10. (1 << 3) | 2, 3, // Field 1, 3 bytes long (second message)
  11. (1 << 3) | 0, (1500 & 0x7f) | 0x80, 1500 >> 7, // Field 1, value 1500
  12. (1 << 3) | 2, 0, // Field 1, no data (third message)
  13. };
  14. [Test]
  15. public void ThreeMessages() {
  16. NestedMessage message1 = new NestedMessage.Builder { Bb = 5 }.Build();
  17. NestedMessage message2 = new NestedMessage.Builder { Bb = 1500 }.Build();
  18. NestedMessage message3 = new NestedMessage.Builder().Build();
  19. byte[] data;
  20. using (MemoryStream stream = new MemoryStream()) {
  21. MessageStreamWriter<NestedMessage> writer = new MessageStreamWriter<NestedMessage>(stream);
  22. writer.Write(message1);
  23. writer.Write(message2);
  24. writer.Write(message3);
  25. writer.Flush();
  26. data = stream.ToArray();
  27. }
  28. TestUtil.AssertEqualBytes(ThreeMessageData, data);
  29. }
  30. }
  31. }