Added JSON construction tests

This commit is contained in:
Felix Krause 2016-01-24 19:19:03 +01:00
parent b7828884bd
commit 42df37bbbe
1 changed files with 46 additions and 0 deletions

46
test/constructingJson.nim Normal file
View File

@ -0,0 +1,46 @@
import "../yaml"
import unittest, json
proc wc(line, column: int, lineContent: string, message: string) =
echo "Warning (", line, ",", column, "): ", message, "\n", lineContent
proc ensureEqual(yamlIn, jsonIn: string) =
var
parser = newYamlParser(initCoreTagLibrary(), wc)
yamlResult = constructJson(parser.parse(newStringStream(yamlIn)))
jsonResult = parseJson(jsonIn)
assert yamlResult.len == 1
assert(jsonResult == yamlResult[0])
suite "Constructing JSON":
test "Constructing JSON: Simple Sequence":
ensureEqual("- 1\n- 2\n- 3", "[1, 2, 3]")
test "Constructing JSON: Simple Map":
ensureEqual("a: b\nc: d", """{"a": "b", "c": "d"}""")
test "Constructing JSON: Complex Structure":
ensureEqual("""
%YAML 1.2
---
Foo:
- - a
- b
- c
- bla: blubb
Numbers, bools, special values:
- 1
- true
- ~
- 42.23
- no
""", """{
"Foo": [
[ "a", "b", "c"],
{ "bla": "blubb"}
],
"Numbers, bools, special values": [
1, true, null, 42.23, false
]
}""")