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)); }
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); } }
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)); }
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)); }
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)); }
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); }
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); }
public void Constructor_CalculatesIndentCountCorrectly(string indent, string content, int expectedIndent) { var line = new HamlLine(content, HamlRuleEnum.PlainText, indent, 0); Assert.AreEqual(expectedIndent, line.IndentCount); }
protected HamlNode(HamlLine nodeLine) { _line = nodeLine; Content = nodeLine.Content; SourceFileLineNum = _line.SourceFileLineNo; }
public HamlNodeEval(HamlLine line) : base(line) { }
public void GetHamlNode_TagSubTypes_ThrowsHamlUnknownRuleException(HamlRuleEnum rule, Type nodeType) { var line = new HamlLine("Blah", rule, "", 0); Assert.Throws <HamlUnknownRuleException>(() => HamlNodeFactory.GetHamlNode(line)); }
public void Children_IncompleteVariableReference_ThrowsException() { var line = new HamlLine("#{variable", HamlRuleEnum.PlainText, "", 0); Assert.Throws <HamlMalformedVariableException>(() => new HamlNodeTextContainer(line)); }
public HamlNodePartial(HamlLine line) : base(line) { IsResolved = false; }
public HamlNodeCode(HamlLine line) : base(line) { }
public HamlNodeDocType(HamlLine line) : base(line) { }