aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/DocumentIssueFormatSuite.scala
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2017-08-14 22:29:45 -0700
committerGitHub <noreply@github.com>2017-08-14 22:29:45 -0700
commit322ea28ecf5ad5f65d3376f3e97e004d229d4736 (patch)
treec405d10d70f4ec1f18ffa81bc01cd8da64bddcba /src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/DocumentIssueFormatSuite.scala
parentbe74ae7c5531af998d38b9de8052791f17b25341 (diff)
parent442579b27ccbac82cb001a5b02402a593d005977 (diff)
downloadrest-query-322ea28ecf5ad5f65d3376f3e97e004d229d4736.tar.gz
rest-query-322ea28ecf5ad5f65d3376f3e97e004d229d4736.tar.bz2
rest-query-322ea28ecf5ad5f65d3376f3e97e004d229d4736.zip
Merge pull request #18 from drivergroup/PDSUI-2188
PDSUI-2188 Create spray json formats for domain entities
Diffstat (limited to 'src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/DocumentIssueFormatSuite.scala')
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/DocumentIssueFormatSuite.scala47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/DocumentIssueFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/DocumentIssueFormatSuite.scala
new file mode 100644
index 0000000..1a8e3f0
--- /dev/null
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/DocumentIssueFormatSuite.scala
@@ -0,0 +1,47 @@
+package xyz.driver.pdsuidomain.formats.json.sprayformats
+
+import java.time.LocalDateTime
+
+import spray.json._
+import org.scalatest.{FlatSpec, Matchers}
+import xyz.driver.pdsuicommon.domain.{LongId, StringId}
+import xyz.driver.pdsuidomain.entities.DocumentIssue
+
+class DocumentIssueFormatSuite extends FlatSpec with Matchers {
+ import documentissue._
+
+ "Json format for DocumentIssue" should "read and write correct JSON" in {
+ val documentIssue = DocumentIssue(
+ id = LongId(10),
+ documentId = LongId(1),
+ userId = StringId("userId-001"),
+ lastUpdate = LocalDateTime.parse("2017-08-10T18:00:00"),
+ isDraft = false,
+ text = "message text",
+ archiveRequired = false,
+ startPage = Some(1.0),
+ endPage = Some(2.0)
+ )
+ val writtenJson = documentIssueWriter.write(documentIssue)
+
+ writtenJson should be(
+ """{"id":10,"userId":"userId-001","lastUpdate":"2017-08-10T18:00Z","isDraft":false,
+ "text":"message text","archiveRequired":false,"startPage":1.0,"endPage":2.0}""".parseJson)
+
+ val createDocumentIssueJson = """{"text":"message text","startPage":1.0,"endPage":2.0}""".parseJson
+ val expectedCreatedDocumentIssue = documentIssue.copy(id = LongId(0), lastUpdate = LocalDateTime.MIN, isDraft = true)
+ val parsedCreateDocumentIssue = jsValueToDocumentIssue(createDocumentIssueJson, LongId(1), StringId("userId-001"))
+ parsedCreateDocumentIssue should be(expectedCreatedDocumentIssue)
+
+ val updateDocumentIssueJson =
+ """{"text":"new issue text","evidence":"issue evidence","archiveRequired":true,"startPage":1.0,"endPage":4.0}""".parseJson
+ val expectedUpdatedDocumentIssue = documentIssue.copy(
+ text = "new issue text",
+ archiveRequired = true,
+ endPage = Some(4.0)
+ )
+ val parsedUpdateDocumentIssue = applyUpdateToDocumentIssue(updateDocumentIssueJson, documentIssue)
+ parsedUpdateDocumentIssue should be(expectedUpdatedDocumentIssue)
+ }
+
+}