package org.nutz.json;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import org.nutz.lang.Lang;
public class JsonCommentTest {
@Test
public void testMapSimple() throws FileNotFoundException {
String cs = "{A:12//C\n}";
Map<?, ?> map = Json.fromJson(HashMap.class, Lang.inr(cs));
assertEquals(12, map.get("A"));
}
@Test
public void testMapSimple2() throws FileNotFoundException {
String cs = "{A:12//C\n,/*TT*/B:'X'}";
Map<?, ?> map = Json.fromJson(HashMap.class, Lang.inr(cs));
assertEquals(12, map.get("A"));
assertEquals("X", map.get("B"));
}
@Test
public void testMapSimple3() throws FileNotFoundException {
String cs = "{\n/*Y*/\nA:4//C\n//B\n,B:'X'}";
Map<?, ?> map = Json.fromJson(HashMap.class, Lang.inr(cs));
assertEquals(4, map.get("A"));
assertEquals("X", map.get("B"));
}
@Test
public void testMapSimple4() throws FileNotFoundException {
String cs = "{A:/**Y**/4,B://F\n34}";
Map<?, ?> map = Json.fromJson(HashMap.class, Lang.inr(cs));
assertEquals(4, map.get("A"));
assertEquals(34, map.get("B"));
}
@Test
public void testMapSimpleComment() throws FileNotFoundException {
String cs = "/**Y**/true";
Boolean b = Json.fromJson(Boolean.class, Lang.inr(cs));
assertTrue(b);
}
@Test
public void testMap() throws FileNotFoundException {
Map<?, ?> map = Json.fromJson( HashMap.class,
new InputStreamReader(getClass().getResourceAsStream("/org/nutz/json/cmt-map.txt")));
assertEquals(34, map.get("A"));
assertEquals("XYZ", map.get("B"));
List<?> arr = (List<?>) map.get("arr");
assertEquals(3, arr.size());
assertEquals(34, arr.get(0));
assertEquals(true, arr.get(1));
assertEquals("abc", arr.get(2));
}
@Test
public void testArray2() throws Exception {
String s = "[1,// :!\n2]:";
int[] is = Json.fromJson(int[].class, Lang.inr(s));
assertEquals(1, is[0]);
assertEquals(2, is[1]);
}
@Test
public void testArray3() throws Exception {
String s = "[1// :!\n,2]:";
int[] is = Json.fromJson(int[].class, Lang.inr(s));
assertEquals(1, is[0]);
assertEquals(2, is[1]);
}
}