aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-13 19:01:01 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-13 19:01:01 +0000
commit076f72fe3bdc8cdbad4ca538a0a91b3844baef11 (patch)
tree865d473f8bdd9f88fe75e3ba19d7a52b5c67d8af /src
parenta504d39d40597978f2c403c6dce2408421e1eaa2 (diff)
Add bold property to Run
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/mammoth/documents/Run.java14
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java2
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java7
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java23
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java12
5 files changed, 40 insertions, 18 deletions
diff --git a/src/main/java/org/zwobble/mammoth/documents/Run.java b/src/main/java/org/zwobble/mammoth/documents/Run.java
index 45ab77c..ed4c65e 100644
--- a/src/main/java/org/zwobble/mammoth/documents/Run.java
+++ b/src/main/java/org/zwobble/mammoth/documents/Run.java
@@ -4,22 +4,28 @@ import java.util.List;
import java.util.Optional;
public class Run implements DocumentElement, HasChildren {
- private final List<DocumentElement> children;
+ private final boolean isBold;
private final Optional<Style> style;
+ private final List<DocumentElement> children;
- public Run(Optional<Style> style, List<DocumentElement> children) {
+ public Run(boolean isBold, Optional<Style> style, List<DocumentElement> children) {
+ this.isBold = isBold;
this.children = children;
this.style = style;
}
- public List<DocumentElement> getChildren() {
- return children;
+ public boolean isBold() {
+ return isBold;
}
public Optional<Style> getStyle() {
return style;
}
+ public List<DocumentElement> getChildren() {
+ return children;
+ }
+
@Override
public <T> T accept(DocumentElementVisitor<T> visitor) {
return visitor.visit(this);
diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
index 8cfc4f6..e9fca9c 100644
--- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java
@@ -49,7 +49,7 @@ public class BodyXmlReader {
return ReadResult.map(
readRunStyle(properties),
readElements(element.children()),
- (style, children) -> new Run(style, children));
+ (style, children) -> new Run(false, style, children));
}
private Result<Optional<Style>> readRunStyle(XmlElementLike properties) {
diff --git a/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java b/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java
index d5a23fb..9eb8873 100644
--- a/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java
+++ b/src/test/java/org/zwobble/mammoth/tests/documents/DocumentElementMakers.java
@@ -5,6 +5,7 @@ import com.natpryce.makeiteasy.Property;
import org.zwobble.mammoth.documents.DocumentElement;
import org.zwobble.mammoth.documents.HasChildren;
import org.zwobble.mammoth.documents.Paragraph;
+import org.zwobble.mammoth.documents.Run;
import java.util.List;
import java.util.Optional;
@@ -20,4 +21,10 @@ public class DocumentElementMakers {
Optional.empty(),
Optional.empty(),
propertyLookup.valueOf(CHILDREN, list()));
+
+ public static final Instantiator<Run> RUN =
+ propertyLookup -> new Run(
+ false,
+ Optional.empty(),
+ propertyLookup.valueOf(CHILDREN, list()));
}
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 49d906f..86b58f6 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java
@@ -4,11 +4,11 @@ import com.natpryce.makeiteasy.Maker;
import org.hamcrest.Matcher;
import org.hamcrest.Matchers;
import org.junit.Test;
-import org.zwobble.mammoth.results.Result;
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.results.Result;
import org.zwobble.mammoth.results.Warning;
import org.zwobble.mammoth.tests.DeepReflectionMatcher;
import org.zwobble.mammoth.xml.XmlElement;
@@ -21,11 +21,11 @@ import java.util.Optional;
import static com.natpryce.makeiteasy.MakeItEasy.*;
import static java.util.Arrays.asList;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasProperty;
import static org.zwobble.mammoth.results.Warning.warning;
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.documents.DocumentElementMakers.*;
import static org.zwobble.mammoth.tests.docx.BodyXmlReaderMakers.*;
import static org.zwobble.mammoth.util.MammothLists.list;
import static org.zwobble.mammoth.util.MammothMaps.map;
@@ -171,7 +171,7 @@ public class BodyXmlTests {
XmlElement element = runXml(list(
element("w:rPr", list(
element("w:rStyle", map("w:val", "Heading1Char"))))));
-
+
assertThat(
read(a(bodyReader), element),
isResult(
@@ -179,6 +179,15 @@ public class BodyXmlTests {
list(warning("Run style with ID Heading1Char was referenced but not defined in the document"))));
}
+ @Test
+ public void runIsNotBoldIfBoldElementIsNotPresent() {
+ XmlElement element = runXmlWithProperties();
+
+ assertThat(
+ readSuccess(a(bodyReader), element),
+ hasProperty("bold", equalTo(false)));
+ }
+
private static DocumentElement readSuccess(Maker<BodyXmlReader> reader, XmlElement element) {
Result<DocumentElement> result = read(reader, element);
assertThat(result.getWarnings(), deepEquals(list()));
@@ -202,6 +211,10 @@ public class BodyXmlTests {
return element("w:r", children);
}
+ private XmlElement runXmlWithProperties(XmlNode... children) {
+ return element("w:r", list(element("w:rPr", asList(children))));
+ }
+
private XmlElement textXml(String value) {
return element("w:t", list(XmlNodes.text(value)));
}
@@ -237,7 +250,7 @@ public class BodyXmlTests {
}
private Run run(DocumentElement... children) {
- return new Run(Optional.empty(), asList(children));
+ return make(a(RUN, with(CHILDREN, asList(children))));
}
private Text text(String value) {
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java
index 9d7703b..5370db3 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/DocumentXmlTests.java
@@ -1,23 +1,19 @@
package org.zwobble.mammoth.tests.docx;
import org.junit.Test;
-import org.zwobble.mammoth.results.Result;
import org.zwobble.mammoth.documents.Document;
-import org.zwobble.mammoth.documents.Run;
import org.zwobble.mammoth.documents.Text;
import org.zwobble.mammoth.docx.BodyXmlReader;
import org.zwobble.mammoth.docx.DocumentXmlReader;
+import org.zwobble.mammoth.results.Result;
import org.zwobble.mammoth.xml.XmlElement;
import org.zwobble.mammoth.xml.XmlNodes;
-import java.util.Optional;
-
import static com.natpryce.makeiteasy.MakeItEasy.*;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.zwobble.mammoth.results.Result.success;
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.documents.DocumentElementMakers.*;
import static org.zwobble.mammoth.util.MammothLists.list;
import static org.zwobble.mammoth.xml.XmlNodes.element;
@@ -39,7 +35,7 @@ public class DocumentXmlTests {
document,
deepEquals(success(new Document(list(
make(a(PARAGRAPH, with(CHILDREN, list(
- new Run(Optional.empty(), list(
- new Text("Hello!"))))))))))));
+ make(a(RUN, with(CHILDREN, list(
+ new Text("Hello!"))))))))))))));
}
}