Beispiel #1
0
        public void MarkTest()
        {
            MemoryStream stream = new MemoryStream();
            StreamWriter writer = new StreamWriter(stream);

            writer.Write("hi pals");
            writer.Flush();
            stream.Seek(0, SeekOrigin.Begin);

            using (TextReader reader = new StreamReader(stream))
            {
                ParserReader parser = new ParserReader(reader);
                Assert.AreEqual('h', (char)parser.GetCurrent(), "MarkTest#100");
                parser.Mark(); //mark a save point
                Assert.AreEqual('h', (char)parser.Read(), "MarkTest#200");
                Assert.AreEqual('i', (char)parser.Read(), "MarkTest#300");
                Assert.AreEqual(' ', (char)parser.Read(), "MarkTest#400");
                Assert.AreEqual('p', (char)parser.GetCurrent(), "MarkTest#500");
                Assert.AreEqual('p', (char)parser.Read(), "MarkTest#550");
                Assert.AreEqual("hi p", parser.GetString(), "MarkTest#575");
                parser.Reset(); // reset to the last save point
                Assert.AreEqual('h', (char)parser.GetCurrent(), "MarkTest#600");
                parser.Mark();
                Assert.AreEqual('h', (char)parser.GetCurrent(), "MarkTest#700");
                parser.Unmark();
                Assert.AreEqual('h', (char)parser.GetCurrent(), "MarkTest#800");
                Assert.AreEqual('h', (char)parser.Read(), "MarkTest#900");
                Assert.AreEqual('i', (char)parser.Read(), "MarkTest#925");
                Assert.AreEqual(' ', (char)parser.GetCurrent(), "MarkTest#950");
                Assert.AreEqual('h', (char)parser.GetPrevious(), "MarkTest#1000");
            }
        }