diff options
Diffstat (limited to 'src/test/scala/cc/spray/json/StandardFormatsSpec.scala')
-rw-r--r-- | src/test/scala/cc/spray/json/StandardFormatsSpec.scala | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/test/scala/cc/spray/json/StandardFormatsSpec.scala b/src/test/scala/cc/spray/json/StandardFormatsSpec.scala new file mode 100644 index 0000000..00561e0 --- /dev/null +++ b/src/test/scala/cc/spray/json/StandardFormatsSpec.scala @@ -0,0 +1,41 @@ +package cc.spray.json + +import org.specs.Specification + +class StandardFormatsSpec extends Specification with StandardFormats with BasicFormats { + + "The optionFormat" should { + "convert None to JsNull" in { + None.asInstanceOf[Option[Int]].toJson mustEqual JsNull + } + "convert JsNull to None" in { + JsNull.fromJson[Option[Int]] mustEqual None + } + "convert Some(Hello) to JsString(Hello)" in { + Some("Hello").asInstanceOf[Option[String]].toJson mustEqual JsString("Hello") + } + "convert JsString(Hello) to Some(Hello)" in { + JsString("Hello").fromJson[Option[String]] mustEqual Some("Hello") + } + } + + "The tuple1Format" should { + "convert (42) to a JsNumber" in { + Tuple1(42).toJson mustEqual JsNumber(42) + } + "be able to convert a JsNumber to a Tuple1[Int]" in { + JsNumber(42).fromJson[Tuple1[Int]] mustEqual Tuple1(42) + } + } + + "The tuple2Format" should { + val json = JsArray(JsNumber(42), JsNumber(4.2)) + "convert (42, 4.2) to a JsArray" in { + (42, 4.2).toJson mustEqual json + } + "be able to convert a JsArray to a (Int, Double)]" in { + json.fromJson[(Int, Double)] mustEqual (42, 4.2) + } + } + +}
\ No newline at end of file |