From 57bc594e1daa7dff6013759d6fc65f183118aa33 Mon Sep 17 00:00:00 2001 From: Mathias Date: Tue, 24 May 2011 23:02:25 +0200 Subject: Add JsonFormat for JsValues, some more helpers --- .../scala/cc/spray/json/BasicFormatsSpec.scala | 2 +- .../cc/spray/json/CollectionFormatsSpec.scala | 2 +- .../scala/cc/spray/json/GenericFormatsSpec.scala | 31 ---------------------- .../scala/cc/spray/json/ProductFormatsSpec.scala | 31 ++++++++++++++++++++++ .../scala/cc/spray/json/StandardFormatsSpec.scala | 2 +- 5 files changed, 34 insertions(+), 34 deletions(-) delete mode 100644 src/test/scala/cc/spray/json/GenericFormatsSpec.scala create mode 100644 src/test/scala/cc/spray/json/ProductFormatsSpec.scala (limited to 'src/test/scala/cc/spray') diff --git a/src/test/scala/cc/spray/json/BasicFormatsSpec.scala b/src/test/scala/cc/spray/json/BasicFormatsSpec.scala index 7207db5..c26d302 100644 --- a/src/test/scala/cc/spray/json/BasicFormatsSpec.scala +++ b/src/test/scala/cc/spray/json/BasicFormatsSpec.scala @@ -2,7 +2,7 @@ package cc.spray.json import org.specs.Specification -class BasicFormatsSpec extends Specification with BasicFormats { +class BasicFormatsSpec extends Specification with DefaultJsonProtocol { "The IntJsonFormat" should { "convert an Int to a JsNumber" in { diff --git a/src/test/scala/cc/spray/json/CollectionFormatsSpec.scala b/src/test/scala/cc/spray/json/CollectionFormatsSpec.scala index 7a47fb7..ba792a3 100644 --- a/src/test/scala/cc/spray/json/CollectionFormatsSpec.scala +++ b/src/test/scala/cc/spray/json/CollectionFormatsSpec.scala @@ -3,7 +3,7 @@ package cc.spray.json import org.specs.Specification import java.util.Arrays -class CollectionFormatsSpec extends Specification with CollectionFormats with BasicFormats { +class CollectionFormatsSpec extends Specification with DefaultJsonProtocol { "The listFormat" should { val list = List(1, 2, 3) diff --git a/src/test/scala/cc/spray/json/GenericFormatsSpec.scala b/src/test/scala/cc/spray/json/GenericFormatsSpec.scala deleted file mode 100644 index b284d42..0000000 --- a/src/test/scala/cc/spray/json/GenericFormatsSpec.scala +++ /dev/null @@ -1,31 +0,0 @@ -package cc.spray.json - -import org.specs.Specification - -class GenericFormatsSpec extends Specification with GenericFormats with BasicFormats { - - case class Test2(a: Int, b: Double) - implicit val test2Format = jsonFormat(Test2, "a", "b") - - "A JsonFormat created with format, for a case class with 2 elements," should { - val obj = Test2(42, 4.2) - val json = JsObject(JsField("a", 42), JsField("b", 4.2)) - "convert to a respective JsObject" in { - obj.toJson mustEqual json - } - "convert a JsObject to the respective case class instance" in { - json.fromJson[Test2] mustEqual obj - } - "throw a DeserializationException if the JsObject does not define the right members" in ( - JsObject(JsField("a", 42), JsField("x", 4.2)).fromJson[Test2] must - throwA(new DeserializationException("Object is missing required member 'b'")) - ) - "ignore additional members during deserialization" in { - JsObject(JsField("a", 42), JsField("b", 4.2), JsField("c", 'no)).fromJson[Test2] mustEqual obj - } - "throw a DeserializationException if the JsValue is not a JsObject" in ( - JsNull.fromJson[Test2] must throwA(new DeserializationException("Object expected")) - ) - } - -} diff --git a/src/test/scala/cc/spray/json/ProductFormatsSpec.scala b/src/test/scala/cc/spray/json/ProductFormatsSpec.scala new file mode 100644 index 0000000..5f253c2 --- /dev/null +++ b/src/test/scala/cc/spray/json/ProductFormatsSpec.scala @@ -0,0 +1,31 @@ +package cc.spray.json + +import org.specs.Specification + +class ProductFormatsSpec extends Specification with DefaultJsonProtocol { + + case class Test2(a: Int, b: Double) + implicit val test2Format = jsonFormat(Test2, "a", "b") + + "A JsonFormat created with format, for a case class with 2 elements," should { + val obj = Test2(42, 4.2) + val json = JsObject(JsField("a", 42), JsField("b", 4.2)) + "convert to a respective JsObject" in { + obj.toJson mustEqual json + } + "convert a JsObject to the respective case class instance" in { + json.fromJson[Test2] mustEqual obj + } + "throw a DeserializationException if the JsObject does not define the right members" in ( + JsObject(JsField("a", 42), JsField("x", 4.2)).fromJson[Test2] must + throwA(new DeserializationException("Object is missing required member 'b'")) + ) + "ignore additional members during deserialization" in { + JsObject(JsField("a", 42), JsField("b", 4.2), JsField("c", 'no)).fromJson[Test2] mustEqual obj + } + "throw a DeserializationException if the JsValue is not a JsObject" in ( + JsNull.fromJson[Test2] must throwA(new DeserializationException("Object expected")) + ) + } + +} diff --git a/src/test/scala/cc/spray/json/StandardFormatsSpec.scala b/src/test/scala/cc/spray/json/StandardFormatsSpec.scala index 7c454ac..8005c9f 100644 --- a/src/test/scala/cc/spray/json/StandardFormatsSpec.scala +++ b/src/test/scala/cc/spray/json/StandardFormatsSpec.scala @@ -3,7 +3,7 @@ package cc.spray.json import org.specs.Specification import scala.Right -class StandardFormatsSpec extends Specification with StandardFormats with BasicFormats { +class StandardFormatsSpec extends Specification with DefaultJsonProtocol { "The optionFormat" should { "convert None to JsNull" in { -- cgit v1.2.3