示例#1
0
        public void PeekDoesNotAdvanceStreamPosition()
        {
            var str = "Hello World!";

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str)))
                using (var bs = new BencodeStream(ms))
                {
                    Assert.Equal(0, bs.Position);
                    Assert.Equal('H', bs.Peek());
                    Assert.Equal(0, bs.Position);
                    Assert.Equal('H', bs.Peek());
                    Assert.Equal(0, bs.Position);
                }
        }
示例#2
0
        public void PeekUnnaffectedByReadPrevious()
        {
            var str = "abcdefghijkl";

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str)))
                using (var bs = new BencodeStream(ms))
                {
                    bs.Read(0);
                    Assert.Equal('a', bs.Peek());
                    bs.ReadPrevious();
                    Assert.Equal('a', bs.Peek());

                    bs.Read(1);
                    Assert.Equal('b', bs.Peek());
                    bs.ReadPrevious();
                    Assert.Equal('b', bs.Peek());
                }
        }
示例#3
0
        public void PeekAreChangedAfterReadSingleByte()
        {
            var str = "abcdefghijkl";

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str)))
                using (var bs = new BencodeStream(ms))
                {
                    byte[] bytes;

                    Assert.Equal('a', bs.Peek());

                    bytes = bs.Read(1);
                    Assert.Equal('a', (char)bytes[0]);
                    Assert.Equal('b', bs.Peek());

                    bytes = bs.Read(1);
                    Assert.Equal('b', (char)bytes[0]);
                    Assert.Equal('c', bs.Peek());
                }
        }
示例#4
0
        public void PeekAndReadEqual()
        {
            var str = "Hello World!";

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str)))
                using (var bs = new BencodeStream(ms))
                {
                    Assert.Equal('H', bs.Peek());
                    Assert.Equal('H', bs.Read());
                }
        }
示例#5
0
        public void PeekAtEndOfStreamThenReadBytes()
        {
            var str = "abcdefghijkl";

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str)))
                using (var bs = new BencodeStream(ms))
                {
                    bs.Read(12);
                    Assert.Equal(-1, bs.Peek());
                    Assert.Equal(0, bs.Read(4).Length);
                }
        }
示例#6
0
        public void ReadPreviousUnaffectedByPeek()
        {
            var str = "Hello World!";

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str)))
                using (var bs = new BencodeStream(ms))
                {
                    bs.Read(1);
                    Assert.Equal('H', bs.ReadPrevious());
                    Assert.Equal('e', bs.Peek());
                    Assert.Equal('H', bs.ReadPrevious());
                }
        }
示例#7
0
        public void PeekAreChangedAfterRead()
        {
            var str = "abcdefghijkl";

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str)))
                using (var bs = new BencodeStream(ms))
                {
                    Assert.Equal('a', bs.Peek());
                    Assert.Equal('a', bs.Read());

                    Assert.Equal('b', bs.Peek());
                    Assert.Equal('b', bs.Read());

                    Assert.Equal('c', bs.Peek());
                    Assert.Equal('c', bs.Read());

                    Assert.Equal('d', bs.Peek());
                    Assert.Equal('d', bs.Read());

                    Assert.Equal('e', bs.Peek());
                    Assert.Equal('e', bs.Read());
                }
        }