aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/xyz/driver/pdsuidomain/formats/json/PatientFormatSuite.scala
blob: 6cddb45cf9ff3755798394fb0dcaa22a30101c06 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package xyz.driver.pdsuidomain.formats.json

import java.time.{LocalDate, LocalDateTime}

import spray.json._
import org.scalatest.{FlatSpec, Matchers}
import xyz.driver.core.Id
import xyz.driver.entities.clinic.TestOrder
import xyz.driver.entities.common.FullName
import xyz.driver.entities.patient.CancerType
import xyz.driver.pdsuicommon.domain.UuidId
import xyz.driver.pdsuidomain.entities.Patient

class PatientFormatSuite extends FlatSpec with Matchers {
  import xyz.driver.pdsuidomain.formats.json.patient._

  "Json format for Patient" should "read and write correct JSON" in {
    val orig = Patient(
      id = UuidId("748b5884-3528-4cb9-904b-7a8151d6e343"),
      status = Patient.Status.New,
      name = FullName.fromStrings("John", "", "Doe"),
      dob = LocalDate.parse("1980-06-30"),
      assignee = None,
      previousStatus = None,
      previousAssignee = None,
      lastActiveUserId = None,
      isUpdateRequired = false,
      disease = CancerType.Breast,
      orderId = Id[TestOrder]("7b54a75d-4197-4b27-9045-b9b6cb131be9"),
      lastUpdate = LocalDateTime.parse("2017-08-10T18:00:00")
    )
    val writtenJson = patientFormat.write(orig)

    writtenJson should be(
      """{"id":"748b5884-3528-4cb9-904b-7a8151d6e343","dob":"1980-06-30",
         "name":{"firstName":"John","middleName":"","lastName":"Doe"},"status":"New","assignee":null,
         "previousStatus":null,"previousAssignee":null,"lastActiveUser":null,"lastUpdate":"2017-08-10T18:00Z",
         "orderId":"7b54a75d-4197-4b27-9045-b9b6cb131be9","disease":"Breast"}""".parseJson)
  }

}