feat: implement mqtt packet-level parser and writer

This commit is contained in:
Joseph Doherty
2026-02-23 14:41:23 -05:00
parent 958c4aa8ed
commit 7faf42c588
5 changed files with 153 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
using NATS.Server.Mqtt;
namespace NATS.Server.Tests.Mqtt;
public class MqttPacketWriterTests
{
[Fact]
public void Writer_emits_fixed_header_and_round_trips_with_reader()
{
byte[] payload = Enumerable.Repeat((byte)0xAB, 130).ToArray();
var encoded = MqttPacketWriter.Write(MqttControlPacketType.Publish, payload);
encoded[0].ShouldBe((byte)0x30); // PUBLISH type with default flags
var decoded = MqttPacketReader.Read(encoded);
decoded.Type.ShouldBe(MqttControlPacketType.Publish);
decoded.RemainingLength.ShouldBe(payload.Length);
decoded.Payload.ToArray().ShouldBe(payload);
}
}