package de.neuland.jade4j.parser;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.junit.Assert.assertThat;
import de.neuland.jade4j.parser.node.TextNode;
import org.junit.Ignore;
import org.junit.Test;
import de.neuland.jade4j.parser.node.BlockNode;
import de.neuland.jade4j.parser.node.Node;
import de.neuland.jade4j.parser.node.TagNode;
@Ignore("Note working with new AttributeHandling")
public class TextParserTest extends ParserTest {
private Node block;
private TextNode tag1;
private Node tag2;
private Node tag;
@Test
public void shouldReturnTagsWithTexts() {
loadInParser("tags_with_text.jade");
block = (BlockNode) root;
assertThat(block.getNodes(), notNullValue());
assertThat(block.getNodes().size(), equalTo(2));
block = (TagNode)block.pollNode();
assertThat(((TagNode) block).getAttribute("class"), equalTo("myclass"));
block = block.getBlock();
tag1 = (TextNode)block.pollNode();
assertThat(((TextNode) tag1), nullValue());
assertThat(((TextNode) tag1).getValue(), equalTo("Hello World!"));
assertThat(block.hasNodes(), equalTo(true));
tag2 = block.pollNode();
assertThat(((TagNode) tag2).getAttribute("id"), equalTo("myid2"));
assertThat(((TagNode) tag2).getTextNode().getValue(), equalTo("without words"));
assertThat(block.hasNodes(), equalTo(false));
block = ((TextNode) tag1).getBlock();
tag = block.pollNode();
assertThat(((TagNode) tag).getAttribute("class"), equalTo("c1"));
assertThat(((TagNode) tag).getTextNode().getValue(), equalTo("The quick brown fox"));
assertThat(block.hasNodes(), equalTo(true));
tag = block.pollNode();
assertThat(((TagNode) tag).getAttribute("class"), equalTo("c2"));
assertThat(((TagNode) tag).getAttribute("id"), equalTo("myid"));
assertThat(((TagNode) tag).getTextNode().getValue(), equalTo("jumpes over the lazy dog"));
assertThat(block.hasNodes(), equalTo(false));
block = ((TagNode) tag2).getBlock();
tag = block.pollNode();
assertThat(((TagNode) tag).getAttribute("id"), equalTo("id1"));
assertThat(((TagNode) tag).getTextNode().getValue(), equalTo("without music"));
assertThat(block.hasNodes(), equalTo(false));
}
}