/src/test/java/com/alibaba/json/bvt/JSONObjectTest.java

https://github.com/flydream/fastjson · Java · 190 lines · 149 code · 26 blank · 15 comment · 1 complexity · 1b0b7b499639a8b09223db64289f1966 MD5 · raw file

  1. /*
  2. * Copyright 1999-2101 Alibaba Group.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package com.alibaba.json.bvt;
  17. import java.io.StringWriter;
  18. import java.math.BigDecimal;
  19. import java.util.Collections;
  20. import java.util.Date;
  21. import java.util.HashMap;
  22. import junit.framework.Assert;
  23. import junit.framework.TestCase;
  24. import com.alibaba.fastjson.JSONObject;
  25. public class JSONObjectTest extends TestCase {
  26. public void test_toJSONObject() throws Exception {
  27. {
  28. Assert.assertNull(JSONObject.parse(null));
  29. }
  30. }
  31. public void test_writeJSONString() throws Exception {
  32. {
  33. StringWriter out = new StringWriter();
  34. new JSONObject().writeJSONString(out);
  35. Assert.assertEquals("{}", out.toString());
  36. }
  37. }
  38. public void test_getLong() throws Exception {
  39. JSONObject json = new JSONObject(true);
  40. json.put("A", 55L);
  41. json.put("B", 55);
  42. json.put("K", true);
  43. Assert.assertEquals(json.getLong("A").longValue(), 55L);
  44. Assert.assertEquals(json.getLong("B").longValue(), 55L);
  45. Assert.assertEquals(json.getLong("C"), null);
  46. Assert.assertEquals(json.getBooleanValue("K"), true);
  47. Assert.assertEquals(json.getBoolean("K"), Boolean.TRUE);
  48. }
  49. public void test_getLong_1() throws Exception {
  50. JSONObject json = new JSONObject(false);
  51. json.put("A", 55L);
  52. json.put("B", 55);
  53. Assert.assertEquals(json.getLong("A").longValue(), 55L);
  54. Assert.assertEquals(json.getLong("B").longValue(), 55L);
  55. Assert.assertEquals(json.getLong("C"), null);
  56. }
  57. public void test_getDate() throws Exception {
  58. long currentTimeMillis = System.currentTimeMillis();
  59. JSONObject json = new JSONObject();
  60. json.put("A", new Date(currentTimeMillis));
  61. json.put("B", currentTimeMillis);
  62. Assert.assertEquals(json.getDate("A").getTime(), currentTimeMillis);
  63. Assert.assertEquals(json.getDate("B").getTime(), currentTimeMillis);
  64. Assert.assertEquals(json.getLong("C"), null);
  65. }
  66. public void test_getBoolean() throws Exception {
  67. JSONObject json = new JSONObject();
  68. json.put("A", true);
  69. Assert.assertEquals(json.getBoolean("A").booleanValue(), true);
  70. Assert.assertEquals(json.getLong("C"), null);
  71. }
  72. public void test_getInt() throws Exception {
  73. JSONObject json = new JSONObject();
  74. json.put("A", 55L);
  75. json.put("B", 55);
  76. Assert.assertEquals(json.getInteger("A").intValue(), 55);
  77. Assert.assertEquals(json.getInteger("B").intValue(), 55);
  78. Assert.assertEquals(json.getInteger("C"), null);
  79. }
  80. public void test_order() throws Exception {
  81. JSONObject json = new JSONObject(true);
  82. json.put("C", 55L);
  83. json.put("B", 55);
  84. json.put("A", 55);
  85. Assert.assertEquals("C", json.keySet().toArray()[0]);
  86. Assert.assertEquals("B", json.keySet().toArray()[1]);
  87. Assert.assertEquals("A", json.keySet().toArray()[2]);
  88. Assert.assertEquals(0, json.getIntValue("D"));
  89. Assert.assertEquals(0L, json.getLongValue("D"));
  90. Assert.assertEquals(false, json.getBooleanValue("D"));
  91. }
  92. public void test_all() throws Exception {
  93. JSONObject json = new JSONObject();
  94. Assert.assertEquals(true, json.isEmpty());
  95. json.put("C", 51L);
  96. json.put("B", 52);
  97. json.put("A", 53);
  98. Assert.assertEquals(false, json.isEmpty());
  99. Assert.assertEquals(true, json.containsKey("C"));
  100. Assert.assertEquals(false, json.containsKey("D"));
  101. Assert.assertEquals(true, json.containsValue(52));
  102. Assert.assertEquals(false, json.containsValue(33));
  103. Assert.assertEquals(null, json.remove("D"));
  104. Assert.assertEquals(51L, json.remove("C"));
  105. Assert.assertEquals(2, json.keySet().size());
  106. Assert.assertEquals(2, json.values().size());
  107. Assert.assertEquals(new BigDecimal("53"), json.getBigDecimal("A"));
  108. json.putAll(Collections.singletonMap("E", 99));
  109. Assert.assertEquals(3, json.values().size());
  110. json.clear();
  111. Assert.assertEquals(0, json.values().size());
  112. json.putAll(Collections.singletonMap("E", 99));
  113. Assert.assertEquals(99L, json.getLongValue("E"));
  114. Assert.assertEquals(99, json.getIntValue("E"));
  115. Assert.assertEquals("99", json.getString("E"));
  116. Assert.assertEquals(null, json.getString("F"));
  117. Assert.assertEquals(null, json.getDate("F"));
  118. Assert.assertEquals(null, json.getBoolean("F"));
  119. }
  120. public void test_all_2() throws Exception {
  121. JSONObject array = new JSONObject();
  122. array.put("0", 123);
  123. array.put("1", "222");
  124. array.put("2", 3);
  125. array.put("3", true);
  126. array.put("4", "true");
  127. array.put("5", "2.0");
  128. Assert.assertEquals(123, array.getIntValue("0"));
  129. Assert.assertEquals(123, array.getLongValue("0"));
  130. Assert.assertEquals(new BigDecimal("123"), array.getBigDecimal("0"));
  131. Assert.assertEquals(222, array.getIntValue("1"));
  132. Assert.assertEquals(3, array.getByte("2").byteValue());
  133. Assert.assertEquals(3, array.getByteValue("2"));
  134. Assert.assertEquals(3, array.getShort("2").shortValue());
  135. Assert.assertEquals(3, array.getShortValue("2"));
  136. Assert.assertEquals(new Integer(222), array.getInteger("1"));
  137. Assert.assertEquals(new Long(222), array.getLong("1"));
  138. Assert.assertEquals(new BigDecimal("222"), array.getBigDecimal("1"));
  139. Assert.assertEquals(true, array.getBooleanValue("4"));
  140. Assert.assertEquals(2.0F, array.getFloat("5").floatValue());
  141. Assert.assertEquals(2.0F, array.getFloatValue("5"));
  142. Assert.assertEquals(2.0D, array.getDouble("5").doubleValue());
  143. Assert.assertEquals(2.0D, array.getDoubleValue("5"));
  144. }
  145. public void test_getObject_null() throws Exception {
  146. JSONObject json = new JSONObject();
  147. json.put("obj", null);
  148. Assert.assertTrue(json.getJSONObject("obj") == null);
  149. }
  150. public void test_bytes () throws Exception {
  151. JSONObject object = new JSONObject();
  152. Assert.assertNull(object.getBytes("bytes"));
  153. }
  154. public void test_getObject() throws Exception {
  155. JSONObject json = new JSONObject();
  156. json.put("obj", new JSONObject());
  157. Assert.assertEquals(0, json.getJSONObject("obj").size());
  158. }
  159. public void test_getObject_map() throws Exception {
  160. JSONObject json = new JSONObject();
  161. json.put("obj", new HashMap());
  162. Assert.assertEquals(0, json.getJSONObject("obj").size());
  163. }
  164. }