public void PositionTest()
        {
            BufferedInMemoryTextReader target = new BufferedInMemoryTextReader(new StringReader("abcdef"));

            Assert.AreEqual(0, target.Position, "Must start from the beginning.");
            target.Read();
            Assert.AreEqual(1, target.Position, "Must advance 1 charatcer.");
        }
        public void PeekTest()
        {
            BufferedInMemoryTextReader target = new BufferedInMemoryTextReader(new StringReader("abcdef"));

            Assert.AreEqual('a', target.Peek());
            Assert.AreEqual('a', target.Peek());
            Assert.AreEqual('a', target.Read());
            Assert.AreEqual('b', target.Peek());
            Assert.AreEqual('b', target.Peek());
        }
        public void ReadToEndTest()
        {
            BufferedInMemoryTextReader target = new BufferedInMemoryTextReader(new StringReader("Hello 1\nWorld 1!\n"));

            Assert.AreEqual("Hello 1", target.ReadLine());
            Assert.AreEqual("World 1!\n", target.ReadToEnd());
            target = new BufferedInMemoryTextReader(new StringReader("Hello 1\nWorld 1!"));
            Assert.AreEqual("Hello 1", target.ReadLine());
            Assert.AreEqual("World 1!", target.ReadToEnd());
        }
        public void ReadTest1()
        {
            BufferedInMemoryTextReader target = new BufferedInMemoryTextReader(new StringReader("abcdef"));

            Assert.AreEqual('a', target.Read());
            Assert.AreEqual('b', target.Read());
            Assert.AreEqual('c', target.Read());
            Assert.AreEqual('d', target.Read());
            Assert.AreEqual('e', target.Read());
            Assert.AreEqual('f', target.Read());
            Assert.AreEqual(-1, target.Read());
            Assert.AreEqual(-1, target.Read());
        }
        public void ReadBlockTest()
        {
            BufferedInMemoryTextReader target = new BufferedInMemoryTextReader(new StringReader("abcdef"));

            char[] buffer = new char[] { '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' };
            int    actual = target.ReadBlock(buffer, 0, 4);

            Assert.AreEqual('a', buffer[0]);
            Assert.AreEqual('b', buffer[1]);
            Assert.AreEqual('c', buffer[2]);
            Assert.AreEqual('d', buffer[3]);
            Assert.AreEqual('5', buffer[4]);
            Assert.AreEqual('6', buffer[5]);
        }
        public void ReadLineTest()
        {
            BufferedInMemoryTextReader target = new BufferedInMemoryTextReader(new StringReader("Hello 1\nWorld 1!\n"));

            Assert.AreEqual("Hello 1", target.ReadLine());
            Assert.AreEqual("World 1!", target.ReadLine());
            Assert.AreEqual(null, target.ReadLine());
            target = new BufferedInMemoryTextReader(new StringReader("Hello 2\r\nWorld 2!\r\n"));
            Assert.AreEqual("Hello 2", target.ReadLine());
            Assert.AreEqual("World 2!", target.ReadLine());
            Assert.AreEqual(null, target.ReadLine());
            // FIXME: Is this right? Shouldn't we get the last line here?
            target = new BufferedInMemoryTextReader(new StringReader("Hello 3\nWorld 3!"));
            Assert.AreEqual("Hello 3", target.ReadLine());
            Assert.AreEqual(null, target.ReadLine());
        }
        public void LengthTest()
        {
            BufferedInMemoryTextReader target = new BufferedInMemoryTextReader(new StringReader("abcdef"));

            Assert.AreEqual(6, target.Length, "Must pre-buffer reader.");
        }
 public void ConstructorTest()
 {
     BufferedInMemoryTextReader target = new BufferedInMemoryTextReader(new StringReader("abcdef"));
 }