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