package com.alibaba.json.bvt.parser;
import org.junit.Assert;
import junit.framework.TestCase;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.DefaultJSONParser;
import com.alibaba.fastjson.parser.Feature;
public class FeatureParserTest extends TestCase {
public void test_AllowSingleQuotes_0() throws Exception {
DefaultJSONParser parser = new DefaultJSONParser("{'a':3}");
parser.config(Feature.AllowSingleQuotes, true);
JSONObject json = (JSONObject) parser.parse();
Assert.assertEquals(1, json.size());
Assert.assertEquals(new Integer(3), (Integer) json.getInteger("a"));
}
public void test_AllowSingleQuotes_1() throws Exception {
DefaultJSONParser parser = new DefaultJSONParser("{'a':'3'}");
parser.config(Feature.AllowSingleQuotes, true);
JSONObject json = (JSONObject) parser.parse();
Assert.assertEquals(1, json.size());
Assert.assertEquals("3", (String) json.get("a"));
}
public void test_AllowUnQuotedFieldNames_0() throws Exception {
DefaultJSONParser parser = new DefaultJSONParser("{a:3}");
parser.config(Feature.AllowUnQuotedFieldNames, true);
JSONObject json = (JSONObject) parser.parse();
Assert.assertEquals(1, json.size());
Assert.assertEquals(new Integer(3), (Integer) json.getInteger("a"));
}
public void test_error_0() throws Exception {
JSONException error = null;
try {
DefaultJSONParser parser = new DefaultJSONParser("{'a':3}");
parser.config(Feature.AllowSingleQuotes, false);
parser.parse();
} catch (JSONException e) {
error = e;
}
Assert.assertNotNull(error);
}
public void test_error_1() throws Exception {
JSONException error = null;
try {
DefaultJSONParser parser = new DefaultJSONParser("{\"a\":'3'}");
parser.config(Feature.AllowSingleQuotes, false);
parser.parse();
} catch (JSONException e) {
error = e;
}
Assert.assertNotNull(error);
}
public void test_error_2() throws Exception {
JSONException error = null;
try {
DefaultJSONParser parser = new DefaultJSONParser("{a:3}");
parser.config(Feature.AllowUnQuotedFieldNames, false);
parser.parse();
} catch (JSONException e) {
error = e;
}
Assert.assertNotNull(error);
}
}