示例#1
0
        public static void TestStreamSeek()
        {
            DebugStream stm = StmInit("01234");

            Assert.AreEqual(5, stm.Seek(0, SeekOrigin.Current));
            Assert.AreEqual(5, stm.Seek(0, SeekOrigin.End));
            byte[] rgb = new byte[1];

            Assert.AreEqual(0, stm.Read(rgb, 0, 1));

            Assert.AreEqual(0, stm.Seek(0, SeekOrigin.Begin));
            Assert.AreEqual(1, stm.Read(rgb, 0, 1));
            Assert.AreEqual(1, stm.Seek(0, SeekOrigin.Current));
            Assert.AreEqual(Encoding.UTF8.GetBytes("0"), rgb);

            Assert.AreEqual(4, stm.Seek(-1, SeekOrigin.End));
            Assert.AreEqual(1, stm.Read(rgb, 0, 1));
            Assert.AreEqual(5, stm.Seek(0, SeekOrigin.Current));
            Assert.AreEqual(Encoding.UTF8.GetBytes("4"), rgb);

            Assert.AreEqual(3, stm.Seek(-2, SeekOrigin.Current));
            Assert.AreEqual(1, stm.Read(rgb, 0, 1));
            Assert.AreEqual(4, stm.Seek(0, SeekOrigin.Current));
            Assert.AreEqual(Encoding.UTF8.GetBytes("3"), rgb);
        }
示例#2
0
        public static void TestStreamWriteBasicWrite()
        {
            DebugStream stm = StmInit("test");

            Assert.AreEqual(4, stm.Length);
            Assert.AreEqual(4, stm.Position);
            Assert.AreEqual(4, stm.Seek(0, SeekOrigin.End));
        }
示例#3
0
        public static void TestStreamReadBasicRead()
        {
            DebugStream stm = StmInit("test");

            stm.Seek(0, SeekOrigin.Begin);

            byte[] rgb = new byte[4];

            Assert.AreEqual(4, stm.Read(rgb, 0, 4));
            Assert.AreEqual(Encoding.UTF8.GetBytes("test"), rgb);
        }
示例#4
0
        public static void TestStmCreateFromString(string sIn, byte[] rgbExpected)
        {
            DebugStream stm = StmCreateFromString(sIn);

            stm.Seek(0, SeekOrigin.Begin);
            Assert.AreEqual(rgbExpected.Length, stm.Length);

            byte[] rgbRead = new byte[rgbExpected.Length];
            stm.Read(rgbRead, 0, rgbExpected.Length);

            Assert.AreEqual(rgbExpected, rgbRead);
        }
示例#5
0
        public static void TestStreamWrite_SeekBack_WriteNoGrowFile()
        {
            DebugStream stm = StmInit("0123456789");

            stm.Seek(-4, SeekOrigin.Current);

            byte[] rgbWrite = new byte[2] {
                65, 66
            };
            stm.Write(rgbWrite, 0, 2);

            Assert.AreEqual(8, stm.Position);
            Assert.AreEqual(10, stm.Length);
            stm.Position = 0;

            byte[] rgbExpected = Encoding.UTF8.GetBytes("012345AB89");
            byte[] rgbRead     = new byte[10];
            Assert.AreEqual(10, stm.Read(rgbRead, 0, 10));
            Assert.AreEqual(rgbExpected, rgbRead);
        }
示例#6
0
        public static void TestStreamWrite_SeekBack_WriteGrowFile() // check that length and position are correct
        {
            DebugStream stm = StmInit("0123456789");

            stm.Seek(-2, SeekOrigin.Current);

            byte[] rgbWrite = new byte[3] {
                65, 66, 67
            };
            stm.Write(rgbWrite, 0, 3);

            Assert.AreEqual(11, stm.Position);
            Assert.AreEqual(11, stm.Length);
            stm.Position = 0;

            byte[] rgbExpected = Encoding.UTF8.GetBytes("01234567ABC");
            byte[] rgbRead     = new byte[11];
            Assert.AreEqual(11, stm.Read(rgbRead, 0, 11));
            Assert.AreEqual(rgbExpected, rgbRead);
        }