From 38fd020afa2189de417f8250bc1f424c5beb009f Mon Sep 17 00:00:00 2001 From: Albert Weichselbraun Date: Thu, 31 Aug 2017 20:43:14 +0200 Subject: [PATCH 1/2] add: DocumentJsonTest --- pom.xml | 12 ++ .../api/document/DocumentJsonTest.java | 71 ++++++++ .../resources/reference/weblyzard-example.xml | 164 ++++++++++++++++++ 3 files changed, 247 insertions(+) create mode 100644 src/java/test/com/weblyzard/api/document/DocumentJsonTest.java create mode 100644 src/java/test/resources/reference/weblyzard-example.xml diff --git a/pom.xml b/pom.xml index 294804af..5fe7f69d 100755 --- a/pom.xml +++ b/pom.xml @@ -122,6 +122,12 @@ 2.4 + + + src/java/test/resources + true + + org.apache.maven.plugins @@ -291,5 +297,11 @@ slf4j-api 1.7.25 + + com.google.guava + guava + 23.0 + test + diff --git a/src/java/test/com/weblyzard/api/document/DocumentJsonTest.java b/src/java/test/com/weblyzard/api/document/DocumentJsonTest.java new file mode 100644 index 00000000..bd167377 --- /dev/null +++ b/src/java/test/com/weblyzard/api/document/DocumentJsonTest.java @@ -0,0 +1,71 @@ +package com.weblyzard.api.document; + +import static org.junit.Assert.assertEquals; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Charsets; +import com.google.common.io.Resources; +import com.weblyzard.api.model.document.Document; +import com.weblyzard.api.model.document.Sentence; +import java.io.IOException; +import java.net.URL; +import javax.xml.bind.JAXBException; +import javax.xml.namespace.QName; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the serialization to json and the deserialization from json. Tests specifically for the + * Document.header field as this field uses custom serializers/deserializers + * + * @author Norman Süsstrunk + */ +public class DocumentJsonTest { + + public static final URL WEBLYZARD_EXAMPLE_XML = + DocumentJsonTest.class.getClassLoader().getResource("reference/weblyzard-example.xml"); + + private Document referenceDocument; + private QName referenceKeywordQName; + private final ObjectMapper mapper = new ObjectMapper(); + + @Before + public void before() throws IOException, JAXBException { + + // init mock objects + referenceDocument = + Document.unmarshallDocumentXmlString( + Resources.toString(WEBLYZARD_EXAMPLE_XML, Charsets.UTF_8)); + + referenceKeywordQName = + new QName( + Document.WL_KEYWORD_ATTR.getNamespaceURI(), + Document.WL_KEYWORD_ATTR.getLocalPart()); + + // set the header + referenceDocument.getHeader().put(referenceKeywordQName, "keyword1, keyword2"); + } + + @Test + public void testSentenceSerialization() throws IOException { + Sentence sentence = referenceDocument.getSentences().get(0); + String sentenceJsonSerialized = mapper.writeValueAsString(sentence); + Sentence deserializedSentence = mapper.readValue(sentenceJsonSerialized, Sentence.class); + assertEquals(sentence, deserializedSentence); + } + + @Test + public void testDocumentSerialization() throws IOException { + // serialize reference document to String + String documentJsonSerialized = mapper.writeValueAsString(referenceDocument); + + System.out.println(documentJsonSerialized); + + // deserialize document + Document deserializedDocument = mapper.readValue(documentJsonSerialized, Document.class); + QName deserializedQname = deserializedDocument.getHeader().keySet().iterator().next(); + + // must be the same qname + assertEquals(referenceKeywordQName, deserializedQname); + } +} diff --git a/src/java/test/resources/reference/weblyzard-example.xml b/src/java/test/resources/reference/weblyzard-example.xml new file mode 100644 index 00000000..d99b97c4 --- /dev/null +++ b/src/java/test/resources/reference/weblyzard-example.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 114d17b7b35e549b1932c1a9bf39b3f7520bc8e2 Mon Sep 17 00:00:00 2001 From: Albert Weichselbraun Date: Thu, 31 Aug 2017 21:07:25 +0200 Subject: [PATCH 2/2] fix: maven resource specification. --- pom.xml | 26 ++++++++++++------- .../api/model/document/XmlDocument.java | 0 .../api/model/document/jaxb.properties | 0 .../test}/psalms-docs-weblyzardformat.json | 0 .../test}/reference/weblyzard-example.xml | 0 5 files changed, 16 insertions(+), 10 deletions(-) mode change 100755 => 100644 src/java/main/com/weblyzard/api/model/document/XmlDocument.java rename src/{java => resources}/main/com/weblyzard/api/model/document/jaxb.properties (100%) rename src/{java/test/resources => resources/test}/psalms-docs-weblyzardformat.json (100%) rename src/{java/test/resources => resources/test}/reference/weblyzard-example.xml (100%) diff --git a/pom.xml b/pom.xml index 5fe7f69d..324c77c4 100755 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.weblyzard.api weblyzard-api - 0.1.0 + 0.1.0.1 jar com.weblyzard.api.weblyzard-api @@ -122,12 +122,18 @@ 2.4 - - - src/java/test/resources - true - - + + + src/resources/main + true + + + + + src/resources/test + true + + org.apache.maven.plugins @@ -147,8 +153,8 @@ maven-javadoc-plugin 2.9.1 - -Xdoclint:none - + -Xdoclint:none + attach-javadocs @@ -190,7 +196,7 @@ 2.12.4 - + org.apache.maven.plugins maven-failsafe-plugin diff --git a/src/java/main/com/weblyzard/api/model/document/XmlDocument.java b/src/java/main/com/weblyzard/api/model/document/XmlDocument.java old mode 100755 new mode 100644 diff --git a/src/java/main/com/weblyzard/api/model/document/jaxb.properties b/src/resources/main/com/weblyzard/api/model/document/jaxb.properties similarity index 100% rename from src/java/main/com/weblyzard/api/model/document/jaxb.properties rename to src/resources/main/com/weblyzard/api/model/document/jaxb.properties diff --git a/src/java/test/resources/psalms-docs-weblyzardformat.json b/src/resources/test/psalms-docs-weblyzardformat.json similarity index 100% rename from src/java/test/resources/psalms-docs-weblyzardformat.json rename to src/resources/test/psalms-docs-weblyzardformat.json diff --git a/src/java/test/resources/reference/weblyzard-example.xml b/src/resources/test/reference/weblyzard-example.xml similarity index 100% rename from src/java/test/resources/reference/weblyzard-example.xml rename to src/resources/test/reference/weblyzard-example.xml