aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/documents/Comment.java15
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java5
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/docx/CommentXmlTests.java29
3 files changed, 45 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/Comment.java b/src/main/java/org/zwobble/mammoth/internal/documents/Comment.java
index f3c76ea..a17365a 100644
--- a/src/main/java/org/zwobble/mammoth/internal/documents/Comment.java
+++ b/src/main/java/org/zwobble/mammoth/internal/documents/Comment.java
@@ -1,14 +1,19 @@
package org.zwobble.mammoth.internal.documents;
import java.util.List;
+import java.util.Optional;
public class Comment {
private final String commentId;
private final List<DocumentElement> body;
+ private final Optional<String> authorName;
+ private final Optional<String> authorInitials;
- public Comment(String commentId, List<DocumentElement> body) {
+ public Comment(String commentId, List<DocumentElement> body, Optional<String> authorName, Optional<String> authorInitials) {
this.commentId = commentId;
this.body = body;
+ this.authorName = authorName;
+ this.authorInitials = authorInitials;
}
public String getCommentId() {
@@ -18,4 +23,12 @@ public class Comment {
public List<DocumentElement> getBody() {
return body;
}
+
+ public Optional<String> getAuthorInitials() {
+ return authorInitials;
+ }
+
+ public Optional<String> getAuthorName() {
+ return authorName;
+ }
}
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java
index 4cacf08..1740ec2 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/CommentXmlReader.java
@@ -5,6 +5,7 @@ import org.zwobble.mammoth.internal.results.InternalResult;
import org.zwobble.mammoth.internal.xml.XmlElement;
import java.util.List;
+import java.util.Optional;
public class CommentXmlReader {
private final BodyXmlReader bodyReader;
@@ -26,7 +27,9 @@ public class CommentXmlReader {
.toResult()
.map(children -> new Comment(
commentId,
- children
+ children,
+ Optional.empty(),
+ Optional.empty()
));
}
}
diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/CommentXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/CommentXmlTests.java
index e7f9994..fa37bea 100644
--- a/src/test/java/org/zwobble/mammoth/tests/docx/CommentXmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/docx/CommentXmlTests.java
@@ -7,11 +7,13 @@ import org.zwobble.mammoth.internal.results.InternalResult;
import org.zwobble.mammoth.internal.xml.XmlNode;
import java.util.List;
+import java.util.Optional;
import static com.natpryce.makeiteasy.MakeItEasy.a;
import static com.natpryce.makeiteasy.MakeItEasy.make;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.*;
+import static org.hamcrest.core.Is.isA;
import static org.zwobble.mammoth.internal.util.Lists.list;
import static org.zwobble.mammoth.internal.util.Maps.map;
import static org.zwobble.mammoth.internal.xml.XmlNodes.element;
@@ -31,7 +33,30 @@ public class CommentXmlTests {
assertThat(
result,
isInternalSuccess(contains(
- deepEquals(new Comment("1", list(make(a(PARAGRAPH)))))
+ allOf(
+ isA(Comment.class),
+ hasProperty("commentId", equalTo("1")),
+ hasProperty("body", deepEquals(list(make(a(PARAGRAPH)))))
+ )
+ ))
+ );
+ }
+
+ @Test
+ public void whenOptionalAttributesOfCommentAreMissingThenTheyAreReadAsNone() {
+ List<XmlNode> body = list(element("w:p"));
+ CommentXmlReader reader = new CommentXmlReader(make(a(bodyReader)));
+ InternalResult<List<Comment>> result = reader.readElement(element("w:comments", list(
+ element("w:comment", map("w:id", "1"), body)
+ )));
+ assertThat(
+ result,
+ isInternalSuccess(contains(
+ allOf(
+ isA(Comment.class),
+ hasProperty("authorName", equalTo(Optional.empty())),
+ hasProperty("authorInitials", equalTo(Optional.empty()))
+ )
))
);
}