diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java | 4 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/mammoth/tests/xml/XmlElementTests.java | 21 |
2 files changed, 23 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java b/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java index a0ed784..8b95973 100644 --- a/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java +++ b/src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java @@ -30,8 +30,8 @@ public class XmlElement implements XmlNode, XmlElementLike { } public String getAttribute(String name) { - // TODO: throw more informative error message - return getAttributeOrNone(name).get(); + return getAttributeOrNone(name) + .orElseThrow(() -> new RuntimeException("Element has no '" + name + "' attribute")); } @Override diff --git a/src/test/java/org/zwobble/mammoth/tests/xml/XmlElementTests.java b/src/test/java/org/zwobble/mammoth/tests/xml/XmlElementTests.java new file mode 100644 index 0000000..f396b1b --- /dev/null +++ b/src/test/java/org/zwobble/mammoth/tests/xml/XmlElementTests.java @@ -0,0 +1,21 @@ +package org.zwobble.mammoth.tests.xml; + +import org.junit.Test; +import org.zwobble.mammoth.internal.xml.XmlElement; +import org.zwobble.mammoth.internal.xml.XmlNodes; + +import static org.junit.Assert.assertEquals; +import static org.zwobble.mammoth.tests.util.MammothAsserts.assertThrows; + +public class XmlElementTests { + @Test + public void TryingToGetNonExistentAttributeThrowsException() { + XmlElement element = XmlNodes.element("p"); + + RuntimeException exception = assertThrows( + RuntimeException.class, + () -> element.getAttribute("class")); + + assertEquals("Element has no 'class' attribute", exception.getMessage()); + } +} |
