public void TestRanges() { SeekableStringReader s = new SeekableStringReader("hello"); Assert.Throws <ParseException>(() => s.Read(-1)); Assert.AreEqual("hello", s.Read(999)); Assert.Throws <ParseException>(() => s.Read(1)); s.Rewind(int.MaxValue); Assert.IsTrue(s.HasMore()); Assert.AreEqual("hello", s.Peek(999)); Assert.IsTrue(s.HasMore()); }
public void TestReadUntil() { SeekableStringReader s = new SeekableStringReader("hello there"); s.Read(); Assert.AreEqual("ello", s.ReadUntil(' ')); Assert.AreEqual('t', s.Peek()); Assert.Throws <ParseException>(() => s.ReadUntil('x')); Assert.AreEqual("there", s.Rest()); Assert.Throws <ParseException>(() => s.Rest()); s.Rewind(int.MaxValue); Assert.AreEqual("hell", s.ReadUntil('x', 'y', 'z', ' ', 'o')); Assert.Throws <ParseException>(() => s.ReadUntil('x', 'y', '@')); }