diff options
author | Jakob Odersky <jakob@odersky.com> | 2018-04-08 16:24:00 -0700 |
---|---|---|
committer | Jakob Odersky <jakob@odersky.com> | 2018-04-08 16:24:00 -0700 |
commit | 3fe7b06c5f357f34a5c227bc040effcbb259aef2 (patch) | |
tree | 1f83c575a6f59340403c7cfdd77969d61467f817 /yamlesque-spray/src/test/scala/FormatTests.scala | |
parent | f1fe50cba0c07d27f109a727c480b02639d140e0 (diff) | |
download | yamlesque-3fe7b06c5f357f34a5c227bc040effcbb259aef2.tar.gz yamlesque-3fe7b06c5f357f34a5c227bc040effcbb259aef2.tar.bz2 yamlesque-3fe7b06c5f357f34a5c227bc040effcbb259aef2.zip |
Add spray compatibility layer
Diffstat (limited to 'yamlesque-spray/src/test/scala/FormatTests.scala')
-rw-r--r-- | yamlesque-spray/src/test/scala/FormatTests.scala | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/yamlesque-spray/src/test/scala/FormatTests.scala b/yamlesque-spray/src/test/scala/FormatTests.scala new file mode 100644 index 0000000..93d763a --- /dev/null +++ b/yamlesque-spray/src/test/scala/FormatTests.scala @@ -0,0 +1,53 @@ +package yamlesque + +import spray.json._ +import utest._ + +object FormatTests extends TestSuite { + + case class A(a1: Int, a2: Seq[B]) + case class B(a: String, b: Option[Boolean]) + + object Protocol extends DefaultJsonProtocol with JsonYamlFormats { + implicit def bFormat = jsonFormat2(B) + implicit def aFormat = jsonFormat2(A) + } + import Protocol._ + + val tests = Tests { + "parse" - { + val str = + s"""|a1: 42 + |a2: + | - a: hello world + | b: true + | - a: yoyo + |""".stripMargin + + "parse yaml" - { + str.parseYaml ==> YamlMapping( + "a1" -> YamlScalar("42"), + "a2" -> YamlSequence( + YamlMapping( + "a" -> YamlScalar("hello world"), + "b" -> YamlScalar("true") + ), + YamlMapping( + "a" -> YamlScalar("yoyo") + ) + ) + ) + } + "parse with json readers" - { + str.parseYaml.convertTo[A] ==> A( + 42, + Seq( + B("hello world", Some(true)), + B("yoyo", None), + ) + ) + } + } + } + +} |