From 6960ebc77684dd07125e39caefc140262b1fb76e Mon Sep 17 00:00:00 2001 From: Dillon Dixon Date: Thu, 23 Jul 2015 20:44:04 -0700 Subject: [PATCH 1/5] Updated JsonArray to support adding primitives directly via an overloaded "add(...)" method rather than having to always do "add(new JsonPrimitive(...))" --- .../main/java/com/google/gson/JsonArray.java | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gson/src/main/java/com/google/gson/JsonArray.java b/gson/src/main/java/com/google/gson/JsonArray.java index c18f47f5..9e5be6c2 100644 --- a/gson/src/main/java/com/google/gson/JsonArray.java +++ b/gson/src/main/java/com/google/gson/JsonArray.java @@ -49,6 +49,54 @@ public final class JsonArray extends JsonElement implements Iterable Date: Thu, 23 Jul 2015 21:18:01 -0700 Subject: [PATCH 2/5] Fixed accidental duplication of null elements --- .../main/java/com/google/gson/JsonArray.java | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/gson/src/main/java/com/google/gson/JsonArray.java b/gson/src/main/java/com/google/gson/JsonArray.java index 9e5be6c2..c664a5e1 100644 --- a/gson/src/main/java/com/google/gson/JsonArray.java +++ b/gson/src/main/java/com/google/gson/JsonArray.java @@ -55,10 +55,7 @@ public final class JsonArray extends JsonElement implements Iterable Date: Thu, 23 Jul 2015 22:57:32 -0700 Subject: [PATCH 3/5] Added test ovr new DOM functionality --- .../google/gson/functional/JsonArrayTest.java | 129 ++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 gson/src/test/java/com/google/gson/functional/JsonArrayTest.java diff --git a/gson/src/test/java/com/google/gson/functional/JsonArrayTest.java b/gson/src/test/java/com/google/gson/functional/JsonArrayTest.java new file mode 100644 index 00000000..ddd89717 --- /dev/null +++ b/gson/src/test/java/com/google/gson/functional/JsonArrayTest.java @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2008 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.gson.functional; + +import com.google.gson.JsonArray; +import junit.framework.TestCase; + +/** + * Functional tests for adding primitives to a JsonArray. + * + * @author Dillon Dixon + */ +public class JsonArrayTest extends TestCase { + + public void testStringPrimitiveAddition() { + JsonArray jsonArray = new JsonArray(); + + jsonArray.add("Hello"); + jsonArray.add("Goodbye"); + jsonArray.add("Thank you"); + jsonArray.add((String) null); + jsonArray.add("Yes"); + + assertEquals("[\"Hello\",\"Goodbye\",\"Thank you\",null,\"Yes\"]", jsonArray.toString()); + } + + public void testIntegerPrimitiveAddition() { + JsonArray jsonArray = new JsonArray(); + + int x = 1; + jsonArray.add(x); + + x = 2; + jsonArray.add(x); + + x = -3; + jsonArray.add(x); + + jsonArray.add((Integer) null); + + x = 4; + jsonArray.add(x); + + x = 0; + jsonArray.add(x); + + assertEquals("[1,2,-3,null,4,0]", jsonArray.toString()); + } + + public void testDoublePrimitiveAddition() { + JsonArray jsonArray = new JsonArray(); + + double x = 1.0; + jsonArray.add(x); + + x = 2.13232; + jsonArray.add(x); + + x = 0.121; + jsonArray.add(x); + + jsonArray.add((Double) null); + + x = -0.00234; + jsonArray.add(x); + + jsonArray.add((Double) null); + + assertEquals("[1.0,2.13232,0.121,null,-0.00234,null]", jsonArray.toString()); + } + + public void testBooleanPrimitiveAddition() { + JsonArray jsonArray = new JsonArray(); + + jsonArray.add(true); + jsonArray.add(true); + jsonArray.add(false); + jsonArray.add(false); + jsonArray.add((Boolean) null); + jsonArray.add(true); + + assertEquals("[true,true,false,false,null,true]", jsonArray.toString()); + } + + public void testCharPrimitiveAddition() { + JsonArray jsonArray = new JsonArray(); + + jsonArray.add('a'); + jsonArray.add('e'); + jsonArray.add('i'); + jsonArray.add((char) 111); + jsonArray.add((Character) null); + jsonArray.add('u'); + jsonArray.add("and sometimes Y"); + + assertEquals("[\"a\",\"e\",\"i\",\"o\",null,\"u\",\"and sometimes Y\"]", jsonArray.toString()); + } + + public void testSameAddition() { + JsonArray jsonArray = new JsonArray(); + + jsonArray.add('a'); + jsonArray.add('a'); + jsonArray.add(true); + jsonArray.add(true); + jsonArray.add(1212); + jsonArray.add(1212); + jsonArray.add(34.34); + jsonArray.add(34.34); + jsonArray.add((Boolean) null); + jsonArray.add((Boolean) null); + + assertEquals("[\"a\",\"a\",true,true,1212,1212,34.34,34.34,null,null]", jsonArray.toString()); + } +} From a67ca052a3e71f1d1f5db52f374cff5758ec550a Mon Sep 17 00:00:00 2001 From: Dillon Dixon Date: Thu, 23 Jul 2015 23:00:18 -0700 Subject: [PATCH 4/5] Added test for mixed primitives --- .../google/gson/functional/JsonArrayTest.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gson/src/test/java/com/google/gson/functional/JsonArrayTest.java b/gson/src/test/java/com/google/gson/functional/JsonArrayTest.java index ddd89717..f4c9a348 100644 --- a/gson/src/test/java/com/google/gson/functional/JsonArrayTest.java +++ b/gson/src/test/java/com/google/gson/functional/JsonArrayTest.java @@ -19,6 +19,8 @@ package com.google.gson.functional; import com.google.gson.JsonArray; import junit.framework.TestCase; +import java.math.BigInteger; + /** * Functional tests for adding primitives to a JsonArray. * @@ -110,6 +112,21 @@ public class JsonArrayTest extends TestCase { assertEquals("[\"a\",\"e\",\"i\",\"o\",null,\"u\",\"and sometimes Y\"]", jsonArray.toString()); } + public void testMixedPrimitiveAddition() { + JsonArray jsonArray = new JsonArray(); + + jsonArray.add('a'); + jsonArray.add("apple"); + jsonArray.add(12121); + jsonArray.add((char) 111); + jsonArray.add((Boolean) null); + jsonArray.add((Character) null); + jsonArray.add(12.232); + jsonArray.add(BigInteger.valueOf(2323)); + + assertEquals("[\"a\",\"apple\",12121,\"o\",null,null,12.232,2323]", jsonArray.toString()); + } + public void testSameAddition() { JsonArray jsonArray = new JsonArray(); From 5cf82a573f78e587f44c58ccd9b84679d531bfd6 Mon Sep 17 00:00:00 2001 From: Dillon Dixon Date: Thu, 23 Jul 2015 23:02:46 -0700 Subject: [PATCH 5/5] Added test for nulls --- .../google/gson/functional/JsonArrayTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gson/src/test/java/com/google/gson/functional/JsonArrayTest.java b/gson/src/test/java/com/google/gson/functional/JsonArrayTest.java index f4c9a348..22a479b8 100644 --- a/gson/src/test/java/com/google/gson/functional/JsonArrayTest.java +++ b/gson/src/test/java/com/google/gson/functional/JsonArrayTest.java @@ -127,6 +127,22 @@ public class JsonArrayTest extends TestCase { assertEquals("[\"a\",\"apple\",12121,\"o\",null,null,12.232,2323]", jsonArray.toString()); } + public void testNullPrimitiveAddition() { + JsonArray jsonArray = new JsonArray(); + + jsonArray.add((Character) null); + jsonArray.add((Boolean) null); + jsonArray.add((Integer) null); + jsonArray.add((Double) null); + jsonArray.add((Float) null); + jsonArray.add((BigInteger) null); + jsonArray.add((String) null); + jsonArray.add((Boolean) null); + jsonArray.add((Number) null); + + assertEquals("[null,null,null,null,null,null,null,null,null]", jsonArray.toString()); + } + public void testSameAddition() { JsonArray jsonArray = new JsonArray();