コード例 #1
0
        public void ReadCheckOneStreamOneByteOffsetDifferentThanZero()
        {
            using (var s = new FastCgiStreamImpl(true))
            {
                var stream = new RecordContentsStream();

                byte[] buf  = new byte[1];
                byte   data = (byte)93;
                buf[0] = data;

                stream.Write(buf, 0, 1);
                stream.Seek(0, SeekOrigin.Begin);
                s.AppendStream(stream);

                // Now read stuff. Set an offset to something different than 0
                byte[] newBuf = new byte[16];
                int    offset = 10;
                Assert.AreEqual(1, s.Read(newBuf, offset, 1));
                Assert.AreEqual(1, s.Position);
                Assert.AreEqual(data, newBuf[offset]);
            }
        }
コード例 #2
0
        public void WriteSeekAndReadPositionLength()
        {
            var s = new RecordContentsStream();

            byte[] testbuf = new byte[10];
            testbuf[0] = (byte)1;
            testbuf[5] = (byte)7;

            for (int i = 0; i < testbuf.Length; ++i)
            {
                s.Write(testbuf, i, 1);
            }

            s.Seek(0, System.IO.SeekOrigin.Begin);
            Assert.AreEqual(testbuf.Length, s.Length);
            Assert.AreEqual(0, s.Position);

            s.Position = 5;
            s.Read(testbuf, 0, 1);
            Assert.AreEqual(6, s.Position);
            Assert.AreEqual(testbuf.Length, s.Length);
            Assert.AreEqual(testbuf[0], testbuf[5]);
            Assert.AreEqual(testbuf[0], (byte)7);
        }