aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/MedicalRecordFormatSuite.scala
diff options
context:
space:
mode:
authorKseniya Tomskikh <ktomskih@datamonsters.co>2017-08-11 14:40:19 +0600
committerKseniya Tomskikh <ktomskih@datamonsters.co>2017-08-11 14:41:30 +0600
commitbfac6a54dcf37e0280cc8f2ec6ff3802dc8e8dfe (patch)
tree2d66348851ad61b43cc0cb114aa56537cedad926 /src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/MedicalRecordFormatSuite.scala
parent9e60edb6216fce615b13f9bcc68d8f86258b85c3 (diff)
downloadrest-query-bfac6a54dcf37e0280cc8f2ec6ff3802dc8e8dfe.tar.gz
rest-query-bfac6a54dcf37e0280cc8f2ec6ff3802dc8e8dfe.tar.bz2
rest-query-bfac6a54dcf37e0280cc8f2ec6ff3802dc8e8dfe.zip
PDSUI-2188 Created and fixed test for json formats for ReP and TM
Diffstat (limited to 'src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/MedicalRecordFormatSuite.scala')
-rw-r--r--src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/MedicalRecordFormatSuite.scala77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/MedicalRecordFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/MedicalRecordFormatSuite.scala
new file mode 100644
index 0000000..899e5c9
--- /dev/null
+++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/MedicalRecordFormatSuite.scala
@@ -0,0 +1,77 @@
+package xyz.driver.pdsuidomain.formats.json.sprayformats
+
+import java.time.LocalDateTime
+import java.util.UUID
+
+import spray.json._
+import org.scalatest.{FlatSpec, Matchers}
+import xyz.driver.pdsuicommon.domain.{LongId, TextJson, UuidId}
+import xyz.driver.pdsuidomain.entities.{MedicalRecord, RecordRequestId}
+
+class MedicalRecordFormatSuite extends FlatSpec with Matchers {
+ import record._
+ import MedicalRecord._
+
+ "Json format for MedicalRecord" should "read and write correct JSON" in {
+ val orig = MedicalRecord(
+ id = LongId(1),
+ status = Status.New,
+ assignee = None,
+ previousStatus = None,
+ previousAssignee = None,
+ lastActiveUserId = None,
+ lastUpdate = LocalDateTime.parse("2017-08-10T18:00:00"),
+ physician = Some("physician"),
+ meta = None,
+ predictedMeta = None,
+ predictedDocuments = None,
+ disease = "Breast",
+ requestId = RecordRequestId(UUID.fromString("7b54a75d-4197-4b27-9045-b9b6cb131be9")),
+ caseId = None,
+ patientId = UuidId("748b5884-3528-4cb9-904b-7a8151d6e343")
+ )
+ val writtenJson = recordFormat.write(orig)
+
+ writtenJson should be (
+ """{"id":1,"status":"New","assignee":null,"previousStatus":null,"previousAssignee":null,"lastActiveUser":null,
+ "lastUpdate":"2017-08-10T18:00Z","meta":[],"patientId":"748b5884-3528-4cb9-904b-7a8151d6e343","caseId":null,
+ "requestId":"7b54a75d-4197-4b27-9045-b9b6cb131be9","disease":"Breast","physician":"physician"}""".parseJson)
+
+ val createRecordJson =
+ """{"disease":"Breast","patientId":"748b5884-3528-4cb9-904b-7a8151d6e343","requestId":"7b54a75d-4197-4b27-9045-b9b6cb131be9"}""".parseJson
+ val expectedCreatedRecord = MedicalRecord(
+ id = LongId(0),
+ status = MedicalRecord.Status.New,
+ previousStatus = None,
+ assignee = None,
+ previousAssignee = None,
+ lastActiveUserId = None,
+ patientId = UuidId("748b5884-3528-4cb9-904b-7a8151d6e343"),
+ requestId = RecordRequestId(UUID.fromString("7b54a75d-4197-4b27-9045-b9b6cb131be9")),
+ disease = "Breast",
+ caseId = None,
+ physician = None,
+ meta = None,
+ predictedMeta = None,
+ predictedDocuments = None,
+ lastUpdate = LocalDateTime.now()
+ )
+ val parsedCreatedRecord = recordFormat.read(createRecordJson).copy(lastUpdate = expectedCreatedRecord.lastUpdate)
+ parsedCreatedRecord should be(expectedCreatedRecord)
+
+ val updateRecordJson =
+ """{"meta":[{"type":"duplicate","predicted":true,"startPage":1.0,"endPage":2.0,"startOriginalPage":1.0},
+ {"type":"reorder","items":[1,2]},
+ {"type":"rotation","items":{"item1":1,"item2":2}}]}""".parseJson
+ val expectedUpdatedRecord = orig.copy(
+ meta = Some(TextJson(List(
+ Meta.Duplicate(predicted = Some(true), startPage = 1.0, endPage = 2.0, startOriginalPage = 1.0, endOriginalPage = None),
+ Meta.Reorder(predicted = None, items = Seq(1, 2)),
+ Meta.Rotation(predicted = None, items = Map("item1" -> 1, "item2" -> 2))
+ )))
+ )
+ val parsedUpdatedRecord = applyUpdateToMedicalRecord(updateRecordJson, orig)
+ parsedUpdatedRecord should be(expectedUpdatedRecord)
+ }
+
+}