diff options
author | Andrey Somov <public.somov@gmail.com> | 2016-03-09 18:51:46 +0100 |
---|---|---|
committer | Andrey Somov <public.somov@gmail.com> | 2016-03-09 18:51:46 +0100 |
commit | 613e46a7b1f3deb7fa3479e0ebb2be257c020084 (patch) | |
tree | 3fcc7db8e5c80846d32b964822a9fb751d75be6c | |
parent | e56778ff369ab6832c5d313eba4c236632754d0f (diff) | |
download | snakeyaml-613e46a7b1f3deb7fa3479e0ebb2be257c020084.tar.gz |
Add separate test for JSON parsing
-rw-r--r-- | src/test/java/org/yaml/snakeyaml/json/JsonTest.java | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/src/test/java/org/yaml/snakeyaml/json/JsonTest.java b/src/test/java/org/yaml/snakeyaml/json/JsonTest.java new file mode 100644 index 00000000..4ba2119f --- /dev/null +++ b/src/test/java/org/yaml/snakeyaml/json/JsonTest.java @@ -0,0 +1,88 @@ +/** + * Copyright (c) 2008, http://www.snakeyaml.org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.yaml.snakeyaml.json; + +import junit.framework.TestCase; +import org.yaml.snakeyaml.Yaml; + + +import java.util.Map; + +public class JsonTest extends TestCase { + + private Yaml loader = new Yaml(); + + + public void testLooksLikeJson() { + Map<String, Integer> map = (Map<String, Integer>) loader.load("{a: 1}"); + assertEquals(new Integer(1), map.get("a")); + } + + public void testSpaceAfterColon() { + Map<String, Integer> map = (Map<String, Integer>) loader.load("{\"a\": 1}"); + assertEquals(new Integer(1), map.get("a")); + } + + public void testCounterintuitiveColon() { + try { + loader.load("{a:1}"); + fail("We agree with libyaml and PyYAML."); + } catch (Exception e) { + assertTrue("':' in the flow context is a mess.", e.getMessage().contains("Please check http://pyyaml.org/wiki/YAMLColonInFlowContext for details.")); + } + } + + public void testNoSpace() { + Map<String, Integer> map = (Map<String, Integer>) loader.load("{\"a\":1}"); + assertEquals(new Integer(1), map.get("a")); + } + + public void testNoSpaceBothDoubleQuoted() { + Map<String, Integer> map = (Map<String, Integer>) loader.load("{\"a\":\"1\"}"); + assertEquals("1", map.get("a")); + } + + public void testNoSpaceSingleQouted() { + Map<String, Integer> map = (Map<String, Integer>) loader.load("{'a':1}"); + assertEquals(new Integer(1), map.get("a")); + } + + public void testManyValues() { + Map<String, Object> map = (Map<String, Object>) loader.load("{\"a\":1,\"b\":true,\"c\":\"foo\"}"); + assertEquals(3, map.size()); + assertEquals(new Integer(1), map.get("a")); + assertTrue((Boolean) map.get("b")); + assertEquals("foo", map.get("c")); + } + + public void testConstructNull() { + Map<String, Object> map = (Map<String, Object>) loader.load("{a: null}"); + assertEquals(1, map.size()); + assertNull(map.get("a")); + } + + public void testConstructNullFromEmpty() { + Map<String, Object> map = (Map<String, Object>) loader.load("{a: }"); + assertEquals(1, map.size()); + assertNull(map.get("a")); + } + + public void testConstructBoolean() { + Map<String, Object> map = (Map<String, Object>) loader.load("{a: true}"); + assertEquals(1, map.size()); + assertEquals(Boolean.TRUE, map.get("a")); + } +} |