/// <summary> /// Initializes a new instance of the <see cref="MdlScanner"/> class. /// </summary> /// <param name="sourceReader"></param> public MdlScanner(SourceReader sourceReader) { if(sourceReader == null) throw new ArgumentNullException("sourceReader"); this.sourceReader = sourceReader; }
public void ReadNextUpdatesPosition() { string source = "1 2" + System.Environment.NewLine + "3456" + System.Environment.NewLine + "789"; SourceReader sourceReader = new SourceReader(new StringReader(source)); Assert.IsFalse(sourceReader.Empty); Assert.AreEqual(0, sourceReader.Line); Assert.AreEqual(-1, sourceReader.Column); Assert.AreEqual('1', sourceReader.ReadNext()); Assert.AreEqual(0, sourceReader.Line); Assert.AreEqual(0, sourceReader.Column); Assert.AreEqual(' ', sourceReader.ReadNext()); Assert.AreEqual('2', sourceReader.ReadNext()); Assert.AreEqual('\r', sourceReader.ReadNext()); Assert.AreEqual('\n', sourceReader.ReadNext()); Assert.AreEqual('3', sourceReader.ReadNext()); Assert.AreEqual(1, sourceReader.Line); Assert.AreEqual(0, sourceReader.Column); Assert.AreEqual('4', sourceReader.ReadNext()); Assert.AreEqual(1, sourceReader.Line); Assert.AreEqual(1, sourceReader.Column); Assert.AreEqual('5', sourceReader.ReadNext()); Assert.AreEqual('6', sourceReader.ReadNext()); Assert.AreEqual('\r', sourceReader.ReadNext()); Assert.AreEqual('\n', sourceReader.ReadNext()); Assert.AreEqual('7', sourceReader.ReadNext()); Assert.AreEqual(2 , sourceReader.Line); Assert.AreEqual(0, sourceReader.Column); }
public void ReadNextReadsAllSource() { string source = "1 2" + System.Environment.NewLine + "3456" + System.Environment.NewLine + "789"; SourceReader sourceReader = new SourceReader(new StringReader(source)); StringBuilder sourceBuilder = new StringBuilder(); while(!sourceReader.Empty) sourceBuilder.Append(sourceReader.ReadNext()); Assert.AreEqual(source, sourceBuilder.ToString()); }
public void ReadNextThrowsInvalidOperationExceptionOnEmptyReader() { SourceReader sourceReader = new SourceReader(new StringReader(string.Empty)); sourceReader.ReadNext(); }
public void NextThrowsInvalidOperationExceptionOnEmptyReader() { SourceReader sourceReader = new SourceReader(new StringReader(string.Empty)); char next = sourceReader.Next; }