public void Pop_NullReader_ReturnsNullChar() { using (var scanner = new TextReaderStream(TextReader.Null)) { Assert.Equal('\0', scanner.Pop()); } }
public void Pop_NullReader_ReturnsEmptySequence() { using (var scanner = new TextReaderStream(TextReader.Null)) { var buffer = new StringBuilder(); while (!scanner.IsCompleted) { buffer.Append(scanner.Pop()); } Assert.Equal(String.Empty, buffer.ToString()); } }
public void Peek_LongString_ReturnsSameAsPop() { const string input = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; using (var scanner = new TextReaderStream(new StringReader(input))) { while (!scanner.IsCompleted) { char ch = scanner.Peek(); Assert.Equal(scanner.Pop(), ch); } Assert.Equal(true, scanner.IsCompleted); } }
public void Pop_UnicodeSequence_ReturnsSameSequence() { const string input = "私が日本語を話すことはありません。"; using (var scanner = new TextReaderStream(new StringReader(input))) { var buffer = new StringBuilder(); while (!scanner.IsCompleted) { buffer.Append(scanner.Pop()); } Assert.Equal(input, buffer.ToString()); } }
public void Pop_EscapedSequence_ReturnsSameSequence() { const string input = @"""\\\b\f\n\r\t\u0123\u4567\u89AB\uCDEF\uabcd\uef4A\"""""; using (var scanner = new TextReaderStream(new StringReader(input))) { var buffer = new StringBuilder(); while (!scanner.IsCompleted) { buffer.Append(scanner.Pop()); } Assert.Equal(input, buffer.ToString()); } }
public void Pop_LongSequence_ReturnsSameSequence() { const string input = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; using (var scanner = new TextReaderStream(new StringReader(input))) { var buffer = new StringBuilder(); while (!scanner.IsCompleted) { buffer.Append(scanner.Pop()); } Assert.Equal(input, buffer.ToString()); } }
public void Column_MultilineString_CountsCorrectNumberOfColumns() { const string input = @"Line one Line two Line three Line Four"; using (var scanner = new TextReaderStream(new StringReader(input))) { while (!scanner.IsCompleted) { scanner.Pop(); } Assert.Equal(9, scanner.Column); } }
public void Index_MultilineString_CountsCorrectNumberOfChars() { const string input = @"Line one Line two Line three Line Four"; using (var scanner = new TextReaderStream(new StringReader(input))) { long i; for (i = 0; !scanner.IsCompleted; i++) { scanner.Pop(); Assert.Equal(i, scanner.Index); } Assert.Equal(i - 1, scanner.Index); } }