diff options
Diffstat (limited to 'src/test/scala/ProductTypeFormats.scala')
-rw-r--r-- | src/test/scala/ProductTypeFormats.scala | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/src/test/scala/ProductTypeFormats.scala b/src/test/scala/ProductTypeFormats.scala deleted file mode 100644 index 02fb554..0000000 --- a/src/test/scala/ProductTypeFormats.scala +++ /dev/null @@ -1,54 +0,0 @@ -package xyz.driver.json - -import spray.json._ - -import org.scalatest._ - -class ProductTypeFormats - extends FlatSpec - with FormatTests - with DerivedFormats - with DefaultJsonProtocol { - - case class A() - case class B(x: Int, b: String, mp: Map[String, Int]) - case class C(b: B) - case object D - case class E(d: D.type) - case class F(x: Int) - - "No-parameter product" should behave like checkRoundtrip(A(), "{}") - - "Simple parameter product" should behave like checkRoundtrip( - B(42, "Hello World", Map("a" -> 1, "b" -> -1024)), - """{ "x": 42, "b": "Hello World", "mp": { "a": 1, "b": -1024 } }""" - ) - - "Nested parameter product" should behave like checkRoundtrip( - C(B(42, "Hello World", Map("a" -> 1, "b" -> -1024))), - """{"b" :{ "x": 42, "b": "Hello World", "mp": { "a": 1, "b": -1024 } } }""" - ) - - "Case object" should behave like checkRoundtrip( - D, - "{}" - ) - - "Case object as parameter" should behave like checkRoundtrip( - E(D), - """{"d":{}}""" - ) - - // custom format for F, that inverts the value of parameter x - implicit val fFormat: RootJsonFormat[F] = new RootJsonFormat[F] { - override def write(f: F): JsValue = JsObject("x" -> JsNumber(-f.x)) - override def read(js: JsValue): F = - F(-js.asJsObject.fields("x").convertTo[Int]) - } - - "Overriding with a custom format" should behave like checkRoundtrip( - F(2), - """{"x":-2}""" - ) - -} |