aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Somov <public.somov@gmail.com>2016-03-09 18:51:46 +0100
committerAndrey Somov <public.somov@gmail.com>2016-03-09 18:51:46 +0100
commit613e46a7b1f3deb7fa3479e0ebb2be257c020084 (patch)
tree3fcc7db8e5c80846d32b964822a9fb751d75be6c
parente56778ff369ab6832c5d313eba4c236632754d0f (diff)
downloadsnakeyaml-613e46a7b1f3deb7fa3479e0ebb2be257c020084.tar.gz
Add separate test for JSON parsing
-rw-r--r--src/test/java/org/yaml/snakeyaml/json/JsonTest.java88
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"));
+ }
+}