public void Read_MultiLineTemplate_MoveNextReturnsSecondCurrentLine()
 {
     string template = "test\ntest2";
     var textReader = new StringReader(template);
     var result = new HamlFileLexer().Read(textReader, "");
     result.MoveNext();
     Assert.AreEqual("test2", result.CurrentLine.Content);
 }
        public void Read_DeterminesLineNumbersCorrectly()
        {
            var textReader = new StringReader("Line1\nLine2\r\nLine3\n\rLine4");
            var result = new HamlFileLexer().Read(textReader, "");

            // Assert
            for (int c = 1; c < 5; c++)
            {
                Assert.That(result.CurrentLine.Metrics.LineNo, Is.EqualTo(c));
                result.MoveNext();
            }
        }
        public void Read_HandlesNonStandardLineBreaksCorrectly(string template, int expectedLineCount, string expectedLine1, string expectedLine2)
        {
            var textReader = new StringReader(template);
            var result = new HamlFileLexer().Read(textReader, "");

            // Assert
            Assert.AreEqual(expectedLineCount, result.LineCount);
            Assert.AreEqual(expectedLine1, result.CurrentLine.Content);
            if (!result.EndOfFile)
            {
                result.MoveNext();
                Assert.AreEqual(expectedLine2, result.CurrentLine.Content);
            }
        }
 public void Read_SplitLineTag_ReturnsSingleLine(string template, string expectedTag, string expectedContent)
 {
     var textReader = new StringReader(template);
     var result = new HamlFileLexer().Read(textReader, "");
     Assert.That(result.CurrentLine.Content, Is.EqualTo(expectedTag));
     result.MoveNext();
     Assert.That(result.CurrentLine.Content, Is.EqualTo(expectedContent));
 }
 public void Read_SingleLineTemplate_MoveNextReturnsNullCurrentLine()
 {
     string template = "test";
     var textReader = new StringReader(template);
     var result = new HamlFileLexer().Read(textReader, "");
     result.MoveNext();
     Assert.IsNull(result.CurrentLine);
 }