aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2017-11-23 20:28:22 +0000
committerMichael Williamson <mike@zwobble.org>2017-11-23 20:28:22 +0000
commitc46102917dbd63f454f4782effbe239e63c67400 (patch)
tree9bcfabfadd17325dce988241e26d675db070b552 /src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
parent3841f73dbaf622944f050d6140dd7d0f7d3dd391 (diff)
Switch to JUnit 5
Diffstat (limited to 'src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java')
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java148
1 files changed, 91 insertions, 57 deletions
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 0695ece..27f7502 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
@@ -2,9 +2,10 @@ 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.junit.jupiter.api.DynamicTest;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestFactory;
import org.zwobble.mammoth.internal.archives.Archive;
import org.zwobble.mammoth.internal.archives.InMemoryArchive;
import org.zwobble.mammoth.internal.documents.*;
@@ -17,7 +18,10 @@ import org.zwobble.mammoth.internal.xml.XmlNodes;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
-import java.util.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
import java.util.function.Function;
import static java.util.Arrays.asList;
@@ -25,6 +29,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
import static org.zwobble.mammoth.internal.documents.NoteReference.endnoteReference;
import static org.zwobble.mammoth.internal.documents.NoteReference.footnoteReference;
+import static org.zwobble.mammoth.internal.util.Lists.eagerMap;
import static org.zwobble.mammoth.internal.util.Lists.list;
import static org.zwobble.mammoth.internal.util.Maps.map;
import static org.zwobble.mammoth.internal.util.Streams.toByteArray;
@@ -149,25 +154,27 @@ public class BodyXmlTests {
hasNumbering(Optional.empty()));
}
- public static class ComplexFieldsTests {
- private static final String URI = "http://example.com";
- private static final XmlElement BEGIN_COMPLEX_FIELD = element("w:r", list(
+ @Nested
+ public class ComplexFieldsTests {
+ private final String URI = "http://example.com";
+ private final XmlElement BEGIN_COMPLEX_FIELD = element("w:r", list(
element("w:fldChar", map("w:fldCharType", "begin"))
));
- private static final XmlElement SEPARATE_COMPLEX_FIELD = element("w:r", list(
+ private final XmlElement SEPARATE_COMPLEX_FIELD = element("w:r", list(
element("w:fldChar", map("w:fldCharType", "separate"))
));
- private static final XmlElement END_COMPLEX_FIELD = element("w:r", list(
+ private final XmlElement END_COMPLEX_FIELD = element("w:r", list(
element("w:fldChar", map("w:fldCharType", "end"))
));
- private static final XmlElement HYPERLINK_INSTRTEXT = element("w:instrText", list(
+ private final XmlElement HYPERLINK_INSTRTEXT = element("w:instrText", list(
XmlNodes.text(" HYPERLINK \"" + URI + '"')
));
- private static Matcher<DocumentElement> isEmptyHyperlinkedRun() {
+ private Matcher<DocumentElement> isEmptyHyperlinkedRun() {
return isHyperlinkedRun(hasChildren());
}
+
@SafeVarargs
- private static Matcher<DocumentElement> isHyperlinkedRun(Matcher<? super Hyperlink>... matchers) {
+ private final Matcher<DocumentElement> isHyperlinkedRun(Matcher<? super Hyperlink>... matchers) {
return isRun(hasChildren(
allOf(
isHyperlink(hasHref(URI)),
@@ -465,61 +472,88 @@ public class BodyXmlTests {
hasProperty("smallCaps", equalTo(true)));
}
- @RunWith(Parameterized.class)
- public static class RunBooleanPropertyTests {
- @Parameterized.Parameters(name = "propertyName: {0}, tagName: {1}")
- public static Collection<Object[]> data() {
- return list(new Object[][] {
- {"bold", "w:b"},
- {"underline", "w:u"},
- {"italic", "w:i"},
- {"strikethrough", "w:strike"},
- {"smallCaps", "w:smallCaps"}
- });
- }
-
- private final String propertyName;
- private final String tagName;
+ @Nested
+ public class RunBooleanPropertyTests {
+ private class TestCase {
+ final String propertyName;
+ final String tagName;
- public RunBooleanPropertyTests(String propertyName, String tagName) {
- this.propertyName = propertyName;
- this.tagName = tagName;
+ TestCase(String propertyName, String tagName) {
+ this.propertyName = propertyName;
+ this.tagName = tagName;
+ }
}
- @Test
- public void runBooleanPropertyIsFalseIfElementIsPresentAndValIsFalse() {
- XmlElement element = runXmlWithProperties(element(tagName, map("w:val", "false")));
+ private final List<TestCase> TEST_CASES = list(
+ new TestCase("bold", "w:b"),
+ new TestCase("underline", "w:u"),
+ new TestCase("italic", "w:i"),
+ new TestCase("strikethrough", "w:strike"),
+ new TestCase("smallCaps", "w:smallCaps")
+ );
- assertThat(
- readSuccess(bodyReader(), element),
- hasProperty(propertyName, equalTo(false)));
+ @TestFactory
+ public List<DynamicTest> runBooleanPropertyIsFalseIfElementIsPresentAndValIsFalse() {
+ return eagerMap(TEST_CASES, testCase -> DynamicTest.dynamicTest(
+ testCase.propertyName + " property is false if " + testCase.tagName + " element is present and val is false",
+ () -> {
+ XmlElement element = runXmlWithProperties(
+ element(testCase.tagName, map("w:val", "false"))
+ );
+
+ assertThat(
+ readSuccess(bodyReader(), element),
+ hasProperty(testCase.propertyName, equalTo(false)));
+ })
+ );
}
- @Test
- public void runBooleanPropertyIsFalseIfElementIsPresentAndValIs0() {
- XmlElement element = runXmlWithProperties(element(tagName, map("w:val", "0")));
-
- assertThat(
- readSuccess(bodyReader(), element),
- hasProperty(propertyName, equalTo(false)));
+ @TestFactory
+ public List<DynamicTest> runBooleanPropertyIsFalseIfElementIsPresentAndValIs0() {
+ return eagerMap(TEST_CASES, testCase -> DynamicTest.dynamicTest(
+ testCase.propertyName + " property is false if " + testCase.tagName + " element is present and val is 0",
+ () -> {
+ XmlElement element = runXmlWithProperties(
+ element(testCase.tagName, map("w:val", "0"))
+ );
+
+ assertThat(
+ readSuccess(bodyReader(), element),
+ hasProperty(testCase.propertyName, equalTo(false)));
+ })
+ );
}
- @Test
- public void runBooleanPropertyIsFalseIfElementIsPresentAndValIsTrue() {
- XmlElement element = runXmlWithProperties(element(tagName, map("w:val", "true")));
-
- assertThat(
- readSuccess(bodyReader(), element),
- hasProperty(propertyName, equalTo(true)));
+ @TestFactory
+ public List<DynamicTest> runBooleanPropertyIsFalseIfElementIsPresentAndValIsTrue() {
+ return eagerMap(TEST_CASES, testCase -> DynamicTest.dynamicTest(
+ testCase.propertyName + " property is true if " + testCase.tagName + " element is present and val is true",
+ () -> {
+ XmlElement element = runXmlWithProperties(
+ element(testCase.tagName, map("w:val", "true"))
+ );
+
+ assertThat(
+ readSuccess(bodyReader(), element),
+ hasProperty(testCase.propertyName, equalTo(true)));
+ })
+ );
}
- @Test
- public void runBooleanPropertyIsFalseIfElementIsPresentAndValIs1() {
- XmlElement element = runXmlWithProperties(element(tagName, map("w:val", "1")));
-
- assertThat(
- readSuccess(bodyReader(), element),
- hasProperty(propertyName, equalTo(true)));
+ @TestFactory
+ public List<DynamicTest> runBooleanPropertyIsFalseIfElementIsPresentAndValIs1() {
+ return eagerMap(TEST_CASES, testCase -> DynamicTest.dynamicTest(
+ testCase.propertyName + " property is false if " + testCase.tagName + " element is present and val is 1",
+ () -> {
+ XmlElement element = runXmlWithProperties(
+ element(testCase.tagName, map("w:val", "1"))
+ );
+
+ assertThat(
+ readSuccess(bodyReader(), element),
+ hasProperty(testCase.propertyName, equalTo(true)));
+ })
+ );
}
}