From 57ee8fa785c3815e45e473e5625d6e3cb1cd9402 Mon Sep 17 00:00:00 2001 From: Sergey Nastich Date: Mon, 9 Apr 2018 16:53:45 -0700 Subject: Add convenience methods to work with Tags: `taggedWith` wrapper and a proxy JSON format (#147) * Add convenience methods to work with Tags: `tagged` wrapper and a proxy JSON format --- src/test/scala/xyz/driver/core/JsonTest.scala | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/test/scala/xyz') diff --git a/src/test/scala/xyz/driver/core/JsonTest.scala b/src/test/scala/xyz/driver/core/JsonTest.scala index 7e8dba2..b845a44 100644 --- a/src/test/scala/xyz/driver/core/JsonTest.scala +++ b/src/test/scala/xyz/driver/core/JsonTest.scala @@ -13,6 +13,7 @@ import spray.json._ import xyz.driver.core.TestTypes.CustomGADT import xyz.driver.core.domain.{Email, PhoneNumber} import xyz.driver.core.json.enumeratum.HasJsonFormat +import xyz.driver.core.tagging.Taggable import xyz.driver.core.time.TimeOfDay import scala.collection.immutable.IndexedSeq @@ -31,6 +32,19 @@ class JsonTest extends FlatSpec with Matchers { parsedId should be(referenceId) } + "Json format for @@" should "read and write correct JSON" in { + trait Irrelevant + val reference = Id[JsonTest]("SomeID").tagged[Irrelevant] + + val format = json.taggedFormat[Id[JsonTest], Irrelevant] + + val writtenJson = format.write(reference) + writtenJson shouldBe JsString("SomeID") + + val parsedId: Id[JsonTest] @@ Irrelevant = format.read(writtenJson) + parsedId shouldBe reference + } + "Json format for Name" should "read and write correct JSON" in { val referenceName = Name[String]("Homer") -- cgit v1.2.3