/src/test/java/com/alibaba/json/bvt/serializer/JavaBeanSerializerTest.java

https://github.com/flydream/fastjson · Java · 215 lines · 158 code · 57 blank · 0 comment · 1 complexity · f8bc22d55b1e18cfad9f27a6955921f2 MD5 · raw file

  1. package com.alibaba.json.bvt.serializer;
  2. import java.util.ArrayList;
  3. import java.util.Collection;
  4. import java.util.List;
  5. import junit.framework.Assert;
  6. import junit.framework.TestCase;
  7. import com.alibaba.fastjson.JSONException;
  8. import com.alibaba.fastjson.serializer.FieldSerializer;
  9. import com.alibaba.fastjson.serializer.JSONSerializer;
  10. import com.alibaba.fastjson.serializer.JavaBeanSerializer;
  11. import com.alibaba.fastjson.serializer.SerializeWriter;
  12. public class JavaBeanSerializerTest extends TestCase {
  13. public void test_0_s() throws Exception {
  14. SerializeWriter out = new SerializeWriter();
  15. A a = new A();
  16. a.getL0().add("A");
  17. a.getL0().add("B");
  18. JavaBeanSerializer serializer = new JavaBeanSerializer(A.class);
  19. serializer.write(new JSONSerializer(out), a, null, null);
  20. Assert.assertEquals("{\"l0\":[\"A\",\"B\"]}", out.toString());
  21. }
  22. public void test_1_s() throws Exception {
  23. SerializeWriter out = new SerializeWriter();
  24. B a = new B();
  25. a.getL0().add("A");
  26. a.getL0().add("B");
  27. JavaBeanSerializer serializer = new JavaBeanSerializer(B.class);
  28. serializer.write(new JSONSerializer(out), a, null, null);
  29. Assert.assertEquals("{\"l0\":[\"A\",\"B\"],\"l1\":[]}", out.toString());
  30. }
  31. public void test_2_s() throws Exception {
  32. SerializeWriter out = new SerializeWriter();
  33. JavaBeanSerializer serializer = new JavaBeanSerializer(F.class);
  34. serializer.write(new JSONSerializer(out), new F(new E(123)), null, null);
  35. Assert.assertEquals("{\"e\":{\"id\":123}}", out.toString());
  36. }
  37. public void test_3_s() throws Exception {
  38. SerializeWriter out = new SerializeWriter();
  39. JavaBeanSerializer serializer = new JavaBeanSerializer(F.class);
  40. serializer.write(new JSONSerializer(out), new F(null), null, null);
  41. for (FieldSerializer getter : serializer.getGetters()) {
  42. getter.getName();
  43. getter.getMethod();
  44. }
  45. Assert.assertEquals("{}", out.toString());
  46. }
  47. public void test_error_s() throws Exception {
  48. JSONException error = null;
  49. try {
  50. SerializeWriter out = new SerializeWriter();
  51. JavaBeanSerializer serializer = new JavaBeanSerializer(C.class);
  52. serializer.write(new JSONSerializer(out), new C(), null, null);
  53. } catch (JSONException e) {
  54. error = e;
  55. }
  56. Assert.assertNotNull(error);
  57. }
  58. public void test_error_1_s() throws Exception {
  59. JSONException error = null;
  60. try {
  61. SerializeWriter out = new SerializeWriter();
  62. JavaBeanSerializer serializer = new JavaBeanSerializer(D.class);
  63. serializer.write(new JSONSerializer(out), new D(), null, null);
  64. } catch (JSONException e) {
  65. error = e;
  66. }
  67. Assert.assertNotNull(error);
  68. }
  69. public static class A {
  70. private List<String> l0 = new ArrayList<String>();
  71. public List<String> getL0() {
  72. return l0;
  73. }
  74. public void setL0(List<String> l0) {
  75. this.l0 = l0;
  76. }
  77. public Object get() {
  78. return null;
  79. }
  80. public Object getx() {
  81. return null;
  82. }
  83. public boolean is() {
  84. return true;
  85. }
  86. public boolean isx() {
  87. return true;
  88. }
  89. }
  90. public static class B {
  91. private Collection<String> l0 = new ArrayList<String>();
  92. private Collection<String> l1 = new ArrayList<String>();
  93. public Collection<String> getL1() {
  94. return l1;
  95. }
  96. public void setL1(Collection<String> l1) {
  97. this.l1 = l1;
  98. }
  99. public Collection<String> getL0() {
  100. return l0;
  101. }
  102. public void setL0(Collection<String> l0) {
  103. this.l0 = l0;
  104. }
  105. public Object get() {
  106. return null;
  107. }
  108. public Object getx() {
  109. return null;
  110. }
  111. public boolean is() {
  112. return true;
  113. }
  114. public boolean isx() {
  115. return true;
  116. }
  117. }
  118. public static class C {
  119. public List<String> getL0() {
  120. throw new RuntimeException();
  121. }
  122. public void setL0(List<String> l0) {
  123. }
  124. }
  125. public static class D {
  126. public Collection<String> getL0() {
  127. throw new RuntimeException();
  128. }
  129. }
  130. public static class E {
  131. private int id;
  132. public E(){
  133. }
  134. public E(int id){
  135. this.id = id;
  136. }
  137. public int getId() {
  138. return id;
  139. }
  140. public void setId(int id) {
  141. this.id = id;
  142. }
  143. }
  144. public static class F {
  145. private E e;
  146. public F(){
  147. }
  148. public F(E e){
  149. this.e = e;
  150. }
  151. public E getE() {
  152. return e;
  153. }
  154. public void setE(E e) {
  155. this.e = e;
  156. }
  157. }
  158. }