Пример #1
0
        public void OnlyWriteAtEndOfStream()
        {
            var s = new RecordContentsStream();

            byte[] testbuf = new byte[10];

            s.Write(testbuf, 0, testbuf.Length);
            s.Position = 0;

            Assert.Throws <NotImplementedException>(() => {
                s.Write(testbuf, 0, 1);
            });
        }
Пример #2
0
        public void WriteMoreThanLimit()
        {
            var s = new RecordContentsStream();

            // 65535 bytes is the limit of the contents of a record

            byte[] anything = new byte[1024];
            for (int i = 0; i < 64; ++i)
            {
                s.Write(anything, 0, i == 63 ? 1023 : 1024);
            }

            // Exception now!
            Assert.Throws <InvalidOperationException>(() => s.Write(anything, 0, 1));
        }
Пример #3
0
        public void WritePositionLength()
        {
            var s = new RecordContentsStream();

            byte[] testbuf = new byte[10];

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

            Assert.AreEqual(testbuf.Length, s.Length);
            Assert.AreEqual(testbuf.Length, s.Position);
        }
Пример #4
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]);
            }
        }
Пример #5
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);
        }