Jon Skeet | 6803686 | 2008-10-22 13:30:34 +0100 | [diff] [blame^] | 1 | using System.IO; |
| 2 | using NUnit.Framework; |
| 3 | using NestedMessage = Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage; |
| 4 | |
| 5 | namespace 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 | } |