예제 #1
0
        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);
                }
            }
        }