diff options
Diffstat (limited to 'src/test/java/org')
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)); } |
