NimYAML/test/tjson.nim

58 lines
1.3 KiB
Nim
Raw Normal View History

# NimYAML - YAML implementation in Nim
# (c) Copyright 2015-2023 Felix Krause
#
# See the file "copying.txt", included in this
# distribution, for details about the copyright.
import ../yaml/[ parser, stream, tojson]
2016-01-24 18:19:03 +00:00
import unittest, json
2016-01-24 18:19:03 +00:00
proc ensureEqual(yamlIn, jsonIn: string) =
try:
var
yamlParser = initYamlParser(true)
s = yamlParser.parse(yamlIn)
yamlResult = constructJson(s)
jsonResult = parseJson(jsonIn)
assert yamlResult.len == 1
assert(jsonResult == yamlResult[0], "Expected: " & $jsonResult & ", got: " &
$yamlResult[0])
2023-03-18 12:54:45 +00:00
except YamlStreamError as se:
let e = (ref YamlParserError)(se.parent)
echo "error occurred: " & e.msg
echo "line: ", e.mark.line, ", column: ", e.mark.column
echo e.lineContent
raise e
2016-01-24 18:19:03 +00:00
suite "Constructing JSON":
2016-09-14 16:31:09 +00:00
test "Simple Sequence":
2016-04-02 15:48:22 +00:00
ensureEqual("- 1\n- 2\n- 3", "[1, 2, 3]")
2016-09-20 19:53:38 +00:00
2016-09-14 16:31:09 +00:00
test "Simple Map":
2016-04-02 15:48:22 +00:00
ensureEqual("a: b\nc: d", """{"a": "b", "c": "d"}""")
2016-09-20 19:53:38 +00:00
2016-09-14 16:31:09 +00:00
test "Complex Structure":
2016-04-02 15:48:22 +00:00
ensureEqual("""
2016-01-24 18:19:03 +00:00
%YAML 1.2
---
Foo:
- - a
- b
- c
- bla: blubb
Numbers, bools, special values:
- 1
- true
- ~
- 42.23
- FALSE
2016-01-24 18:19:03 +00:00
""", """{
"Foo": [
[ "a", "b", "c"],
{ "bla": "blubb"}
],
"Numbers, bools, special values": [
1, true, null, 42.23, false
]
}""")