blob: 201d997700f935037f8f2345b4a06d536857651b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
package cc.spray.json
package formats
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)
}
}
}
|