blob: 77dca827edf49af550b53ec7938baa462d47afed [file] [log] [blame]
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));
}
}