Example #1
0
        public void GetHamlNode_DifferentHamlLineTypes_ReturnsCorrectHamlNode(HamlRuleEnum rule, Type nodeType)
        {
            var line   = new HamlLine("Blah", rule, "", 0);
            var result = HamlNodeFactory.GetHamlNode(line);

            Assert.That(result, Is.InstanceOf(nodeType));
        }
Example #2
0
        public static HamlNode GetHamlNode(HamlLine nodeLine)
        {
            switch (nodeLine.HamlRule)
            {
            case HamlRuleEnum.PlainText:
                return(new HamlNodeTextContainer(nodeLine));

            case HamlRuleEnum.Tag:
                return(new HamlNodeTag(nodeLine));

            case HamlRuleEnum.HamlComment:
                return(new HamlNodeHamlComment(nodeLine));

            case HamlRuleEnum.HtmlComment:
                return(new HamlNodeHtmlComment(nodeLine));

            case HamlRuleEnum.Evaluation:
                return(new HamlNodeEval(nodeLine));

            case HamlRuleEnum.Code:
                return(new HamlNodeCode(nodeLine));

            case HamlRuleEnum.DocType:
                return(new HamlNodeDocType(nodeLine));

            case HamlRuleEnum.Partial:
                return(new HamlNodePartial(nodeLine));

            default:
                throw new HamlUnknownRuleException(nodeLine.Content, nodeLine.SourceFileLineNo);
            }
        }
Example #3
0
        public void Constructor_MalformedHtmlStyleAttributes_ThrowsMalformedTagException()
        {
            const string templateLine = "p(a='b'";
            var          line         = new HamlLine(templateLine, HamlRuleEnum.Tag, "", 0);

            Assert.Throws <HamlMalformedTagException>(() => new HamlNodeTag(line));
        }
Example #4
0
        public void ParseHamlFile_UnknownRuleType_ThrowsUnknownRuleException()
        {
            var line = new HamlLine("", HamlRuleEnum.Unknown, "", 0);

            var file = new HamlFile("");

            file.AddLine(line);
            Assert.Throws <HamlUnknownRuleException>(() => _parser.ParseHamlFile(file));
        }
Example #5
0
        public void Walk_TextNode_AppendsCorrectTag()
        {
            // Arrange
            var content  = new HamlLine("Simple content", HamlRuleEnum.PlainText, "", 0);
            var document = HamlDocumentBuilder.Create("",
                                                      new HamlNodeTextContainer(content));
            Type baseType = typeof(Template);

            // Act
            var builder = new ClassBuilderMock();

            new HamlDocumentWalker(builder).Walk(document, "", baseType, new List <string>());

            // Assert
            Assert.That(builder.Build(""), Is.EqualTo(content.Content));
        }
Example #6
0
        public void Walk_NestedTags_AppendsCorrectTags()
        {
            // Arrange
            HamlLine nestedText = new HamlLine("Hello world", HamlRuleEnum.PlainText, "  ", 0, true);
            var      tagNode    = new HamlNodeHtmlComment(new HamlLine("", HamlRuleEnum.HtmlComment, "", 0));

            tagNode.AddChild(new HamlNodeTextContainer(nestedText));

            // Act
            _walker.Walk(tagNode);

            // Assert
            string expectedComment = "<!--" + nestedText.Indent + nestedText.Content + " -->";

            Assert.That(_classBuilderMock.Build(""), Is.EqualTo(expectedComment));
        }
 public HamlNodeTextContainer(HamlLine nodeLine)
     : base(nodeLine)
 {
     ParseFragments(nodeLine.Content);
 }
Example #8
0
        public void Constructor_MaintainsIndentForNonTextNodes(string indent, string content, HamlRuleEnum rule, int expectedIndent)
        {
            var line = new HamlLine(content, rule, indent, 0);

            Assert.AreEqual(expectedIndent, line.IndentCount);
        }
Example #9
0
        public void Constructor_CalculatesIndentCountCorrectly(string indent, string content, int expectedIndent)
        {
            var line = new HamlLine(content, HamlRuleEnum.PlainText, indent, 0);

            Assert.AreEqual(expectedIndent, line.IndentCount);
        }
Example #10
0
 protected HamlNode(HamlLine nodeLine)
 {
     _line             = nodeLine;
     Content           = nodeLine.Content;
     SourceFileLineNum = _line.SourceFileLineNo;
 }
Example #11
0
 public HamlNodeEval(HamlLine line)
     : base(line)
 {
 }
Example #12
0
        public void GetHamlNode_TagSubTypes_ThrowsHamlUnknownRuleException(HamlRuleEnum rule, Type nodeType)
        {
            var line = new HamlLine("Blah", rule, "", 0);

            Assert.Throws <HamlUnknownRuleException>(() => HamlNodeFactory.GetHamlNode(line));
        }
Example #13
0
        public void Children_IncompleteVariableReference_ThrowsException()
        {
            var line = new HamlLine("#{variable", HamlRuleEnum.PlainText, "", 0);

            Assert.Throws <HamlMalformedVariableException>(() => new HamlNodeTextContainer(line));
        }
Example #14
0
 public HamlNodePartial(HamlLine line) : base(line)
 {
     IsResolved = false;
 }
Example #15
0
 public HamlNodeCode(HamlLine line)
     : base(line)
 {
 }
Example #16
0
 public HamlNodeDocType(HamlLine line)
     : base(line)
 {
 }