diff options
author | vlad <vlad@driver.xyz> | 2017-07-01 03:18:38 -0700 |
---|---|---|
committer | vlad <vlad@driver.xyz> | 2017-07-01 03:18:38 -0700 |
commit | a9efd6c3fb151fe1bfca1fc5444f11afb9d16a5b (patch) | |
tree | cb51f7adc83f92ab036f939653ece29eae80ab99 /src/test/scala/xyz/driver/pdsuidomain/formats/json/ApiDocumentSuite.scala | |
parent | ce6973573e67214340fda451ee84171ea98f9a7c (diff) | |
download | rest-query-0.1.15.tar.gz rest-query-0.1.15.tar.bz2 rest-query-0.1.15.zip |
Computations implicits was too ad hoc and implicitv0.1.15
Diffstat (limited to 'src/test/scala/xyz/driver/pdsuidomain/formats/json/ApiDocumentSuite.scala')
-rw-r--r-- | src/test/scala/xyz/driver/pdsuidomain/formats/json/ApiDocumentSuite.scala | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/test/scala/xyz/driver/pdsuidomain/formats/json/ApiDocumentSuite.scala b/src/test/scala/xyz/driver/pdsuidomain/formats/json/ApiDocumentSuite.scala new file mode 100644 index 0000000..778e62e --- /dev/null +++ b/src/test/scala/xyz/driver/pdsuidomain/formats/json/ApiDocumentSuite.scala @@ -0,0 +1,78 @@ +package xyz.driver.pdsuidomain.formats.json + +/* +import java.time.LocalDateTime + +import org.scalatest.FreeSpecLike +import play.api.libs.json.Json + +import scala.collection.breakOut + +class ApiDocumentSuite extends FreeSpecLike { + + "ApiDocument" - { + "conforms to specification when serialized" in { + val document = ApiDocument( + id = 1L, + recordId = 123L, + physician = Some("physician"), + lastUpdate = LocalDateTime.now(), + `type` = "some-type", + startDate = LocalDateTime.now(), + endDate = Some(LocalDateTime.now()), + provider = "test-provider", + providerType = "test-provider-type", + status = "New", + assignee = Some(5L), + previousAssignee = None, + meta = "{}" + ) + + val actualJson = serialize(document) + val matcher = + """^\{ + |"id":"[^"]+", + |"recordId":"[^"]+", + |"physician":"[^"]+", + |"lastUpdate":"[^"]+", + |"type":"[^"]+", + |"startDate":"[^"]+", + |"endDate":"[^"]+", + |"provider":"[^"]+", + |"providerType":"[^"]+", + |"status":"[^"]+", + |"assignee":"[^"]+", + |"meta":\{[^\}]*\} + |\}""".stripMargin.lines.mkString.r + + assert( + matcher.pattern.matcher(actualJson).matches(), + s"""see https://driverinc.atlassian.net/wiki/display/RA/REST+API+Specification#RESTAPISpecification-DocumentObject + |pattern = ${matcher.pattern} + |json = $actualJson""".stripMargin + ) + } + + "has optional fields according to specification" in { + val expectedOptionalFields = Set("physician", "endDate", "assignee", "previousAssignee") + + val klass = classOf[ApiDocument] + val actualOptionalFields: Set[String] = klass.getDeclaredFields.collect({ + case x if x.getType == classOf[Option[_]] => x.getName + })(breakOut) + + assert( + actualOptionalFields === expectedOptionalFields, + """actual vs expected + |see https://driverinc.atlassian.net/wiki/display/RA/REST+API+Specification#RESTAPISpecification-DocumentObject + """.stripMargin.trim + ) + } + } + + private def serialize(document: ApiDocument): String = { + Json.stringify(Json.toJson(document)) + } + +} +*/ |