Ejemplo n.º 1
0
        public void InitializationData_IsNormal()
        {
            var buf = new SimpleBufferWriter(new byte[6]);

            buf.Position.Is(0);
            buf.Buffered.Is(0);
        }
Ejemplo n.º 2
0
        public void SeekBufferLengthIsNotException()
        {
            var buf = new SimpleBufferWriter(new byte[60], 2, 10);

            buf.Seek(10);
            buf.Position.Is(10);
        }
Ejemplo n.º 3
0
        public void SeekAndBufferedIsCorrectly()
        {
            var buf = new SimpleBufferWriter(new byte[60], 2, 10);

            buf.Seek(5);
            buf.Advance(1);
            buf.Position.Is(6);
            buf.Buffered.Is(0);
        }
Ejemplo n.º 4
0
        public void BufferedAndPositionIsCorrectly()
        {
            var buf = new SimpleBufferWriter(new byte[6], 2, 3);

            buf.Position.Is(0);
            buf.Buffered.Is(0);
            buf.Advance(1);
            buf.Position.Is(1);
            buf.Buffered.Is(1);
        }
Ejemplo n.º 5
0
        private static bool TryDeserializeFromMemoryStream(ref BssomDeserializeContext context, Stream stream, Type type, out object t)
        {
#if NETSTANDARD && !NET45
            if (stream is MemoryStream ms && ms.TryGetBuffer(out ArraySegment <byte> streamBuffer))
            {
                var buffer = new SimpleBufferWriter(streamBuffer.Array, streamBuffer.Offset, streamBuffer.Count);
                t = Deserialize(ref context, buffer, type);
                stream.Seek(buffer.Position, SeekOrigin.Current);
                return(true);
            }
#endif
            t = default;
            return(false);
        }
Ejemplo n.º 6
0
        public void WriteDataIsCorrectly()
        {
            var buf = new SimpleBufferWriter(new byte[60], 2, 10);

            Unsafe.WriteUnaligned(ref buf.GetRef(4), int.MinValue);
            buf.Advance(4);
            buf.Position.Is(4);
            buf.Buffered.Is(4);

            Unsafe.WriteUnaligned(ref buf.GetRef(4), int.MaxValue);
            buf.Advance(4);
            buf.Position.Is(8);
            buf.Buffered.Is(8);

            buf.Seek(0);
            Unsafe.ReadUnaligned <int>(ref buf.ReadRef()).Is(int.MinValue);

            buf.Seek(4);
            Unsafe.ReadUnaligned <int>(ref buf.ReadRef()).Is(int.MaxValue);
        }