aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/xml/XmlElement.java4
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/xml/XmlElementTests.java21
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());
+ }
+}