From 79e5def2acb3d496e97ea5ecdc323fcf9a98eec1 Mon Sep 17 00:00:00 2001 From: kimmking Date: Mon, 17 Feb 2014 22:33:04 +0800 Subject: [PATCH] test for issues#135 test for issues#135 --- .../json/test/generic/GenericTypeTest.java | 62 +++++++++++++++++++ .../com/alibaba/json/test/generic/TBean.java | 14 +++++ .../com/alibaba/json/test/generic/TGen.java | 15 +++++ .../com/alibaba/json/test/generic/TStr.java | 16 +++++ 4 files changed, 107 insertions(+) create mode 100644 src/test/java/com/alibaba/json/test/generic/GenericTypeTest.java create mode 100644 src/test/java/com/alibaba/json/test/generic/TBean.java create mode 100644 src/test/java/com/alibaba/json/test/generic/TGen.java create mode 100644 src/test/java/com/alibaba/json/test/generic/TStr.java diff --git a/src/test/java/com/alibaba/json/test/generic/GenericTypeTest.java b/src/test/java/com/alibaba/json/test/generic/GenericTypeTest.java new file mode 100644 index 000000000..344a48f65 --- /dev/null +++ b/src/test/java/com/alibaba/json/test/generic/GenericTypeTest.java @@ -0,0 +1,62 @@ +package com.alibaba.json.test.generic; +import java.io.Serializable; + +import org.junit.Test; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import com.alibaba.fastjson.JSON; + + +public class GenericTypeTest extends TestCase { + + @Test + public void testEmbeddedGenericType() throws Exception { + + String jsonString = "{\"g\":{\"b\":{\"s\":'1'}}}"; + + Str t = JSON.parseObject(jsonString,Str.class); + Object o = t.getG().getB(); + System.out.println("Inner Class EmbeddedGenericType test => "+o.getClass().getName()); + Assert.assertEquals(GenericTypeTest.Bean.class.getName(), o.getClass().getName()); + + TStr t1 = JSON.parseObject(jsonString,TStr.class); + Object o1 = t1.getG().getB(); + System.out.println("Public Class EmbeddedGenericType test => "+o1.getClass().getName()); + Assert.assertEquals(TBean.class.getName(), o1.getClass().getName()); + + + } + + static class Str implements Serializable{ + Gen g; + public Gen getG() { + return g; + } + public void setG(Gen g) { + this.g = g; + } + } + + static class Gen implements Serializable{ + G b; + public G getB() { + return b; + } + public void setB(G b) { + this.b = b; + } + } + + static class Bean implements Serializable{ + String s; + public String getS() { + return s; + } + public void setS(String s) { + this.s = s; + } + } + +} diff --git a/src/test/java/com/alibaba/json/test/generic/TBean.java b/src/test/java/com/alibaba/json/test/generic/TBean.java new file mode 100644 index 000000000..8254fcf25 --- /dev/null +++ b/src/test/java/com/alibaba/json/test/generic/TBean.java @@ -0,0 +1,14 @@ +package com.alibaba.json.test.generic; +import java.io.Serializable; + + +public class TBean implements Serializable { + + String s; + public String getS() { + return s; + } + public void setS(String s) { + this.s = s; + } +} diff --git a/src/test/java/com/alibaba/json/test/generic/TGen.java b/src/test/java/com/alibaba/json/test/generic/TGen.java new file mode 100644 index 000000000..2eccac975 --- /dev/null +++ b/src/test/java/com/alibaba/json/test/generic/TGen.java @@ -0,0 +1,15 @@ +package com.alibaba.json.test.generic; +import java.io.Serializable; + + +public class TGen implements Serializable { + + G b; + public G getB() { + return b; + } + public void setB(G b) { + this.b = b; + } + +} diff --git a/src/test/java/com/alibaba/json/test/generic/TStr.java b/src/test/java/com/alibaba/json/test/generic/TStr.java new file mode 100644 index 000000000..d6b4d9ecd --- /dev/null +++ b/src/test/java/com/alibaba/json/test/generic/TStr.java @@ -0,0 +1,16 @@ +package com.alibaba.json.test.generic; +import java.io.Serializable; + +public class TStr implements Serializable { + + TGen g; + + public TGen getG() { + return g; + } + + public void setG(TGen g) { + this.g = g; + } + +}