From 2d51a2ad90d9910c93edc6b101563b996088a0c1 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 4 Oct 2016 22:12:00 +0100 Subject: Ignore run boolean elements that have value of false --- .../zwobble/mammoth/tests/docx/BodyXmlTests.java | 63 ++++++++++++++++++++-- 1 file changed, 58 insertions(+), 5 deletions(-) (limited to 'src/test/java/org') 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 cb3759c..495683a 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -3,6 +3,8 @@ package org.zwobble.mammoth.tests.docx; import org.hamcrest.Matcher; import org.hamcrest.Matchers; import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; import org.zwobble.mammoth.internal.documents.*; import org.zwobble.mammoth.internal.docx.*; import org.zwobble.mammoth.internal.results.InternalResult; @@ -14,10 +16,7 @@ import org.zwobble.mammoth.tests.DeepReflectionMatcher; import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.function.Function; import static java.util.Arrays.asList; @@ -254,6 +253,60 @@ public class BodyXmlTests { hasProperty("strikethrough", equalTo(true))); } + @RunWith(Parameterized.class) + public static class RunBooleanPropertyTests { + @Parameterized.Parameters(name = "propertyName: {0}, tagName: {1}") + public static Collection data() { + return list(new Object[][] { + {"bold", "w:b"}, {"underline", "w:u"}, {"italic", "w:i"}, {"strikethrough", "w:strike"} + }); + } + + private final String propertyName; + private final String tagName; + + public RunBooleanPropertyTests(String propertyName, String tagName) { + this.propertyName = propertyName; + this.tagName = tagName; + } + + @Test + public void runBooleanPropertyIsFalseIfElementIsPresentAndValIsFalse() { + XmlElement element = runXmlWithProperties(element(tagName, map("w:val", "false"))); + + assertThat( + readSuccess(bodyReader(), element), + hasProperty(propertyName, equalTo(false))); + } + + @Test + public void runBooleanPropertyIsFalseIfElementIsPresentAndValIs0() { + XmlElement element = runXmlWithProperties(element(tagName, map("w:val", "0"))); + + assertThat( + readSuccess(bodyReader(), element), + hasProperty(propertyName, equalTo(false))); + } + + @Test + public void runBooleanPropertyIsFalseIfElementIsPresentAndValIsTrue() { + XmlElement element = runXmlWithProperties(element(tagName, map("w:val", "true"))); + + assertThat( + readSuccess(bodyReader(), element), + hasProperty(propertyName, equalTo(true))); + } + + @Test + public void runBooleanPropertyIsFalseIfElementIsPresentAndValIs1() { + XmlElement element = runXmlWithProperties(element(tagName, map("w:val", "1"))); + + assertThat( + readSuccess(bodyReader(), element), + hasProperty(propertyName, equalTo(true))); + } + } + @Test public void runHasBaselineVerticalAlignmentIfVerticalAlignmentElementIsNotPresent() { XmlElement element = runXmlWithProperties(); @@ -827,7 +880,7 @@ public class BodyXmlTests { return element("w:r", children); } - private XmlElement runXmlWithProperties(XmlNode... children) { + private static XmlElement runXmlWithProperties(XmlNode... children) { return element("w:r", list(element("w:rPr", asList(children)))); } -- cgit v1.2.3