package com.alibaba.json.bvt.parser; import java.math.BigDecimal; import org.junit.Assert; import junit.framework.TestCase; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.parser.DefaultJSONParser; import com.alibaba.fastjson.parser.Feature; import com.alibaba.fastjson.parser.ParserConfig; public class DefaultExtJSONParserTest_3 extends TestCase { public void test_0() throws Exception { DefaultJSONParser parser = new DefaultJSONParser("{v1:3}"); parser.config(Feature.AllowUnQuotedFieldNames, true); A a = parser.parseObject(A.class); Assert.assertEquals(3, a.getV1()); } public void test_1() throws Exception { DefaultJSONParser parser = new DefaultJSONParser("{v1:'3'}"); parser.config(Feature.AllowUnQuotedFieldNames, true); parser.config(Feature.AllowSingleQuotes, true); A a = parser.parseObject(A.class); Assert.assertEquals(3, a.getV1()); } public void test_2() throws Exception { DefaultJSONParser parser = new DefaultJSONParser("{v1:\"3\"}"); parser.config(Feature.AllowUnQuotedFieldNames, true); parser.config(Feature.AllowSingleQuotes, true); A a = parser.parseObject(A.class); Assert.assertEquals(3, a.getV1()); } public void test_3() throws Exception { DefaultJSONParser parser = new DefaultJSONParser("{o1:{}}"); parser.config(Feature.AllowUnQuotedFieldNames, true); parser.config(Feature.AllowSingleQuotes, true); A a = parser.parseObject(A.class); Assert.assertEquals(true, a.getO1() != null); } public void test_4() throws Exception { DefaultJSONParser parser = new DefaultJSONParser("{v5:'3'}"); parser.config(Feature.AllowUnQuotedFieldNames, true); parser.config(Feature.AllowSingleQuotes, true); A a = parser.parseObject(A.class); Assert.assertEquals(3L, a.getV5().longValue()); } public void test_5() throws Exception { DefaultJSONParser parser = new DefaultJSONParser("{v5:\"3\"}"); parser.config(Feature.AllowUnQuotedFieldNames, true); parser.config(Feature.AllowSingleQuotes, true); A a = parser.parseObject(A.class); Assert.assertEquals(3L, a.getV5().longValue()); } public void test_6() throws Exception { int features = JSON.DEFAULT_PARSER_FEATURE; features = Feature.config(features, Feature.AllowSingleQuotes, true); Assert.assertEquals(true, Feature.isEnabled(features, Feature.AllowSingleQuotes)); DefaultJSONParser parser = new DefaultJSONParser("'abc'", ParserConfig.getGlobalInstance(), features); Assert.assertEquals("abc", parser.parse()); } public void test_7() throws Exception { DefaultJSONParser parser = new DefaultJSONParser("123"); ParserConfig mapping = new ParserConfig(); parser.setConfig(mapping); Assert.assertEquals(mapping, parser.getConfig()); } public static class A { private int v1; private String v2; private boolean v3; private BigDecimal v4; private Long v5; private B o1; public A(){ } public Long getV5() { return v5; } public void setV5(Long v5) { this.v5 = v5; } public B getO1() { return o1; } public void setO1(B o1) { this.o1 = o1; } public int getV1() { return v1; } public void setV1(int v1) { this.v1 = v1; } public String getV2() { return v2; } public void setV2(String v2) { this.v2 = v2; } public boolean isV3() { return v3; } public void setV3(boolean v3) { this.v3 = v3; } public BigDecimal getV4() { return v4; } public void setV4(BigDecimal v4) { this.v4 = v4; } } public static class B { } }