public void ParseHamlFile_MultiLineTemplates_AddsLineBreakNode()
 {
     const string template = "Line1\nLine2";
     var file = new HamlFileLexer().Read(template);
     var result = _parser.ParseHamlFile(file);
     Assert.That(result.Children.ToList()[1].Content, Is.EqualTo("\n"));
 }
 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_FileName_ResultContainsFileName()
        {
            const string fileName = "testFileName";
            var textReader = new StringReader("");
            var result = new HamlFileLexer().Read(textReader, fileName);

            Assert.That(result.FileName, Is.EqualTo(fileName));
        }
        public void ParseHamlFile_InlineContent_PlacesLineBreaksCorrectly()
        {
            const string template = "%p =DateTime.Now()";
            var file = new HamlFileLexer().Read(template);
            var result = _parser.ParseHamlFile(file);

            var children = result.Children.ToList();
            Assert.That(children[0].Children.Count(), Is.EqualTo(1));
            Assert.That(children[0].Children.First().Content, Is.EqualTo("DateTime.Now()"));
        }
        public void HamlDocumentParser_JsonFiles_GeneratesCorrectContentIndexes(string testToExecute)
        {
            var documentList = TestDocumentLoader.LoadDocumentList();
            var document = documentList.Single(x => x.Name == testToExecute);

            var hamlFile = new HamlFileLexer().Read(document.Content);
            var hamlTree = new HamlTreeParser().ParseHamlFile(hamlFile);

            int tokenIndex = 0;
            VerifyTokens(hamlTree, ref tokenIndex, document.TokenList);
        }
        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 ParseHamlFile_NestedContent_PlacesLineBreaksCorrectly()
        {
            const string template = "%p Line 1\n%p\n  Line 2\n%p Line 3";
            var file = new HamlFileLexer().Read(template);
            var result = _parser.ParseHamlFile(file);

            var children = result.Children.ToList();

            Assert.That(children[1].Content, Is.EqualTo("\n"));
            Assert.That(children[2].Children.First().Content, Is.EqualTo("\n"));
            Assert.That(children[2].Children.Count(), Is.EqualTo(2));
            Assert.That(children[3].Content, Is.EqualTo("\n"));
        }
        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 ParseHamlFile_SingleLevelTemplates_TreeContainsCorrectNoOfChildren(string template, int expectedChildrenCount)
 {
     var file = new HamlFileLexer().Read(template);
     var result = _parser.ParseHamlFile(file);
     Assert.That(result.Children.Count(), Is.EqualTo(expectedChildrenCount));
 }
 public void ParseHamlFile_MultiLevelTemplates_TreeContainsCorrectNoChildren(string template, int expectedChildren)
 {
     var file = new HamlFileLexer().Read(template);
     var result = _parser.ParseHamlFile(file);
     Assert.AreEqual(expectedChildren, result.Children.Count());
 }
 public void ParseHamlFile_DifferentLineTypes_CreatesCorrectTreeNodeTypes(string template, Type nodeType)
 {
     var file = new HamlFileLexer().Read(template);
     var result = _parser.ParseHamlFile(file);
     Assert.IsInstanceOf(nodeType, result.Children.First());
 }
Exemple #12
0
 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));
 }
Exemple #13
0
 public void Read_ReturnsHamlFileWithCorrectLineCount(string template, int expectedLineCount)
 {
     var textReader = new StringReader(template);
     var result = new HamlFileLexer().Read(textReader, "");
     Assert.AreEqual(expectedLineCount, result.LineCount);
 }
Exemple #14
0
 public void Read_NormalUse_ReturnsHamlFile()
 {
     var textReader = new StringReader("");
     var result = new HamlFileLexer().Read(textReader, "");
     Assert.IsInstanceOf<HamlFile>(result);
 }
 public void ParseHamlFile_SingleLineTemplate_ReturnsHamlTree()
 {
     var file = new HamlFileLexer().Read("Test");
     var result = _parser.ParseHamlFile(file);
     Assert.IsInstanceOf(typeof(HamlDocument), result);
 }
Exemple #16
0
 public ViewSourceParser(HamlFileLexer fileLexer, HamlTreeParser treeParser)
 {
     _fileLexer = fileLexer;
     _treeParser = treeParser;
 }
Exemple #17
0
 public HamlTreeParser(HamlFileLexer hamlFileLexer)
 {
     _hamlFileLexer = hamlFileLexer;
 }
Exemple #18
0
 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);
 }