コード例 #1
0
        public void GetByteAt_throws_exception_for_negative_index()
        {
            int window     = 100;
            var streamMock = new Mock <MemoryStream>(MockBehavior.Strict);

            SetupMockStreamRead(streamMock).Returns((byte[] s, int o, int l) => 50);
            var buf = new SlidingStreamBuffer(streamMock.Object, window);

            buf.GetByteAt(-1);
        }
コード例 #2
0
        public void GetByteAt_calls_warmup_if_necessary()
        {
            int window     = 100;
            var streamMock = new Mock <MemoryStream>(MockBehavior.Strict);

            SetupMockStreamRead(streamMock).Returns((byte[] s, int o, int l) => 50);
            var buf = new SlidingStreamBuffer(streamMock.Object, window);

            buf.GetByteAt(0);
            streamMock.VerifyAll();
        }
コード例 #3
0
        public void MoveForward_causes_more_data_to_be_read_when_no_padding_buffer_is_supplied()
        {
            int window     = 100;
            var streamMock = new Mock <MemoryStream>(MockBehavior.Strict);

            SetupMockStreamRead(streamMock).Returns((byte[] s, int o, int l) => l);
            var buf = new SlidingStreamBuffer(streamMock.Object, window, 0);

            buf.Warmup();
            buf.MoveForward(1);
            buf.GetByteAt(0);
            streamMock.Verify(x =>
                              x.Read(
                                  It.IsAny <byte[]>(),
                                  It.IsAny <int>(),
                                  It.IsAny <int>()),
                              Times.Exactly(2));
        }
コード例 #4
0
        public void GetByteAt_retrieves_correct_byte()
        {
            int window = 100;
            var buffer = new byte[window];

            for (int i = 0; i < buffer.Length; ++i)
            {
                buffer[i] = (byte)(200 - i);
            }
            var streamMock = new Mock <MemoryStream>(MockBehavior.Strict);

            SetupMockStreamRead(streamMock)
            .Returns((byte[] s, int o, int l) =>
            {
                int actualLength = MathEx.Bounded(0, Math.Min(l, buffer.Length), buffer.Length);
                Array.Copy(buffer, 0, s, o, actualLength);
                return(actualLength);
            });
            var buf = new SlidingStreamBuffer(streamMock.Object, window);

            buf.Warmup();
            Assert.AreEqual(buffer[5], buf.GetByteAt(5));
        }