Beispiel #1
0
        public void ContinuousMemoryBlockWriterBasicsWorks()
        {
            var byteArrayWriter = new ContinuousMemoryBlockWriter();

            Assert.Equal(0, byteArrayWriter.GetCurrentPositionWithoutWriter());
            Assert.Equal(Array.Empty <byte>(), byteArrayWriter.GetSpan().ToArray());
            Assert.Equal(Array.Empty <byte>(), byteArrayWriter.GetByteBuffer().ToByteArray());
            var writer = new SpanWriter(byteArrayWriter);

            writer.WriteInt8(42);
            writer.Sync();
            Assert.Equal(1, byteArrayWriter.GetCurrentPositionWithoutWriter());
            Assert.Equal(new byte[] { 42 }, byteArrayWriter.GetSpan().ToArray());
            Assert.Equal(new byte[] { 42 }, byteArrayWriter.GetByteBuffer().ToByteArray());
            writer.WriteInt8(1);
            Assert.Equal(2, writer.GetCurrentPosition());
            writer.SetCurrentPosition(1);
            writer.WriteBlock(new byte[] { 43, 44 });
            writer.Sync();
            Assert.Equal(3, byteArrayWriter.GetCurrentPositionWithoutWriter());
            Assert.Equal(new byte[] { 42, 43, 44 }, byteArrayWriter.GetSpan().ToArray());
            Assert.Equal(new byte[] { 42, 43, 44 }, byteArrayWriter.GetByteBuffer().ToByteArray());
        }