public virtual void CachesStrings() { CharacterReader r = new CharacterReader("Check\tCheck\tCheck\tCHOKE\tA string that is longer than 16 chars" ); String one = r.ConsumeTo('\t'); r.Consume(); String two = r.ConsumeTo('\t'); r.Consume(); String three = r.ConsumeTo('\t'); r.Consume(); String four = r.ConsumeTo('\t'); r.Consume(); String five = r.ConsumeTo('\t'); NUnit.Framework.Assert.AreEqual("Check", one); NUnit.Framework.Assert.AreEqual("Check", two); NUnit.Framework.Assert.AreEqual("Check", three); NUnit.Framework.Assert.AreEqual("CHOKE", four); NUnit.Framework.Assert.IsTrue(one == two); NUnit.Framework.Assert.IsTrue(two == three); NUnit.Framework.Assert.IsTrue(three != four); NUnit.Framework.Assert.IsTrue(four != five); NUnit.Framework.Assert.AreEqual(five, "A string that is longer than 16 chars"); }
public virtual void Advance() { CharacterReader r = new CharacterReader("One Two Three"); NUnit.Framework.Assert.AreEqual('O', r.Consume()); r.Advance(); NUnit.Framework.Assert.AreEqual('e', r.Consume()); }
public virtual void ConsumeToString() { CharacterReader r = new CharacterReader("One Two Two Four"); NUnit.Framework.Assert.AreEqual("One ", r.ConsumeTo("Two")); NUnit.Framework.Assert.AreEqual('T', r.Consume()); NUnit.Framework.Assert.AreEqual("wo ", r.ConsumeTo("Two")); NUnit.Framework.Assert.AreEqual('T', r.Consume()); NUnit.Framework.Assert.AreEqual("wo Four", r.ConsumeTo("Qux")); }
public virtual void Mark() { CharacterReader r = new CharacterReader("one"); r.Consume(); r.Mark(); NUnit.Framework.Assert.AreEqual('n', r.Consume()); NUnit.Framework.Assert.AreEqual('e', r.Consume()); NUnit.Framework.Assert.IsTrue(r.IsEmpty()); r.RewindToMark(); NUnit.Framework.Assert.AreEqual('n', r.Consume()); }
public virtual void ConsumeToAny() { CharacterReader r = new CharacterReader("One &bar; qux"); NUnit.Framework.Assert.AreEqual("One ", r.ConsumeToAny('&', ';')); NUnit.Framework.Assert.IsTrue(r.Matches('&')); NUnit.Framework.Assert.IsTrue(r.Matches("&bar;")); NUnit.Framework.Assert.AreEqual('&', r.Consume()); NUnit.Framework.Assert.AreEqual("bar", r.ConsumeToAny('&', ';')); NUnit.Framework.Assert.AreEqual(';', r.Consume()); NUnit.Framework.Assert.AreEqual(" qux", r.ConsumeToAny('&', ';')); }
public virtual void ConsumeToChar() { CharacterReader r = new CharacterReader("One Two Three"); NUnit.Framework.Assert.AreEqual("One ", r.ConsumeTo('T')); NUnit.Framework.Assert.AreEqual("", r.ConsumeTo('T')); // on Two NUnit.Framework.Assert.AreEqual('T', r.Consume()); NUnit.Framework.Assert.AreEqual("wo ", r.ConsumeTo('T')); NUnit.Framework.Assert.AreEqual('T', r.Consume()); NUnit.Framework.Assert.AreEqual("hree", r.ConsumeTo('T')); }
public virtual void Consume() { CharacterReader r = new CharacterReader("one"); NUnit.Framework.Assert.AreEqual(0, r.Pos()); NUnit.Framework.Assert.AreEqual('o', r.Current()); NUnit.Framework.Assert.AreEqual('o', r.Consume()); NUnit.Framework.Assert.AreEqual(1, r.Pos()); NUnit.Framework.Assert.AreEqual('n', r.Current()); NUnit.Framework.Assert.AreEqual(1, r.Pos()); NUnit.Framework.Assert.AreEqual('n', r.Consume()); NUnit.Framework.Assert.AreEqual('e', r.Consume()); NUnit.Framework.Assert.IsTrue(r.IsEmpty()); NUnit.Framework.Assert.AreEqual(CharacterReader.EOF, r.Consume()); NUnit.Framework.Assert.IsTrue(r.IsEmpty()); NUnit.Framework.Assert.AreEqual(CharacterReader.EOF, r.Consume()); }
public virtual void ConsumeLetterThenDigitSequence() { CharacterReader r = new CharacterReader("One12 Two &bar; qux"); NUnit.Framework.Assert.AreEqual("One12", r.ConsumeLetterThenDigitSequence()); NUnit.Framework.Assert.AreEqual(' ', r.Consume()); NUnit.Framework.Assert.AreEqual("Two", r.ConsumeLetterThenDigitSequence()); NUnit.Framework.Assert.AreEqual(" &bar; qux", r.ConsumeToEnd()); }
public virtual void MatchesAny() { char[] scan = new char[] { ' ', '\n', '\t' }; CharacterReader r = new CharacterReader("One\nTwo\tThree"); NUnit.Framework.Assert.IsFalse(r.MatchesAny(scan)); NUnit.Framework.Assert.AreEqual("One", r.ConsumeToAny(scan)); NUnit.Framework.Assert.IsTrue(r.MatchesAny(scan)); NUnit.Framework.Assert.AreEqual('\n', r.Consume()); NUnit.Framework.Assert.IsFalse(r.MatchesAny(scan)); }
public virtual void Matches() { CharacterReader r = new CharacterReader("One Two Three"); NUnit.Framework.Assert.IsTrue(r.Matches('O')); NUnit.Framework.Assert.IsTrue(r.Matches("One Two Three")); NUnit.Framework.Assert.IsTrue(r.Matches("One")); NUnit.Framework.Assert.IsFalse(r.Matches("one")); NUnit.Framework.Assert.AreEqual('O', r.Consume()); NUnit.Framework.Assert.IsFalse(r.Matches("One")); NUnit.Framework.Assert.IsTrue(r.Matches("ne Two Three")); NUnit.Framework.Assert.IsFalse(r.Matches("ne Two Three Four")); NUnit.Framework.Assert.AreEqual("ne Two Three", r.ConsumeToEnd()); NUnit.Framework.Assert.IsFalse(r.Matches("ne")); }
public virtual void NextIndexOfChar() { String @in = "blah blah"; CharacterReader r = new CharacterReader(@in); NUnit.Framework.Assert.AreEqual(-1, r.NextIndexOf('x')); NUnit.Framework.Assert.AreEqual(3, r.NextIndexOf('h')); String pull = r.ConsumeTo('h'); NUnit.Framework.Assert.AreEqual("bla", pull); r.Consume(); NUnit.Framework.Assert.AreEqual(2, r.NextIndexOf('l')); NUnit.Framework.Assert.AreEqual(" blah", r.ConsumeToEnd()); NUnit.Framework.Assert.AreEqual(-1, r.NextIndexOf('x')); }
// Element currentNode = currentNode(); // return currentNode != null && currentNode.namespace().equals("HTML"); /// <summary>Utility method to consume reader and unescape entities found within.</summary> /// <param name="inAttribute"/> /// <returns>unescaped string from reader</returns> internal String UnescapeEntities(bool inAttribute) { StringBuilder builder = new StringBuilder(); while (!reader.IsEmpty()) { builder.Append(reader.ConsumeTo('&')); if (reader.Matches('&')) { reader.Consume(); char[] c = ConsumeCharacterReference(null, inAttribute); if (c == null || c.Length == 0) { builder.Append('&'); } else { builder.Append(c); } } } return(builder.ToString()); }