summaryrefslogtreecommitdiff
path: root/src/test/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/org')
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/DeepReflectionMatcher.java10
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlReaderMakers.java6
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java21
3 files changed, 33 insertions, 4 deletions
diff --git a/src/test/java/org/zwobble/mammoth/tests/DeepReflectionMatcher.java b/src/test/java/org/zwobble/mammoth/tests/DeepReflectionMatcher.java
index 09258af..2d70d3e 100644
--- a/src/test/java/org/zwobble/mammoth/tests/DeepReflectionMatcher.java
+++ b/src/test/java/org/zwobble/mammoth/tests/DeepReflectionMatcher.java
@@ -53,7 +53,11 @@ public class DeepReflectionMatcher<T> extends TypeSafeDiagnosingMatcher<T> {
}
if (expected instanceof String) {
- return matchesString(path, expected, actual, mismatchDescription);
+ return matchesPrimitive(path, expected, actual, mismatchDescription);
+ }
+
+ if (expected instanceof Boolean) {
+ return matchesPrimitive(path, expected, actual, mismatchDescription);
}
for (Field field : fields(expected.getClass())) {
@@ -139,7 +143,7 @@ public class DeepReflectionMatcher<T> extends TypeSafeDiagnosingMatcher<T> {
return true;
}
- private static <T> boolean matchesString(String path, T expected, T actual, Description mismatchDescription) {
+ private static <T> boolean matchesPrimitive(String path, T expected, T actual, Description mismatchDescription) {
Matcher<Object> matcher = Matchers.equalTo(expected);
if (!matcher.matches(actual)) {
appendPath(mismatchDescription, path);
@@ -160,7 +164,7 @@ public class DeepReflectionMatcher<T> extends TypeSafeDiagnosingMatcher<T> {
}
private static String describeValue(Object value) {
- if (value instanceof String) {
+ if (value instanceof String || value instanceof Boolean) {
return value.toString();
} else if (value instanceof Optional) {
Optional<?> optional = (Optional)value;
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlReaderMakers.java b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlReaderMakers.java
index 6dafdee..9df21e9 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlReaderMakers.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlReaderMakers.java
@@ -3,13 +3,17 @@ package org.zwobble.mammoth.tests.docx;
import com.natpryce.makeiteasy.Instantiator;
import com.natpryce.makeiteasy.Property;
import org.zwobble.mammoth.docx.BodyXmlReader;
+import org.zwobble.mammoth.docx.Numbering;
import org.zwobble.mammoth.docx.Styles;
import static com.natpryce.makeiteasy.Property.newProperty;
public class BodyXmlReaderMakers {
public static final Property<BodyXmlReader, Styles> STYLES = newProperty();
+ public static final Property<BodyXmlReader, Numbering> NUMBERING = newProperty();
public static final Instantiator<BodyXmlReader> bodyReader =
- propertyLookup -> new BodyXmlReader(propertyLookup.valueOf(STYLES, Styles.EMPTY));
+ propertyLookup -> new BodyXmlReader(
+ propertyLookup.valueOf(STYLES, Styles.EMPTY),
+ propertyLookup.valueOf(NUMBERING, Numbering.EMPTY));
}
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
index d1dac9d..0a755e4 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
@@ -5,6 +5,7 @@ import org.hamcrest.Matcher;
import org.junit.Test;
import org.zwobble.mammoth.documents.*;
import org.zwobble.mammoth.docx.BodyXmlReader;
+import org.zwobble.mammoth.docx.Numbering;
import org.zwobble.mammoth.docx.Styles;
import org.zwobble.mammoth.tests.DeepReflectionMatcher;
import org.zwobble.mammoth.xml.XmlElement;
@@ -21,6 +22,7 @@ import static org.hamcrest.Matchers.hasProperty;
import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals;
import static org.zwobble.mammoth.tests.documents.DocumentElementMakers.CHILDREN;
import static org.zwobble.mammoth.tests.documents.DocumentElementMakers.PARAGRAPH;
+import static org.zwobble.mammoth.tests.docx.BodyXmlReaderMakers.NUMBERING;
import static org.zwobble.mammoth.tests.docx.BodyXmlReaderMakers.STYLES;
import static org.zwobble.mammoth.tests.docx.BodyXmlReaderMakers.bodyReader;
import static org.zwobble.mammoth.util.MammothLists.list;
@@ -93,6 +95,21 @@ public class BodyXmlTests {
hasNumbering(Optional.empty()));
}
+ @Test
+ public void paragraphHasNumberingPropertiesFromParagraphPropertiesIfPresent() {
+ XmlElement element = paragraphXml(list(
+ element("w:pPr", list(
+ element("w:numPr", map(), list(
+ element("w:ilvl", map("w:val", "1")),
+ element("w:numId", map("w:val", "42"))))))));
+
+ Numbering numbering = new Numbering(map("42", map("1", NumberingLevel.ordered("1"))));
+
+ assertThat(
+ read(a(bodyReader, with(NUMBERING, numbering)), element),
+ hasNumbering(NumberingLevel.ordered("1")));
+ }
+
private static DocumentElement read(Maker<BodyXmlReader> reader, XmlElement element) {
return reader.make().readElement(element).get(0);
}
@@ -129,6 +146,10 @@ public class BodyXmlTests {
return hasProperty("style", deepEquals(expected));
}
+ private Matcher<? super DocumentElement> hasNumbering(NumberingLevel expected) {
+ return hasNumbering(Optional.of(expected));
+ }
+
private Matcher<? super DocumentElement> hasNumbering(Optional<NumberingLevel> expected) {
return hasProperty("numbering", deepEquals(expected));
}