package com.alibaba.json.bvt.bug;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Map;
import org.junit.Assert;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.Feature;
import com.alibaba.fastjson.parser.ParserConfig;
import junit.framework.TestCase;
public class Issue585 extends TestCase {
private String original = JSON.DEFAULT_TYPE_KEY;
private ParserConfig originalConfig = ParserConfig.global;
protected void setUp() throws Exception {
ParserConfig.global = new ParserConfig();
if (!JSON.DEFAULT_TYPE_KEY.equals("mySpace")) {
JSON.setDefaultTypeKey("mySpace");
}
com.alibaba.fastjson.parser.ParserConfig.global.addAccept("com.alibaba.json.bvt.bug.Issue585.");
}
protected void tearDown() throws Exception {
JSON.setDefaultTypeKey(original);
ParserConfig.global = originalConfig;
}
public void test_for_issue() throws Exception {
String cc = "{\"mySpace\":\"com.alibaba.json.bvt.bug.Issue585$Result\",\"attachments\":{\"mySpace\":\"java.util.HashMap\",\"timeout\":5000,\"consumeApp\":\"multiGroupTestServer\"},\"status\":0}";
byte[] bytes = cc.getBytes("utf-8");
Result res = (Result) this.deserialize(bytes);
Assert.assertEquals(0, res.getStatus());
}
public <T> T deserialize(byte[] in) {
Charset CHARSET = Charset.forName("utf-8");
return (T) JSON.parse(in, 0, in.length, CHARSET.newDecoder(), Feature.AllowArbitraryCommas,
Feature.IgnoreNotMatch, Feature.SortFeidFastMatch, Feature.DisableCircularReferenceDetect,
Feature.AutoCloseSource);
}
public static class Result {
private int status;
private Object value;
private Map<String, Object> attachments = new HashMap<String, Object>(2);
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
public Map<String, Object> getAttachments() {
return attachments;
}
public void setAttachments(Map<String, Object> attachments) {
this.attachments = attachments;
}
}
}