package org.zwobble.mammoth.tests.xml; import org.hamcrest.Matcher; import org.hamcrest.collection.IsEmptyIterable; import org.hamcrest.collection.IsIterableContainingInOrder; import org.junit.jupiter.api.Test; import org.zwobble.mammoth.internal.xml.NamespacePrefixes; import org.zwobble.mammoth.internal.xml.XmlElement; import org.zwobble.mammoth.internal.xml.XmlNode; import org.zwobble.mammoth.internal.xml.XmlTextNode; import org.zwobble.mammoth.internal.xml.parsing.XmlParser; import java.io.ByteArrayInputStream; import java.util.List; import java.util.Map; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; import static org.zwobble.mammoth.internal.util.Lists.list; import static org.zwobble.mammoth.internal.util.Maps.map; public class XmlParserTests { private final XmlParser parser = new XmlParser(new NamespacePrefixes(map())); @Test public void canParseSelfClosingElement() { assertThat( parser.parseString("
"), isElement("body")); } @Test public void canParseAttributesOfTag() { assertThat( parser.parseString(""), isElement("body", map("name", "bob"))); } @Test public void canParseElementWithDescendantElements() { assertThat( parser.parseString(""), isElement("body", map(), list( isElement("a", map(), list( isElement("b"))), isElement("a")))); } @Test public void canParseTextNodes() { assertThat( parser.parseString("Hello!"), isElement("body", map(), list( isTextNode("Hello!")))); } @Test public void unmappedNamespaceUrisInElementNamesAreIncludedInBracesAsPrefix() { assertThat( parser.parseString("