public void WhenMessageIsExactlyTheSizeOfBufferThenMessageIsDecoded() { // arrange var expectedPayloadBytes = new ArraySegment <byte>(new byte[] { 1, 2, 3, 4 }); using (var writer = new KafkaWriter()) { writer.Write(0L); using (writer.MarkForLength()) { new Message(expectedPayloadBytes, new ArraySegment <byte>(new byte[] { 0 }), 0, version: 0).WriteTo(writer); } var segment = writer.ToSegment(); // act/assert using (var reader = new KafkaReader(segment)) { var messages = reader.ReadMessages(0); var actualPayload = messages.First().Value; // assert var expectedPayload = new byte[] { 1, 2, 3, 4 }; CollectionAssert.AreEqual(expectedPayload, actualPayload); } } }