using System.IO; using NUnit.Framework; using NestedMessage = Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage; namespace Google.ProtocolBuffers { [TestFixture] public class MessageStreamWriterTest { internal static readonly byte[] ThreeMessageData = new byte[] { (1 << 3) | 2, 2, // Field 1, 2 bytes long (first message) (1 << 3) | 0, 5, // Field 1, value 5 (1 << 3) | 2, 3, // Field 1, 3 bytes long (second message) (1 << 3) | 0, (1500 & 0x7f) | 0x80, 1500 >> 7, // Field 1, value 1500 (1 << 3) | 2, 0, // Field 1, no data (third message) }; [Test] public void ThreeMessages() { NestedMessage message1 = new NestedMessage.Builder { Bb = 5 }.Build(); NestedMessage message2 = new NestedMessage.Builder { Bb = 1500 }.Build(); NestedMessage message3 = new NestedMessage.Builder().Build(); byte[] data; using (MemoryStream stream = new MemoryStream()) { MessageStreamWriter writer = new MessageStreamWriter(stream); writer.Write(message1); writer.Write(message2); writer.Write(message3); writer.Flush(); data = stream.ToArray(); } TestUtil.AssertEqualBytes(ThreeMessageData, data); } } }