| using System.IO; | |
| using Google.Protobuf.Buffers; | |
| using Google.Protobuf.TestProtos; | |
| using NUnit.Framework; | |
| namespace Google.Protobuf; | |
| public class MessageExtensionsTest | |
| { | |
| [Test] | |
| public void TestWriteLengthPrefixedToWithBufferWriter() | |
| { | |
| TestWellKnownTypes message = new() { StringField = "abcd" }; | |
| TestArrayBufferWriter<byte> buffer = new(); | |
| message.WriteLengthPrefixedTo(buffer); | |
| Assert.That( | |
| buffer.WrittenSpan.ToArray(), | |
| Is.EqualTo(new byte[] | |
| { | |
| 9, // length prefix | |
| 138, 1, // tag | |
| 6, // message length | |
| 10, // tag | |
| 4, // string length | |
| 97, 98, 99, 100, // abcd | |
| })); | |
| } | |
| [Test] | |
| public void TestWriteLengthPrefixedToRoundTripWithBufferWriter() | |
| { | |
| TestWellKnownTypes message = new() { Int32Field = 25 }; | |
| TestArrayBufferWriter<byte> buffer = new(); | |
| message.WriteLengthPrefixedTo(buffer); | |
| Assert.That( | |
| TestWellKnownTypes.Parser.ParseDelimitedFrom(new MemoryStream(buffer.WrittenSpan.ToArray())), | |
| Is.EqualTo(message)); | |
| } | |
| } |