From b99235a22bfabeb175c297660d9dccc27c7b4daf Mon Sep 17 00:00:00 2001 From: Kseniya Tomskikh Date: Mon, 23 Oct 2017 19:40:57 +0700 Subject: Fixed update delivery method --- .../pdsuidomain/formats/json/sprayformats/intervention.scala | 5 +++-- .../formats/json/sprayformats/InterventionFormatSuite.scala | 10 +++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala index e557e47..fccdda4 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/intervention.scala @@ -99,7 +99,8 @@ object intervention { val deliveryMethod = fields .get("deliveryMethod") - .map(_.convertTo[String]) + .map(_.convertTo[Option[String]]) + .getOrElse(orig.intervention.deliveryMethod) val origIntervention = orig.intervention val arms = fields @@ -112,7 +113,7 @@ object intervention { typeId = typeId.orElse(origIntervention.typeId), dosage = dosage.getOrElse(origIntervention.dosage), isActive = isActive.getOrElse(origIntervention.isActive), - deliveryMethod = deliveryMethod.orElse(origIntervention.deliveryMethod) + deliveryMethod = deliveryMethod ), arms = arms.getOrElse(orig.arms) ) diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/InterventionFormatSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/InterventionFormatSuite.scala index 4532da4..edce9c1 100644 --- a/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/InterventionFormatSuite.scala +++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/sprayformats/InterventionFormatSuite.scala @@ -19,7 +19,7 @@ class InterventionFormatSuite extends FlatSpec with Matchers { dosage = "", originalDosage = "", isActive = true, - deliveryMethod = Some("pill") + deliveryMethod = Some("Inhalation") ) val arms = List( InterventionArm(interventionId = intervention.id, armId = LongId(20)), @@ -34,11 +34,11 @@ class InterventionFormatSuite extends FlatSpec with Matchers { writtenJson should be( """{"id":1,"name":"intervention name","typeId":10,"dosage":"","isActive":true,"arms":[20,21,22], - "trialId":"NCT000001","deliveryMethod":"pill","originalName":"orig name","originalDosage":"","originalType":"orig type"}""".parseJson) + "trialId":"NCT000001","deliveryMethod":"Inhalation","originalName":"orig name","originalDosage":"","originalType":"orig type"}""".parseJson) val createInterventionJson = """{"id":1,"name":"intervention name","typeId":10,"dosage":"","isActive":true,"arms":[20,21,22], - "trialId":"NCT000001","deliveryMethod":"pill"}""".parseJson + "trialId":"NCT000001","deliveryMethod":"Inhalation"}""".parseJson val parsedCreateIntervention = interventionFormat.read(createInterventionJson) val expectedCreateIntervention = parsedCreateIntervention.copy( intervention = intervention.copy(id = LongId(0), originalType = None, originalName = "intervention name"), @@ -46,9 +46,9 @@ class InterventionFormatSuite extends FlatSpec with Matchers { ) parsedCreateIntervention should be(expectedCreateIntervention) - val updateInterventionJson = """{"dosage":"descr","arms":[21,22]}""".parseJson + val updateInterventionJson = """{"dosage":"descr","deliveryMethod":null,"arms":[21,22]}""".parseJson val expectedUpdatedIntervention = orig.copy( - intervention = intervention.copy(dosage = "descr"), + intervention = intervention.copy(dosage = "descr", deliveryMethod = None), arms = List( InterventionArm(interventionId = intervention.id, armId = LongId(21)), InterventionArm(interventionId = intervention.id, armId = LongId(22)) -- cgit v1.2.3