From 41de7ce75b37fd97a8534d2c24740daa69f7cbaa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jan 2023 10:54:52 -0800 Subject: [PATCH 01/11] Bump jackson-databind from 2.14.1 to 2.14.2 (#2306) Bumps [jackson-databind](https://github.com/FasterXML/jackson) from 2.14.1 to 2.14.2. - [Release notes](https://github.com/FasterXML/jackson/releases) - [Commits](https://github.com/FasterXML/jackson/commits) --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- metrics/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metrics/pom.xml b/metrics/pom.xml index 245a6f0a..8d9d90f0 100644 --- a/metrics/pom.xml +++ b/metrics/pom.xml @@ -32,7 +32,7 @@ com.fasterxml.jackson.core jackson-databind - 2.14.1 + 2.14.2 com.google.caliper From 49b00d1a8630d1dabcc5c364b413c23f7433e4a7 Mon Sep 17 00:00:00 2001 From: Maicol <79454487+MaicolAntali@users.noreply.github.com> Date: Tue, 31 Jan 2023 20:20:54 +0100 Subject: [PATCH 02/11] Port all Junit assert to Truth asserts (#2304) * Port Junit assert to Truth in `com.google.gson.stream` * Port Junit assert to Truth in `com.google.gson.regression` * Port Junit assert to Truth in `om.google.gson.reflect` * Port Junit assert to Truth in `com.google.gson.metrics` * Port Junit assert to Truth in `com.google.gson.internal` * Port Junit assert to Truth in `com.google.gson.internal.sql` * Port Junit assert to Truth in `com.google.gson.internal.reflect` * Port Junit assert to Truth in `com.google.gson.internal.bind` * Port Junit assert to Truth in `com.google.gson.internal.bind.util` * Port Junit assert to Truth in `com.google.gson.functional` * Replaces `List.of` with `Arrays.asList` to grant legacy * Simplify `==` asserts * Simplify `.contain()` asserts + Minor fixes * Simplify asserts --- .../com/google/gson/JsonArrayAsListTest.java | 6 +- .../java/com/google/gson/JsonArrayTest.java | 4 +- .../java/com/google/gson/JsonObjectTest.java | 3 +- .../com/google/gson/functional/ArrayTest.java | 105 ++-- .../functional/CircularReferenceTest.java | 24 +- .../gson/functional/CollectionTest.java | 147 +++-- .../gson/functional/ConcurrencyTest.java | 6 +- .../functional/CustomDeserializerTest.java | 25 +- .../gson/functional/CustomSerializerTest.java | 13 +- .../functional/CustomTypeAdaptersTest.java | 73 ++- .../functional/DefaultTypeAdaptersTest.java | 265 +++++---- .../functional/DelegateTypeAdapterTest.java | 10 +- .../com/google/gson/functional/EnumTest.java | 88 ++- .../functional/EnumWithObfuscatedTest.java | 6 +- .../google/gson/functional/EscapingTest.java | 33 +- .../ExclusionStrategyFunctionalTest.java | 65 ++- .../gson/functional/ExposeFieldsTest.java | 43 +- .../gson/functional/FieldExclusionTest.java | 18 +- .../gson/functional/FieldNamingTest.java | 50 +- .../GsonVersionDiagnosticsTest.java | 12 +- .../gson/functional/InheritanceTest.java | 49 +- .../gson/functional/InstanceCreatorTest.java | 28 +- .../google/gson/functional/InterfaceTest.java | 10 +- .../functional/InternationalizationTest.java | 26 +- .../gson/functional/Java17RecordTest.java | 123 ++--- .../JavaUtilConcurrentAtomicTest.java | 63 ++- .../google/gson/functional/JavaUtilTest.java | 22 +- .../JsonAdapterAnnotationOnClassesTest.java | 34 +- .../JsonAdapterAnnotationOnFieldsTest.java | 48 +- ...JsonAdapterSerializerDeserializerTest.java | 24 +- .../gson/functional/JsonParserTest.java | 18 +- .../google/gson/functional/JsonTreeTest.java | 16 +- .../google/gson/functional/LeniencyTest.java | 4 +- .../functional/MapAsArrayTypeAdapterTest.java | 29 +- .../com/google/gson/functional/MapTest.java | 230 ++++---- .../MoreSpecificTypeSerializationTest.java | 34 +- .../gson/functional/NamingPolicyTest.java | 62 +-- .../functional/NullObjectAndFieldTest.java | 64 ++- .../google/gson/functional/ObjectTest.java | 230 ++++---- .../functional/ParameterizedTypesTest.java | 73 ++- .../gson/functional/PrettyPrintingTest.java | 19 +- .../functional/PrimitiveCharacterTest.java | 14 +- .../google/gson/functional/PrimitiveTest.java | 357 ++++++------ .../gson/functional/PrintFormattingTest.java | 13 +- .../gson/functional/RawSerializationTest.java | 18 +- .../gson/functional/ReadersWritersTest.java | 35 +- .../ReflectionAccessFilterTest.java | 114 ++-- .../gson/functional/ReflectionAccessTest.java | 20 +- .../ReusedTypeVariablesFullyResolveTest.java | 14 +- ...ntimeTypeAdapterFactoryFunctionalTest.java | 12 +- .../google/gson/functional/SecurityTest.java | 15 +- .../gson/functional/SerializedNameTest.java | 14 +- .../functional/StreamingTypeAdaptersTest.java | 68 +-- .../google/gson/functional/StringTest.java | 68 +-- .../ToNumberPolicyFunctionalTest.java | 61 +-- .../gson/functional/TreeTypeAdaptersTest.java | 15 +- .../functional/TypeAdapterPrecedenceTest.java | 34 +- .../TypeAdapterRuntimeTypeWrapperTest.java | 16 +- .../functional/TypeHierarchyAdapterTest.java | 28 +- .../gson/functional/TypeVariableTest.java | 18 +- .../gson/functional/UncategorizedTest.java | 22 +- .../gson/functional/VersioningTest.java | 61 +-- .../internal/ConstructorConstructorTest.java | 18 +- .../gson/internal/GsonBuildConfigTest.java | 4 +- .../google/gson/internal/GsonTypesTest.java | 13 +- .../google/gson/internal/JavaVersionTest.java | 39 +- .../gson/internal/LazilyParsedNumberTest.java | 9 +- .../gson/internal/LinkedTreeMapTest.java | 78 ++- .../com/google/gson/internal/StreamsTest.java | 6 +- .../UnsafeAllocatorInstantiationTest.java | 9 +- .../bind/DefaultDateTypeAdapterTest.java | 27 +- ...ava17ReflectiveTypeAdapterFactoryTest.java | 9 +- .../internal/bind/JsonElementReaderTest.java | 99 ++-- .../internal/bind/JsonTreeReaderTest.java | 38 +- .../internal/bind/JsonTreeWriterTest.java | 28 +- .../bind/RecursiveTypesResolveTest.java | 29 +- .../internal/bind/util/ISO8601UtilsTest.java | 16 +- .../reflect/Java17ReflectionHelperTest.java | 21 +- .../gson/internal/sql/SqlTypesGsonTest.java | 18 +- .../internal/sql/SqlTypesSupportTest.java | 15 +- .../google/gson/metrics/PerformanceTest.java | 9 +- .../google/gson/reflect/TypeTokenTest.java | 100 ++-- .../regression/JsonAdapterNullSafeTest.java | 8 +- .../com/google/gson/regression/OSGiTest.java | 6 +- .../gson/stream/JsonReaderPathTest.java | 362 ++++++------ .../google/gson/stream/JsonReaderTest.java | 513 +++++++++--------- .../google/gson/stream/JsonWriterTest.java | 118 ++-- 87 files changed, 2322 insertions(+), 2489 deletions(-) diff --git a/gson/src/test/java/com/google/gson/JsonArrayAsListTest.java b/gson/src/test/java/com/google/gson/JsonArrayAsListTest.java index 8c061204..0fb17b56 100644 --- a/gson/src/test/java/com/google/gson/JsonArrayAsListTest.java +++ b/gson/src/test/java/com/google/gson/JsonArrayAsListTest.java @@ -202,9 +202,9 @@ public class JsonArrayAsListTest { a.add(1); List list = a.asList(); - assertThat(list.contains(new JsonPrimitive(1))).isTrue(); - assertThat(list.contains(new JsonPrimitive(2))).isFalse(); - assertThat(list.contains(null)).isFalse(); + assertThat(list).contains(new JsonPrimitive(1)); + assertThat(list).doesNotContain(new JsonPrimitive(2)); + assertThat(list).doesNotContain(null); @SuppressWarnings({"unlikely-arg-type", "CollectionIncompatibleType"}) boolean containsInt = list.contains(1); // should only contain JsonPrimitive(1) diff --git a/gson/src/test/java/com/google/gson/JsonArrayTest.java b/gson/src/test/java/com/google/gson/JsonArrayTest.java index c1103bec..21deb729 100644 --- a/gson/src/test/java/com/google/gson/JsonArrayTest.java +++ b/gson/src/test/java/com/google/gson/JsonArrayTest.java @@ -67,12 +67,12 @@ public final class JsonArrayTest { JsonPrimitive a = new JsonPrimitive("a"); array.add(a); assertThat(array.remove(a)).isTrue(); - assertThat(array.contains(a)).isFalse(); + assertThat(array).doesNotContain(a); array.add(a); array.add(new JsonPrimitive("b")); assertThat(array.remove(1).getAsString()).isEqualTo("b"); assertThat(array).hasSize(1); - assertThat(array.contains(a)).isTrue(); + assertThat(array).contains(a); } @Test diff --git a/gson/src/test/java/com/google/gson/JsonObjectTest.java b/gson/src/test/java/com/google/gson/JsonObjectTest.java index d26afc4b..d0da6abb 100644 --- a/gson/src/test/java/com/google/gson/JsonObjectTest.java +++ b/gson/src/test/java/com/google/gson/JsonObjectTest.java @@ -255,8 +255,7 @@ public class JsonObjectTest { assertThat(a.size()).isEqualTo(2); assertThat(a.keySet()).hasSize(2); - assertThat(a.keySet().contains("foo")).isTrue(); - assertThat(a.keySet().contains("bar")).isTrue(); + assertThat(a.keySet()).containsExactly("foo", "bar").inOrder(); a.addProperty("1", true); a.addProperty("2", false); diff --git a/gson/src/test/java/com/google/gson/functional/ArrayTest.java b/gson/src/test/java/com/google/gson/functional/ArrayTest.java index e1a8c02e..b88eda57 100644 --- a/gson/src/test/java/com/google/gson/functional/ArrayTest.java +++ b/gson/src/test/java/com/google/gson/functional/ArrayTest.java @@ -16,10 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.Gson; @@ -31,6 +28,7 @@ import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import org.junit.Before; import org.junit.Test; @@ -51,14 +49,14 @@ public class ArrayTest { @Test public void testTopLevelArrayOfIntsSerialization() { int[] target = {1, 2, 3, 4, 5, 6, 7, 8, 9}; - assertEquals("[1,2,3,4,5,6,7,8,9]", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("[1,2,3,4,5,6,7,8,9]"); } @Test public void testTopLevelArrayOfIntsDeserialization() { int[] expected = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int[] actual = gson.fromJson("[1,2,3,4,5,6,7,8,9]", int[].class); - assertArrayEquals(expected, actual); + assertThat(actual).isEqualTo(expected); } @Test @@ -74,19 +72,19 @@ public class ArrayTest { @Test public void testEmptyArraySerialization() { int[] target = {}; - assertEquals("[]", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("[]"); } @Test public void testEmptyArrayDeserialization() { int[] actualObject = gson.fromJson("[]", int[].class); - assertTrue(actualObject.length == 0); + assertThat(actualObject).hasLength(0); Integer[] actualObject2 = gson.fromJson("[]", Integer[].class); - assertTrue(actualObject2.length == 0); + assertThat(actualObject2).hasLength(0); actualObject = gson.fromJson("[ ]", int[].class); - assertTrue(actualObject.length == 0); + assertThat(actualObject).hasLength(0); } @Test @@ -94,7 +92,7 @@ public class ArrayTest { String[] array = {"foo", null, "bar"}; String expected = "[\"foo\",null,\"bar\"]"; String json = gson.toJson(array); - assertEquals(expected, json); + assertThat(json).isEqualTo(expected); } @Test @@ -102,9 +100,7 @@ public class ArrayTest { String json = "[\"foo\",null,\"bar\"]"; String[] expected = {"foo", null, "bar"}; String[] target = gson.fromJson(json, expected.getClass()); - for (int i = 0; i < expected.length; ++i) { - assertEquals(expected[i], target[i]); - } + assertThat(target).asList().containsAnyIn(expected); } @Test @@ -112,13 +108,13 @@ public class ArrayTest { BagOfPrimitives[] array = new BagOfPrimitives[1]; array[0] = null; String json = gson.toJson(array); - assertEquals("[null]", json); + assertThat(json).isEqualTo("[null]"); } @Test public void testSingleNullInArrayDeserialization() { BagOfPrimitives[] array = gson.fromJson("[null]", BagOfPrimitives[].class); - assertNull(array[0]); + assertThat(array).asList().containsExactly((Object) null); } @Test @@ -127,40 +123,38 @@ public class ArrayTest { String[] array = {"foo", null, "bar"}; String expected = "[\"foo\",null,\"bar\"]"; String json = gson.toJson(array); - assertEquals(expected, json); + assertThat(json).isEqualTo(expected); } @Test public void testArrayOfStringsSerialization() { String[] target = {"Hello", "World"}; - assertEquals("[\"Hello\",\"World\"]", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("[\"Hello\",\"World\"]"); } @Test public void testArrayOfStringsDeserialization() { String json = "[\"Hello\",\"World\"]"; String[] target = gson.fromJson(json, String[].class); - assertEquals("Hello", target[0]); - assertEquals("World", target[1]); + assertThat(target).asList().containsExactly("Hello", "World"); } @Test - public void testSingleStringArraySerialization() throws Exception { + public void testSingleStringArraySerialization() { String[] s = { "hello" }; String output = gson.toJson(s); - assertEquals("[\"hello\"]", output); + assertThat(output).isEqualTo("[\"hello\"]"); } @Test - public void testSingleStringArrayDeserialization() throws Exception { + public void testSingleStringArrayDeserialization() { String json = "[\"hello\"]"; String[] arrayType = gson.fromJson(json, String[].class); - assertEquals(1, arrayType.length); - assertEquals("hello", arrayType[0]); + assertThat(arrayType).asList().containsExactly("hello"); } @Test - public void testArrayOfCollectionSerialization() throws Exception { + public void testArrayOfCollectionSerialization() { StringBuilder sb = new StringBuilder("["); int arraySize = 3; @@ -182,42 +176,42 @@ public class ArrayTest { sb.append(']'); String json = gson.toJson(arrayOfCollection, typeToSerialize); - assertEquals(sb.toString(), json); + assertThat(json).isEqualTo(sb.toString()); } @Test - public void testArrayOfCollectionDeserialization() throws Exception { + public void testArrayOfCollectionDeserialization() { String json = "[[1,2],[3,4]]"; Type type = new TypeToken[]>() {}.getType(); Collection[] target = gson.fromJson(json, type); - assertEquals(2, target.length); - assertArrayEquals(new Integer[] {1, 2}, target[0].toArray(new Integer[0])); - assertArrayEquals(new Integer[] {3, 4}, target[1].toArray(new Integer[0])); + assertThat(target.length).isEqualTo(2); + assertThat(target[0].toArray(new Integer[0])).isEqualTo(new Integer[] {1, 2}); + assertThat(target[1].toArray(new Integer[0])).isEqualTo(new Integer[] {3, 4}); } @Test - public void testArrayOfPrimitivesAsObjectsSerialization() throws Exception { + public void testArrayOfPrimitivesAsObjectsSerialization() { Object[] objs = new Object[] {1, "abc", 0.3f, 5L}; String json = gson.toJson(objs); - assertTrue(json.contains("abc")); - assertTrue(json.contains("0.3")); - assertTrue(json.contains("5")); + assertThat(json).contains("abc"); + assertThat(json).contains("0.3"); + assertThat(json).contains("5"); } @Test - public void testArrayOfPrimitivesAsObjectsDeserialization() throws Exception { + public void testArrayOfPrimitivesAsObjectsDeserialization() { String json = "[1,'abc',0.3,1.1,5]"; Object[] objs = gson.fromJson(json, Object[].class); - assertEquals(1, ((Number)objs[0]).intValue()); - assertEquals("abc", objs[1]); - assertEquals(0.3, ((Number)objs[2]).doubleValue(), 0); - assertEquals(new BigDecimal("1.1"), new BigDecimal(objs[3].toString())); - assertEquals(5, ((Number)objs[4]).shortValue()); + assertThat(((Number)objs[0]).intValue()).isEqualTo(1); + assertThat(objs[1]).isEqualTo("abc"); + assertThat(((Number)objs[2]).doubleValue()).isEqualTo(0.3); + assertThat(new BigDecimal(objs[3].toString())).isEqualTo(new BigDecimal("1.1")); + assertThat(((Number)objs[4]).shortValue()).isEqualTo(5); } @Test - public void testObjectArrayWithNonPrimitivesSerialization() throws Exception { + public void testObjectArrayWithNonPrimitivesSerialization() { ClassWithObjects classWithObjects = new ClassWithObjects(); BagOfPrimitives bagOfPrimitives = new BagOfPrimitives(); String classWithObjectsJson = gson.toJson(classWithObjects); @@ -226,21 +220,21 @@ public class ArrayTest { Object[] objects = {classWithObjects, bagOfPrimitives}; String json = gson.toJson(objects); - assertTrue(json.contains(classWithObjectsJson)); - assertTrue(json.contains(bagOfPrimitivesJson)); + assertThat(json).contains(classWithObjectsJson); + assertThat(json).contains(bagOfPrimitivesJson); } @Test public void testArrayOfNullSerialization() { Object[] array = {null}; String json = gson.toJson(array); - assertEquals("[null]", json); + assertThat(json).isEqualTo("[null]"); } @Test public void testArrayOfNullDeserialization() { String[] values = gson.fromJson("[null]", String[].class); - assertNull(values[0]); + assertThat(values[0]).isNull(); } /** @@ -253,20 +247,20 @@ public class ArrayTest { {"Alcoa Inc", "29.01", "0.42", "1.47", "4/1 12:00am", "Manufacturing"} }; String json = gson.toJson(items); - assertTrue(json.contains("[[\"3m Co")); - assertTrue(json.contains("Manufacturing\"]]")); + assertThat(json).contains("[[\"3m Co"); + assertThat(json).contains("Manufacturing\"]]"); } @Test public void testMultidimensionalObjectArraysSerialization() { Object[][] array = {new Object[] { 1, 2 }}; - assertEquals("[[1,2]]", gson.toJson(array)); + assertThat(gson.toJson(array)).isEqualTo("[[1,2]]"); } @Test public void testMultidimensionalPrimitiveArraysSerialization() { int[][] array = {{1, 2}, {3, 4}}; - assertEquals("[[1,2],[3,4]]", gson.toJson(array)); + assertThat(gson.toJson(array)).isEqualTo("[[1,2],[3,4]]"); } /** @@ -275,7 +269,7 @@ public class ArrayTest { @Test public void testMixingTypesInObjectArraySerialization() { Object[] array = {1, 2, new Object[] {"one", "two", 3}}; - assertEquals("[1,2,[\"one\",\"two\",3]]", gson.toJson(array)); + assertThat(gson.toJson(array)).isEqualTo("[1,2,[\"one\",\"two\",3]]"); } /** @@ -286,15 +280,15 @@ public class ArrayTest { String json = "[['3m Co','71.72','0.02','0.03','4/2 12:00am','Manufacturing']," + "['Alcoa Inc','29.01','0.42','1.47','4/1 12:00am','Manufacturing']]"; String[][] items = gson.fromJson(json, String[][].class); - assertEquals("3m Co", items[0][0]); - assertEquals("Manufacturing", items[1][5]); + assertThat(items[0][0]).isEqualTo("3m Co"); + assertThat(items[1][5]).isEqualTo("Manufacturing"); } @Test public void testMultidimensionalPrimitiveArraysDeserialization() { String json = "[[1,2],[3,4]]"; int[][] expected = {{1, 2}, {3, 4}}; - assertArrayEquals(expected, gson.fromJson(json, int[][].class)); + assertThat(gson.fromJson(json, int[][].class)).isEqualTo(expected); } /** http://code.google.com/p/google-gson/issues/detail?id=342 */ @@ -304,7 +298,6 @@ public class ArrayTest { new String[] {"test1", "test2"}, new String[] {"test3", "test4"} }; - assertEquals("[[\"test1\",\"test2\"],[\"test3\",\"test4\"]]", - new Gson().toJson(stringArrays)); + assertThat(new Gson().toJson(stringArrays)).isEqualTo("[[\"test1\",\"test2\"],[\"test3\",\"test4\"]]"); } } diff --git a/gson/src/test/java/com/google/gson/functional/CircularReferenceTest.java b/gson/src/test/java/com/google/gson/functional/CircularReferenceTest.java index 053d8b46..b98435f1 100644 --- a/gson/src/test/java/com/google/gson/functional/CircularReferenceTest.java +++ b/gson/src/test/java/com/google/gson/functional/CircularReferenceTest.java @@ -15,9 +15,7 @@ */ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.Gson; @@ -48,7 +46,7 @@ public class CircularReferenceTest { } @Test - public void testCircularSerialization() throws Exception { + public void testCircularSerialization() { ContainsReferenceToSelfType a = new ContainsReferenceToSelfType(); ContainsReferenceToSelfType b = new ContainsReferenceToSelfType(); a.children.add(b); @@ -61,16 +59,16 @@ public class CircularReferenceTest { } @Test - public void testSelfReferenceIgnoredInSerialization() throws Exception { + public void testSelfReferenceIgnoredInSerialization() { ClassOverridingEquals objA = new ClassOverridingEquals(); objA.ref = objA; String json = gson.toJson(objA); - assertFalse(json.contains("ref")); // self-reference is ignored + assertThat(json).doesNotContain("ref"); // self-reference is ignored } @Test - public void testSelfReferenceArrayFieldSerialization() throws Exception { + public void testSelfReferenceArrayFieldSerialization() { ClassWithSelfReferenceArray objA = new ClassWithSelfReferenceArray(); objA.children = new ClassWithSelfReferenceArray[]{objA}; @@ -82,7 +80,7 @@ public class CircularReferenceTest { } @Test - public void testSelfReferenceCustomHandlerSerialization() throws Exception { + public void testSelfReferenceCustomHandlerSerialization() { ClassWithSelfReference obj = new ClassWithSelfReference(); obj.child = obj; Gson gson = new GsonBuilder().registerTypeAdapter(ClassWithSelfReference.class, new JsonSerializer() { @@ -102,22 +100,22 @@ public class CircularReferenceTest { } @Test - public void testDirectedAcyclicGraphSerialization() throws Exception { + public void testDirectedAcyclicGraphSerialization() { ContainsReferenceToSelfType a = new ContainsReferenceToSelfType(); ContainsReferenceToSelfType b = new ContainsReferenceToSelfType(); ContainsReferenceToSelfType c = new ContainsReferenceToSelfType(); a.children.add(b); a.children.add(c); b.children.add(c); - assertNotNull(gson.toJson(a)); + assertThat(gson.toJson(a)).isNotNull(); } @Test - public void testDirectedAcyclicGraphDeserialization() throws Exception { + public void testDirectedAcyclicGraphDeserialization() { String json = "{\"children\":[{\"children\":[{\"children\":[]}]},{\"children\":[]}]}"; ContainsReferenceToSelfType target = gson.fromJson(json, ContainsReferenceToSelfType.class); - assertNotNull(target); - assertEquals(2, target.children.size()); + assertThat(target).isNotNull(); + assertThat(target.children).hasSize(2); } private static class ContainsReferenceToSelfType { diff --git a/gson/src/test/java/com/google/gson/functional/CollectionTest.java b/gson/src/test/java/com/google/gson/functional/CollectionTest.java index e40afe24..3507c94d 100644 --- a/gson/src/test/java/com/google/gson/functional/CollectionTest.java +++ b/gson/src/test/java/com/google/gson/functional/CollectionTest.java @@ -16,10 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -65,7 +62,7 @@ public class CollectionTest { Collection target = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); Type targetType = new TypeToken>() {}.getType(); String json = gson.toJson(target, targetType); - assertEquals("[1,2,3,4,5,6,7,8,9]", json); + assertThat(json).isEqualTo("[1,2,3,4,5,6,7,8,9]"); } @Test @@ -74,11 +71,11 @@ public class CollectionTest { Type collectionType = new TypeToken>() { }.getType(); Collection target = gson.fromJson(json, collectionType); int[] expected = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; - assertArrayEquals(expected, toIntArray(target)); + assertThat(toIntArray(target)).isEqualTo(expected); } @Test - public void testTopLevelListOfIntegerCollectionsDeserialization() throws Exception { + public void testTopLevelListOfIntegerCollectionsDeserialization() { String json = "[[1,2,3],[4,5,6],[7,8,9]]"; Type collectionType = new TypeToken>>() {}.getType(); List> target = gson.fromJson(json, collectionType); @@ -91,7 +88,7 @@ public class CollectionTest { } for (int i = 0; i < 3; i++) { - assertArrayEquals(expected[i], toIntArray(target.get(i))); + assertThat(toIntArray(target.get(i))).isEqualTo(expected[i]); } } @@ -102,8 +99,8 @@ public class CollectionTest { list.add("a2"); Type linkedListType = new TypeToken>() {}.getType(); String json = gson.toJson(list, linkedListType); - assertTrue(json.contains("a1")); - assertTrue(json.contains("a2")); + assertThat(json).contains("a1"); + assertThat(json).contains("a2"); } @Test @@ -111,8 +108,8 @@ public class CollectionTest { String json = "['a1','a2']"; Type linkedListType = new TypeToken>() {}.getType(); List list = gson.fromJson(json, linkedListType); - assertEquals("a1", list.get(0)); - assertEquals("a2", list.get(1)); + assertThat(list.get(0)).isEqualTo("a1"); + assertThat(list.get(1)).isEqualTo("a2"); } @Test @@ -122,8 +119,8 @@ public class CollectionTest { queue.add("a2"); Type queueType = new TypeToken>() {}.getType(); String json = gson.toJson(queue, queueType); - assertTrue(json.contains("a1")); - assertTrue(json.contains("a2")); + assertThat(json).contains("a1"); + assertThat(json).contains("a2"); } @Test @@ -131,45 +128,45 @@ public class CollectionTest { String json = "['a1','a2']"; Type queueType = new TypeToken>() {}.getType(); Queue queue = gson.fromJson(json, queueType); - assertEquals("a1", queue.element()); + assertThat(queue.element()).isEqualTo("a1"); queue.remove(); - assertEquals("a2", queue.element()); + assertThat(queue.element()).isEqualTo("a2"); } @Test - public void testPriorityQueue() throws Exception { + public void testPriorityQueue() { Type type = new TypeToken>(){}.getType(); PriorityQueue queue = gson.fromJson("[10, 20, 22]", type); - assertEquals(3, queue.size()); + assertThat(queue.size()).isEqualTo(3); String json = gson.toJson(queue); - assertEquals(10, queue.remove().intValue()); - assertEquals(20, queue.remove().intValue()); - assertEquals(22, queue.remove().intValue()); - assertEquals("[10,20,22]", json); + assertThat(queue.remove()).isEqualTo(10); + assertThat(queue.remove()).isEqualTo(20); + assertThat(queue.remove()).isEqualTo(22); + assertThat(json).isEqualTo("[10,20,22]"); } @Test public void testVector() { Type type = new TypeToken>(){}.getType(); Vector target = gson.fromJson("[10, 20, 31]", type); - assertEquals(3, target.size()); - assertEquals(10, target.get(0).intValue()); - assertEquals(20, target.get(1).intValue()); - assertEquals(31, target.get(2).intValue()); + assertThat(target.size()).isEqualTo(3); + assertThat(target.get(0)).isEqualTo(10); + assertThat(target.get(1)).isEqualTo(20); + assertThat(target.get(2)).isEqualTo(31); String json = gson.toJson(target); - assertEquals("[10,20,31]", json); + assertThat(json).isEqualTo("[10,20,31]"); } @Test public void testStack() { Type type = new TypeToken>(){}.getType(); Stack target = gson.fromJson("[11, 13, 17]", type); - assertEquals(3, target.size()); + assertThat(target.size()).isEqualTo(3); String json = gson.toJson(target); - assertEquals(17, target.pop().intValue()); - assertEquals(13, target.pop().intValue()); - assertEquals(11, target.pop().intValue()); - assertEquals("[11,13,17]", json); + assertThat(target.pop()).isEqualTo(17); + assertThat(target.pop()).isEqualTo(13); + assertThat(target.pop()).isEqualTo(11); + assertThat(json).isEqualTo("[11,13,17]"); } @Test @@ -181,7 +178,7 @@ public class CollectionTest { String expected = "[\"foo\",null,\"bar\"]"; Type typeOfList = new TypeToken>() {}.getType(); String json = gson.toJson(list, typeOfList); - assertEquals(expected, json); + assertThat(json).isEqualTo(expected); } @Test @@ -194,7 +191,7 @@ public class CollectionTest { Type expectedType = new TypeToken>() {}.getType(); List target = gson.fromJson(json, expectedType); for (int i = 0; i < expected.size(); ++i) { - assertEquals(expected.get(i), target.get(i)); + assertThat(target.get(i)).isEqualTo(expected.get(i)); } } @@ -203,10 +200,10 @@ public class CollectionTest { List target = new ArrayList<>(); target.add("Hello"); target.add("World"); - assertEquals("[\"Hello\",\"World\"]", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("[\"Hello\",\"World\"]"); Type type = new TypeToken>() {}.getType(); - assertEquals("[\"Hello\",\"World\"]", gson.toJson(target, type)); + assertThat(gson.toJson(target, type)).isEqualTo("[\"Hello\",\"World\"]"); } @Test @@ -215,10 +212,10 @@ public class CollectionTest { target.add("Hello"); target.add(null); target.add("World"); - assertEquals("[\"Hello\",null,\"World\"]", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("[\"Hello\",null,\"World\"]"); Type type = new TypeToken>() {}.getType(); - assertEquals("[\"Hello\",null,\"World\"]", gson.toJson(target, type)); + assertThat(gson.toJson(target, type)).isEqualTo("[\"Hello\",null,\"World\"]"); } @Test @@ -226,7 +223,7 @@ public class CollectionTest { List target = new ArrayList<>(); target.add("Hello"); target.add("World"); - assertEquals("[\"Hello\",\"World\"]", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("[\"Hello\",\"World\"]"); } @Test @@ -238,10 +235,10 @@ public class CollectionTest { target.add(objB); String result = gson.toJson(target); - assertTrue(result.startsWith("[")); - assertTrue(result.endsWith("]")); + assertThat(result.startsWith("[")).isTrue(); + assertThat(result.endsWith("]")).isTrue(); for (BagOfPrimitives obj : target) { - assertTrue(result.contains(obj.getExpectedJson())); + assertThat(result).contains(obj.getExpectedJson()); } } @@ -251,14 +248,13 @@ public class CollectionTest { Type collectionType = new TypeToken>() { }.getType(); Collection target = gson.fromJson(json, collectionType); - assertTrue(target.contains("Hello")); - assertTrue(target.contains("World")); + assertThat(target).containsExactly("Hello", "World").inOrder(); } @Test public void testRawCollectionOfIntegersSerialization() { Collection target = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); - assertEquals("[1,2,3,4,5,6,7,8,9]", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("[1,2,3,4,5,6,7,8,9]"); } @Test @@ -266,7 +262,7 @@ public class CollectionTest { BagOfPrimitives bag1 = new BagOfPrimitives(); Collection target = Arrays.asList(bag1, bag1, "test"); String json = gson.toJson(target); - assertTrue(json.contains(bag1.getExpectedJson())); + assertThat(json).contains(bag1.getExpectedJson()); } @Test @@ -274,12 +270,11 @@ public class CollectionTest { String json = "[0,1,2,3,4,5,6,7,8,9]"; Collection integers = gson.fromJson(json, Collection.class); // JsonReader converts numbers to double by default so we need a floating point comparison - assertEquals(Arrays.asList(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0), integers); + assertThat(integers).isEqualTo(Arrays.asList(0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0)); json = "[\"Hello\", \"World\"]"; Collection strings = gson.fromJson(json, Collection.class); - assertTrue(strings.contains("Hello")); - assertTrue(strings.contains("World")); + assertThat(strings).containsExactly("Hello", "World").inOrder(); } @Test @@ -287,40 +282,40 @@ public class CollectionTest { BagOfPrimitives bag = new BagOfPrimitives(10, 20, false, "stringValue"); String json = '[' + bag.getExpectedJson() + ',' + bag.getExpectedJson() + ']'; Collection target = gson.fromJson(json, Collection.class); - assertEquals(2, target.size()); + assertThat(target.size()).isEqualTo(2); for (Object bag1 : target) { // Gson 2.0 converts raw objects into maps @SuppressWarnings("unchecked") Map values = (Map) bag1; - assertTrue(values.containsValue(10.0)); - assertTrue(values.containsValue(20.0)); - assertTrue(values.containsValue("stringValue")); + assertThat(values.containsValue(10.0)).isTrue(); + assertThat(values.containsValue(20.0)).isTrue(); + assertThat(values.containsValue("stringValue")).isTrue(); } } @Test - public void testWildcardPrimitiveCollectionSerilaization() throws Exception { + public void testWildcardPrimitiveCollectionSerilaization() { Collection target = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); Type collectionType = new TypeToken>() { }.getType(); String json = gson.toJson(target, collectionType); - assertEquals("[1,2,3,4,5,6,7,8,9]", json); + assertThat(json).isEqualTo("[1,2,3,4,5,6,7,8,9]"); json = gson.toJson(target); - assertEquals("[1,2,3,4,5,6,7,8,9]", json); + assertThat(json).isEqualTo("[1,2,3,4,5,6,7,8,9]"); } @Test - public void testWildcardPrimitiveCollectionDeserilaization() throws Exception { + public void testWildcardPrimitiveCollectionDeserilaization() { String json = "[1,2,3,4,5,6,7,8,9]"; Type collectionType = new TypeToken>() { }.getType(); Collection target = gson.fromJson(json, collectionType); - assertEquals(9, target.size()); - assertTrue(target.contains(1)); - assertTrue(target.contains(9)); + assertThat(target.size()).isEqualTo(9); + assertThat(target).contains(1); + assertThat(target).contains(2); } @Test - public void testWildcardCollectionField() throws Exception { + public void testWildcardCollectionField() { Collection collection = new ArrayList<>(); BagOfPrimitives objA = new BagOfPrimitives(3L, 1, true, "blah"); BagOfPrimitives objB = new BagOfPrimitives(2L, 6, false, "blahB"); @@ -329,14 +324,14 @@ public class CollectionTest { ObjectWithWildcardCollection target = new ObjectWithWildcardCollection(collection); String json = gson.toJson(target); - assertTrue(json.contains(objA.getExpectedJson())); - assertTrue(json.contains(objB.getExpectedJson())); + assertThat(json).contains(objA.getExpectedJson()); + assertThat(json).contains(objB.getExpectedJson()); target = gson.fromJson(json, ObjectWithWildcardCollection.class); Collection deserializedCollection = target.getCollection(); - assertEquals(2, deserializedCollection.size()); - assertTrue(deserializedCollection.contains(objA)); - assertTrue(deserializedCollection.contains(objB)); + assertThat(deserializedCollection.size()).isEqualTo(2); + assertThat(deserializedCollection).contains(objA); + assertThat(deserializedCollection).contains(objB); } @Test @@ -345,9 +340,9 @@ public class CollectionTest { object.longs.add(1L); object.longs.add(3L); String json = gson.toJson(object, HasArrayListField.class); - assertEquals("{\"longs\":[1,3]}", json); + assertThat(json).isEqualTo("{\"longs\":[1,3]}"); HasArrayListField copy = gson.fromJson("{\"longs\":[1,3]}", HasArrayListField.class); - assertEquals(Arrays.asList(1L, 3L), copy.longs); + assertThat(copy.longs).isEqualTo(Arrays.asList(1L, 3L)); } @Test @@ -362,7 +357,7 @@ public class CollectionTest { Gson gson = new GsonBuilder() .registerTypeAdapter(listOfString, stringListSerializer) .create(); - assertEquals("\"ab;cd\"", gson.toJson(Arrays.asList("ab", "cd"), listOfString)); + assertThat(gson.toJson(Arrays.asList("ab", "cd"), listOfString)).isEqualTo("\"ab;cd\""); } static class HasArrayListField { @@ -375,7 +370,7 @@ public class CollectionTest { for (Iterator iterator = collection.iterator(); iterator.hasNext(); ++i) { Object obj = iterator.next(); if (obj instanceof Integer) { - ints[i] = ((Integer)obj).intValue(); + ints[i] = (Integer) obj; } else if (obj instanceof Long) { ints[i] = ((Long)obj).intValue(); } @@ -407,17 +402,17 @@ public class CollectionTest { set.add(new Entry(1)); set.add(new Entry(2)); String json = gson.toJson(set); - assertTrue(json.contains("1")); - assertTrue(json.contains("2")); + assertThat(json).contains("1"); + assertThat(json).contains("2"); } @Test public void testSetDeserialization() { String json = "[{value:1},{value:2}]"; Type type = new TypeToken>() {}.getType(); Set set = gson.fromJson(json, type); - assertEquals(2, set.size()); + assertThat(set.size()).isEqualTo(2); for (Entry entry : set) { - assertTrue(entry.value == 1 || entry.value == 2); + assertThat(entry.value).isAnyOf(1, 2); } } @@ -436,8 +431,8 @@ public class CollectionTest { "}"; BigClass bigClass = new Gson().fromJson(json, BigClass.class); SmallClass small = bigClass.inBig.get("key").get(0); - assertNotNull(small); - assertEquals("hello", small.inSmall); + assertThat(small).isNotNull(); + assertThat(small.inSmall).isEqualTo("hello"); } } diff --git a/gson/src/test/java/com/google/gson/functional/ConcurrencyTest.java b/gson/src/test/java/com/google/gson/functional/ConcurrencyTest.java index eeabcee1..151961d0 100644 --- a/gson/src/test/java/com/google/gson/functional/ConcurrencyTest.java +++ b/gson/src/test/java/com/google/gson/functional/ConcurrencyTest.java @@ -15,7 +15,7 @@ */ package com.google.gson.functional; -import static org.junit.Assert.assertFalse; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import java.util.concurrent.CountDownLatch; @@ -91,7 +91,7 @@ public class ConcurrencyTest { } startLatch.countDown(); finishedLatch.await(); - assertFalse(failed.get()); + assertThat(failed.get()).isFalse(); } /** @@ -122,7 +122,7 @@ public class ConcurrencyTest { } startLatch.countDown(); finishedLatch.await(); - assertFalse(failed.get()); + assertThat(failed.get()).isFalse(); } @SuppressWarnings("unused") diff --git a/gson/src/test/java/com/google/gson/functional/CustomDeserializerTest.java b/gson/src/test/java/com/google/gson/functional/CustomDeserializerTest.java index d5b07285..0ee5d860 100644 --- a/gson/src/test/java/com/google/gson/functional/CustomDeserializerTest.java +++ b/gson/src/test/java/com/google/gson/functional/CustomDeserializerTest.java @@ -16,8 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -50,21 +49,21 @@ public class CustomDeserializerTest { } @Test - public void testDefaultConstructorNotCalledOnObject() throws Exception { + public void testDefaultConstructorNotCalledOnObject() { DataHolder data = new DataHolder(DEFAULT_VALUE); String json = gson.toJson(data); DataHolder actual = gson.fromJson(json, DataHolder.class); - assertEquals(DEFAULT_VALUE + SUFFIX, actual.getData()); + assertThat(actual.getData()).isEqualTo(DEFAULT_VALUE + SUFFIX); } @Test - public void testDefaultConstructorNotCalledOnField() throws Exception { + public void testDefaultConstructorNotCalledOnField() { DataHolderWrapper dataWrapper = new DataHolderWrapper(new DataHolder(DEFAULT_VALUE)); String json = gson.toJson(dataWrapper); DataHolderWrapper actual = gson.fromJson(json, DataHolderWrapper.class); - assertEquals(DEFAULT_VALUE + SUFFIX, actual.getWrappedData().getData()); + assertThat(actual.getWrappedData().getData()).isEqualTo(DEFAULT_VALUE + SUFFIX); } private static class DataHolder { @@ -124,7 +123,7 @@ public class CustomDeserializerTest { } }).create(); SubType1 target = (SubType1) gson.fromJson(json, MyBase.class); - assertEquals("abc", target.field1); + assertThat(target.field1).isEqualTo("abc"); } private static class MyBase { @@ -164,7 +163,7 @@ public class CustomDeserializerTest { }).create(); String json = "{baseName:'Base',subName:'SubRevised'}"; Base target = gson.fromJson(json, Base.class); - assertNull(target); + assertThat(target).isNull(); } @Test @@ -179,7 +178,7 @@ public class CustomDeserializerTest { }).create(); String json = "{base:{baseName:'Base',subName:'SubRevised'}}"; ClassWithBaseField target = gson.fromJson(json, ClassWithBaseField.class); - assertNull(target.base); + assertThat(target.base).isNull(); } @Test @@ -194,8 +193,8 @@ public class CustomDeserializerTest { }).create(); String json = "[{baseName:'Base'},{baseName:'Base'}]"; Base[] target = gson.fromJson(json, Base[].class); - assertNull(target[0]); - assertNull(target[1]); + assertThat(target[0]).isNull(); + assertThat(target[1]).isNull(); } @Test @@ -210,8 +209,8 @@ public class CustomDeserializerTest { }).create(); String json = "{bases:[{baseName:'Base'},{baseName:'Base'}]}"; ClassWithBaseArray target = gson.fromJson(json, ClassWithBaseArray.class); - assertNull(target.bases[0]); - assertNull(target.bases[1]); + assertThat(target.bases[0]).isNull(); + assertThat(target.bases[1]).isNull(); } private static final class ClassWithBaseArray { diff --git a/gson/src/test/java/com/google/gson/functional/CustomSerializerTest.java b/gson/src/test/java/com/google/gson/functional/CustomSerializerTest.java index 3e450ac9..ce54b8d2 100644 --- a/gson/src/test/java/com/google/gson/functional/CustomSerializerTest.java +++ b/gson/src/test/java/com/google/gson/functional/CustomSerializerTest.java @@ -16,8 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -52,7 +51,7 @@ public class CustomSerializerTest { ClassWithBaseField target = new ClassWithBaseField(new Base()); JsonObject json = (JsonObject) gson.toJsonTree(target); JsonObject base = json.get("base").getAsJsonObject(); - assertEquals(BaseSerializer.NAME, base.get(Base.SERIALIZER_KEY).getAsString()); + assertThat(base.get(Base.SERIALIZER_KEY).getAsString()).isEqualTo(BaseSerializer.NAME); } @Test @@ -64,7 +63,7 @@ public class CustomSerializerTest { ClassWithBaseField target = new ClassWithBaseField(new Sub()); JsonObject json = (JsonObject) gson.toJsonTree(target); JsonObject base = json.get("base").getAsJsonObject(); - assertEquals(SubSerializer.NAME, base.get(Base.SERIALIZER_KEY).getAsString()); + assertThat(base.get(Base.SERIALIZER_KEY).getAsString()).isEqualTo(SubSerializer.NAME); } @Test @@ -78,7 +77,7 @@ public class CustomSerializerTest { JsonArray array = json.get("base").getAsJsonArray(); for (JsonElement element : array) { JsonElement serializerKey = element.getAsJsonObject().get(Base.SERIALIZER_KEY); - assertEquals(SubSerializer.NAME, serializerKey.getAsString()); + assertThat(serializerKey.getAsString()).isEqualTo(SubSerializer.NAME); } } @@ -90,7 +89,7 @@ public class CustomSerializerTest { ClassWithBaseField target = new ClassWithBaseField(new Sub()); JsonObject json = (JsonObject) gson.toJsonTree(target); JsonObject base = json.get("base").getAsJsonObject(); - assertEquals(BaseSerializer.NAME, base.get(Base.SERIALIZER_KEY).getAsString()); + assertThat(base.get(Base.SERIALIZER_KEY).getAsString()).isEqualTo(BaseSerializer.NAME); } @Test @@ -103,6 +102,6 @@ public class CustomSerializerTest { }) .create(); JsonElement json = gson.toJsonTree(new Base()); - assertTrue(json.isJsonNull()); + assertThat(json.isJsonNull()).isTrue(); } } diff --git a/gson/src/test/java/com/google/gson/functional/CustomTypeAdaptersTest.java b/gson/src/test/java/com/google/gson/functional/CustomTypeAdaptersTest.java index 3881f096..3c59cb81 100644 --- a/gson/src/test/java/com/google/gson/functional/CustomTypeAdaptersTest.java +++ b/gson/src/test/java/com/google/gson/functional/CustomTypeAdaptersTest.java @@ -15,10 +15,7 @@ */ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -71,7 +68,7 @@ public class CustomTypeAdaptersTest { } }).create(); ClassWithCustomTypeConverter target = new ClassWithCustomTypeConverter(); - assertEquals("{\"bag\":5,\"value\":25}", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("{\"bag\":5,\"value\":25}"); } @Test @@ -88,7 +85,7 @@ public class CustomTypeAdaptersTest { }).create(); String json = "{\"bag\":5,\"value\":25}"; ClassWithCustomTypeConverter target = gson.fromJson(json, ClassWithCustomTypeConverter.class); - assertEquals(5, target.getBag().getIntValue()); + assertThat(target.getBag().getIntValue()).isEqualTo(5); } @Test @@ -100,7 +97,7 @@ public class CustomTypeAdaptersTest { String jsonFromCustomSerializer = gson.toJson(newFooObject); String jsonFromGson = basicGson.toJson(newFooObject); - assertEquals(jsonFromGson, jsonFromCustomSerializer); + assertThat(jsonFromCustomSerializer).isEqualTo(jsonFromGson); } @Test @@ -112,8 +109,8 @@ public class CustomTypeAdaptersTest { String json = basicGson.toJson(expectedFoo); Foo newFooObject = gson.fromJson(json, Foo.class); - assertEquals(expectedFoo.key, newFooObject.key); - assertEquals(expectedFoo.value, newFooObject.value); + assertThat(newFooObject.key).isEqualTo(expectedFoo.key); + assertThat(newFooObject.value).isEqualTo(expectedFoo.value); } @Test @@ -126,7 +123,7 @@ public class CustomTypeAdaptersTest { } }).create(); ClassWithCustomTypeConverter target = new ClassWithCustomTypeConverter(); - assertEquals("{\"bag\":6,\"value\":10}", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("{\"bag\":6,\"value\":10}"); } @Test @@ -141,7 +138,7 @@ public class CustomTypeAdaptersTest { }).create(); String json = "{\"bag\":7,\"value\":25}"; ClassWithCustomTypeConverter target = gson.fromJson(json, ClassWithCustomTypeConverter.class); - assertEquals(7, target.getBag().getIntValue()); + assertThat(target.getBag().getIntValue()).isEqualTo(7); } @Test @@ -156,10 +153,10 @@ public class CustomTypeAdaptersTest { }).create(); Base b = new Base(); String json = gson.toJson(b); - assertTrue(json.contains("value")); + assertThat(json).contains("value"); b = new Derived(); json = gson.toJson(b); - assertTrue(json.contains("derivedValue")); + assertThat(json).contains("derivedValue"); } @Test @@ -174,11 +171,11 @@ public class CustomTypeAdaptersTest { }).create(); Base b = new Base(); String json = gson.toJson(b); - assertTrue(json.contains("value")); + assertThat(json).contains("value"); b = new Derived(); json = gson.toJson(b, Base.class); - assertTrue(json.contains("value")); - assertFalse(json.contains("derivedValue")); + assertThat(json).contains("value"); + assertThat(json).doesNotContain("derivedValue"); } private static class Base { @@ -231,8 +228,8 @@ public class CustomTypeAdaptersTest { } }) .create(); - assertEquals("1", gson.toJson(true, boolean.class)); - assertEquals("true", gson.toJson(true, Boolean.class)); + assertThat(gson.toJson(true, boolean.class)).isEqualTo("1"); + assertThat(gson.toJson(true, Boolean.class)).isEqualTo("true"); } @Test @@ -245,8 +242,8 @@ public class CustomTypeAdaptersTest { } }) .create(); - assertEquals(Boolean.TRUE, gson.fromJson("1", boolean.class)); - assertEquals(Boolean.TRUE, gson.fromJson("true", Boolean.class)); + assertThat(gson.fromJson("1", boolean.class)).isEqualTo(Boolean.TRUE); + assertThat(gson.fromJson("true", Boolean.class)).isEqualTo(Boolean.TRUE); } @Test @@ -263,7 +260,7 @@ public class CustomTypeAdaptersTest { }).create(); byte[] data = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; String json = gson.toJson(data); - assertEquals("\"0123456789\"", json); + assertThat(json).isEqualTo("\"0123456789\""); } @Test @@ -285,7 +282,7 @@ public class CustomTypeAdaptersTest { byte[] actual = gson.fromJson(json, byte[].class); byte[] expected = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; for (int i = 0; i < actual.length; ++i) { - assertEquals(expected[i], actual[i]); + assertThat(actual[i]).isEqualTo(expected[i]); } } @@ -335,7 +332,7 @@ public class CustomTypeAdaptersTest { Set setOfHolders = new HashSet<>(); setOfHolders.add(holder); String json = gson.toJson(setOfHolders, setType); - assertTrue(json.contains("Jacob:Tomaw")); + assertThat(json).contains("Jacob:Tomaw"); } // Test created from Issue 70 @@ -348,7 +345,7 @@ public class CustomTypeAdaptersTest { Set setOfHolders = new HashSet<>(); setOfHolders.add(holder); String json = gson.toJson(setOfHolders); - assertTrue(json.contains("Jacob:Tomaw")); + assertThat(json).contains("Jacob:Tomaw"); } // Test created from Issue 70 @@ -359,10 +356,10 @@ public class CustomTypeAdaptersTest { .create(); Type setType = new TypeToken>() {}.getType(); Set setOfHolders = gson.fromJson("['Jacob:Tomaw']", setType); - assertEquals(1, setOfHolders.size()); + assertThat(setOfHolders.size()).isEqualTo(1); StringHolder foo = setOfHolders.iterator().next(); - assertEquals("Jacob", foo.part1); - assertEquals("Tomaw", foo.part2); + assertThat(foo.part1).isEqualTo("Jacob"); + assertThat(foo.part2).isEqualTo("Tomaw"); } // Test created from Issue 70 @@ -376,7 +373,7 @@ public class CustomTypeAdaptersTest { Map mapOfHolders = new HashMap<>(); mapOfHolders.put("foo", holder); String json = gson.toJson(mapOfHolders, mapType); - assertTrue(json.contains("\"foo\":\"Jacob:Tomaw\"")); + assertThat(json).contains("\"foo\":\"Jacob:Tomaw\""); } // Test created from Issue 70 @@ -389,7 +386,7 @@ public class CustomTypeAdaptersTest { Map mapOfHolders = new HashMap<>(); mapOfHolders.put("foo", holder); String json = gson.toJson(mapOfHolders); - assertTrue(json.contains("\"foo\":\"Jacob:Tomaw\"")); + assertThat(json).contains("\"foo\":\"Jacob:Tomaw\""); } // Test created from Issue 70 @@ -400,10 +397,10 @@ public class CustomTypeAdaptersTest { .create(); Type mapType = new TypeToken>() {}.getType(); Map mapOfFoo = gson.fromJson("{'foo':'Jacob:Tomaw'}", mapType); - assertEquals(1, mapOfFoo.size()); + assertThat(mapOfFoo.size()).isEqualTo(1); StringHolder foo = mapOfFoo.get("foo"); - assertEquals("Jacob", foo.part1); - assertEquals("Tomaw", foo.part2); + assertThat(foo.part1).isEqualTo("Jacob"); + assertThat(foo.part2).isEqualTo("Tomaw"); } @Test @@ -413,7 +410,7 @@ public class CustomTypeAdaptersTest { .create(); DataHolderWrapper target = new DataHolderWrapper(new DataHolder("abc")); String json = gson.toJson(target); - assertEquals("{\"wrappedData\":{\"myData\":\"abc\"}}", json); + assertThat(json).isEqualTo("{\"wrappedData\":{\"myData\":\"abc\"}}"); } @Test @@ -423,7 +420,7 @@ public class CustomTypeAdaptersTest { .create(); String json = "{wrappedData:null}"; DataHolderWrapper actual = gson.fromJson(json, DataHolderWrapper.class); - assertNull(actual.wrappedData); + assertThat(actual.wrappedData).isNull(); } // Test created from Issue 352 @@ -432,10 +429,10 @@ public class CustomTypeAdaptersTest { Gson gson = new GsonBuilder() .registerTypeHierarchyAdapter(Date.class, new DateTypeAdapter()) .create(); - assertEquals("0", gson.toJson(new Date(0))); - assertEquals("0", gson.toJson(new java.sql.Date(0))); - assertEquals(new Date(0), gson.fromJson("0", Date.class)); - assertEquals(new java.sql.Date(0), gson.fromJson("0", java.sql.Date.class)); + assertThat(gson.toJson(new Date(0))).isEqualTo("0"); + assertThat(gson.toJson(new java.sql.Date(0))).isEqualTo("0"); + assertThat(gson.fromJson("0", Date.class)).isEqualTo(new Date(0)); + assertThat(gson.fromJson("0", java.sql.Date.class)).isEqualTo(new java.sql.Date(0)); } private static class DataHolder { diff --git a/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java b/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java index 623bc55c..33ebc682 100644 --- a/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java +++ b/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java @@ -15,9 +15,7 @@ */ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.Gson; @@ -85,7 +83,7 @@ public class DefaultTypeAdaptersTest { } @After - public void tearDown() throws Exception { + public void tearDown() { TimeZone.setDefault(oldTimeZone); Locale.setDefault(oldLocale); } @@ -99,7 +97,7 @@ public class DefaultTypeAdaptersTest { } // Override with a custom type adapter for class. gson = new GsonBuilder().registerTypeAdapter(Class.class, new MyClassTypeAdapter()).create(); - assertEquals("\"java.lang.String\"", gson.toJson(String.class)); + assertThat(gson.toJson(String.class)).isEqualTo("\"java.lang.String\""); } @Test @@ -111,14 +109,14 @@ public class DefaultTypeAdaptersTest { } // Override with a custom type adapter for class. gson = new GsonBuilder().registerTypeAdapter(Class.class, new MyClassTypeAdapter()).create(); - assertEquals(String.class, gson.fromJson("java.lang.String", Class.class)); + assertThat(gson.fromJson("java.lang.String", Class.class)).isAssignableTo(String.class); } @Test public void testUrlSerialization() throws Exception { String urlValue = "http://google.com/"; URL url = new URL(urlValue); - assertEquals("\"http://google.com/\"", gson.toJson(url)); + assertThat(gson.toJson(url)).isEqualTo("\"http://google.com/\""); } @Test @@ -126,23 +124,23 @@ public class DefaultTypeAdaptersTest { String urlValue = "http://google.com/"; String json = "'http:\\/\\/google.com\\/'"; URL target = gson.fromJson(json, URL.class); - assertEquals(urlValue, target.toExternalForm()); + assertThat(target.toExternalForm()).isEqualTo(urlValue); gson.fromJson('"' + urlValue + '"', URL.class); - assertEquals(urlValue, target.toExternalForm()); + assertThat(target.toExternalForm()).isEqualTo(urlValue); } @Test - public void testUrlNullSerialization() throws Exception { + public void testUrlNullSerialization() { ClassWithUrlField target = new ClassWithUrlField(); - assertEquals("{}", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("{}"); } @Test public void testUrlNullDeserialization() { String json = "{}"; ClassWithUrlField target = gson.fromJson(json, ClassWithUrlField.class); - assertNull(target.url); + assertThat(target.url).isNull(); } private static class ClassWithUrlField { @@ -153,7 +151,7 @@ public class DefaultTypeAdaptersTest { public void testUriSerialization() throws Exception { String uriValue = "http://google.com/"; URI uri = new URI(uriValue); - assertEquals("\"http://google.com/\"", gson.toJson(uri)); + assertThat(gson.toJson(uri)).isEqualTo("\"http://google.com/\""); } @Test @@ -161,11 +159,11 @@ public class DefaultTypeAdaptersTest { String uriValue = "http://google.com/"; String json = '"' + uriValue + '"'; URI target = gson.fromJson(json, URI.class); - assertEquals(uriValue, target.toASCIIString()); + assertThat(target.toASCIIString()).isEqualTo(uriValue); } @Test - public void testNullSerialization() throws Exception { + public void testNullSerialization() { testNullSerializationAndDeserialization(Boolean.class); testNullSerializationAndDeserialization(Byte.class); testNullSerializationAndDeserialization(Short.class); @@ -201,15 +199,15 @@ public class DefaultTypeAdaptersTest { } public static void testNullSerializationAndDeserialization(Gson gson, Class c) { - assertEquals("null", gson.toJson(null, c)); - assertEquals(null, gson.fromJson("null", c)); + assertThat(gson.toJson(null, c)).isEqualTo("null"); + assertThat(gson.fromJson("null", c)).isEqualTo(null); } @Test - public void testUuidSerialization() throws Exception { + public void testUuidSerialization() { String uuidValue = "c237bec1-19ef-4858-a98e-521cf0aad4c0"; UUID uuid = UUID.fromString(uuidValue); - assertEquals('"' + uuidValue + '"', gson.toJson(uuid)); + assertThat(gson.toJson(uuid)).isEqualTo('"' + uuidValue + '"'); } @Test @@ -217,49 +215,49 @@ public class DefaultTypeAdaptersTest { String uuidValue = "c237bec1-19ef-4858-a98e-521cf0aad4c0"; String json = '"' + uuidValue + '"'; UUID target = gson.fromJson(json, UUID.class); - assertEquals(uuidValue, target.toString()); + assertThat(target.toString()).isEqualTo(uuidValue); } @Test public void testLocaleSerializationWithLanguage() { Locale target = new Locale("en"); - assertEquals("\"en\"", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("\"en\""); } @Test public void testLocaleDeserializationWithLanguage() { String json = "\"en\""; Locale locale = gson.fromJson(json, Locale.class); - assertEquals("en", locale.getLanguage()); + assertThat(locale.getLanguage()).isEqualTo("en"); } @Test public void testLocaleSerializationWithLanguageCountry() { Locale target = Locale.CANADA_FRENCH; - assertEquals("\"fr_CA\"", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("\"fr_CA\""); } @Test public void testLocaleDeserializationWithLanguageCountry() { String json = "\"fr_CA\""; Locale locale = gson.fromJson(json, Locale.class); - assertEquals(Locale.CANADA_FRENCH, locale); + assertThat(locale).isEqualTo(Locale.CANADA_FRENCH); } @Test public void testLocaleSerializationWithLanguageCountryVariant() { Locale target = new Locale("de", "DE", "EURO"); String json = gson.toJson(target); - assertEquals("\"de_DE_EURO\"", json); + assertThat(json).isEqualTo("\"de_DE_EURO\""); } @Test public void testLocaleDeserializationWithLanguageCountryVariant() { String json = "\"de_DE_EURO\""; Locale locale = gson.fromJson(json, Locale.class); - assertEquals("de", locale.getLanguage()); - assertEquals("DE", locale.getCountry()); - assertEquals("EURO", locale.getVariant()); + assertThat(locale.getLanguage()).isEqualTo("de"); + assertThat(locale.getCountry()).isEqualTo("DE"); + assertThat(locale.getVariant()).isEqualTo("EURO"); } @Test @@ -267,7 +265,7 @@ public class DefaultTypeAdaptersTest { ClassWithBigDecimal target = new ClassWithBigDecimal("-122.01e-21"); String json = gson.toJson(target); String actual = json.substring(json.indexOf(':') + 1, json.indexOf('}')); - assertEquals(target.value, new BigDecimal(actual)); + assertThat(new BigDecimal(actual)).isEqualTo(target.value); } @Test @@ -275,7 +273,7 @@ public class DefaultTypeAdaptersTest { ClassWithBigDecimal expected = new ClassWithBigDecimal("-122.01e-21"); String json = expected.getExpectedJson(); ClassWithBigDecimal actual = gson.fromJson(json, ClassWithBigDecimal.class); - assertEquals(expected.value, actual.value); + assertThat(actual.value).isEqualTo(expected.value); } @Test @@ -290,7 +288,7 @@ public class DefaultTypeAdaptersTest { public void testBigIntegerFieldSerialization() { ClassWithBigInteger target = new ClassWithBigInteger("23232323215323234234324324324324324324"); String json = gson.toJson(target); - assertEquals(target.getExpectedJson(), json); + assertThat(json).isEqualTo(target.getExpectedJson()); } @Test @@ -298,7 +296,7 @@ public class DefaultTypeAdaptersTest { ClassWithBigInteger expected = new ClassWithBigInteger("879697697697697697697697697697697697"); String json = expected.getExpectedJson(); ClassWithBigInteger actual = gson.fromJson(json, ClassWithBigInteger.class); - assertEquals(expected.value, actual.value); + assertThat(actual.value).isEqualTo(expected.value); } @Test @@ -306,8 +304,8 @@ public class DefaultTypeAdaptersTest { gson = new GsonBuilder() .registerTypeAdapter(BigInteger.class, new NumberAsStringAdapter(BigInteger.class)) .create(); - assertEquals("\"123\"", gson.toJson(new BigInteger("123"), BigInteger.class)); - assertEquals(new BigInteger("123"), gson.fromJson("\"123\"", BigInteger.class)); + assertThat(gson.toJson(new BigInteger("123"), BigInteger.class)).isEqualTo("\"123\""); + assertThat(gson.fromJson("\"123\"", BigInteger.class)).isEqualTo(new BigInteger("123")); } @Test @@ -315,35 +313,35 @@ public class DefaultTypeAdaptersTest { gson = new GsonBuilder() .registerTypeAdapter(BigDecimal.class, new NumberAsStringAdapter(BigDecimal.class)) .create(); - assertEquals("\"1.1\"", gson.toJson(new BigDecimal("1.1"), BigDecimal.class)); - assertEquals(new BigDecimal("1.1"), gson.fromJson("\"1.1\"", BigDecimal.class)); + assertThat(gson.toJson(new BigDecimal("1.1"), BigDecimal.class)).isEqualTo("\"1.1\""); + assertThat(gson.fromJson("\"1.1\"", BigDecimal.class)).isEqualTo(new BigDecimal("1.1")); } @Test - public void testSetSerialization() throws Exception { + public void testSetSerialization() { Gson gson = new Gson(); HashSet s = new HashSet<>(); s.add("blah"); String json = gson.toJson(s); - assertEquals("[\"blah\"]", json); + assertThat(json).isEqualTo("[\"blah\"]"); json = gson.toJson(s, Set.class); - assertEquals("[\"blah\"]", json); + assertThat(json).isEqualTo("[\"blah\"]"); } @Test - public void testBitSetSerialization() throws Exception { + public void testBitSetSerialization() { Gson gson = new Gson(); BitSet bits = new BitSet(); bits.set(1); bits.set(3, 6); bits.set(9); String json = gson.toJson(bits); - assertEquals("[0,1,0,1,1,1,0,0,0,1]", json); + assertThat(json).isEqualTo("[0,1,0,1,1,1,0,0,0,1]"); } @Test - public void testBitSetDeserialization() throws Exception { + public void testBitSetDeserialization() { BitSet expected = new BitSet(); expected.set(0); expected.set(2, 6); @@ -351,29 +349,29 @@ public class DefaultTypeAdaptersTest { Gson gson = new Gson(); String json = gson.toJson(expected); - assertEquals(expected, gson.fromJson(json, BitSet.class)); + assertThat(gson.fromJson(json, BitSet.class)).isEqualTo(expected); json = "[1,0,1,1,1,1,0,0,1,0,0,0]"; - assertEquals(expected, gson.fromJson(json, BitSet.class)); + assertThat(gson.fromJson(json, BitSet.class)).isEqualTo(expected); json = "[\"1\",\"0\",\"1\",\"1\",\"1\",\"1\",\"0\",\"0\",\"1\"]"; - assertEquals(expected, gson.fromJson(json, BitSet.class)); + assertThat(gson.fromJson(json, BitSet.class)).isEqualTo(expected); json = "[true,false,true,true,true,true,false,false,true,false,false]"; - assertEquals(expected, gson.fromJson(json, BitSet.class)); + assertThat(gson.fromJson(json, BitSet.class)).isEqualTo(expected); try { gson.fromJson("[1, []]", BitSet.class); fail(); } catch (JsonSyntaxException e) { - assertEquals("Invalid bitset value type: BEGIN_ARRAY; at path $[1]", e.getMessage()); + assertThat(e.getMessage()).isEqualTo("Invalid bitset value type: BEGIN_ARRAY; at path $[1]"); } try { gson.fromJson("[1, 2]", BitSet.class); fail(); } catch (JsonSyntaxException e) { - assertEquals("Invalid bitset value 2, expected 0 or 1; at path $[1]", e.getMessage()); + assertThat(e).hasMessageThat().isEqualTo("Invalid bitset value 2, expected 0 or 1; at path $[1]"); } } @@ -382,9 +380,9 @@ public class DefaultTypeAdaptersTest { Date now = new Date(1315806903103L); String json = gson.toJson(now); if (JavaVersion.isJava9OrLater()) { - assertEquals("\"Sep 11, 2011, 10:55:03 PM\"", json); + assertThat(json).isEqualTo("\"Sep 11, 2011, 10:55:03 PM\""); } else { - assertEquals("\"Sep 11, 2011 10:55:03 PM\"", json); + assertThat(json).isEqualTo("\"Sep 11, 2011 10:55:03 PM\""); } } @@ -400,114 +398,114 @@ public class DefaultTypeAdaptersTest { // millisecond portion. @SuppressWarnings("deprecation") public static void assertEqualsDate(Date date, int year, int month, int day) { - assertEquals(year-1900, date.getYear()); - assertEquals(month, date.getMonth()); - assertEquals(day, date.getDate()); + assertThat(date.getYear()).isEqualTo(year-1900); + assertThat(date.getMonth()).isEqualTo(month); + assertThat(date.getDate()).isEqualTo(day); } @SuppressWarnings("deprecation") public static void assertEqualsTime(Date date, int hours, int minutes, int seconds) { - assertEquals(hours, date.getHours()); - assertEquals(minutes, date.getMinutes()); - assertEquals(seconds, date.getSeconds()); + assertThat(date.getHours()).isEqualTo(hours); + assertThat(date.getMinutes()).isEqualTo(minutes); + assertThat(date.getSeconds()).isEqualTo(seconds); } @Test - public void testDefaultDateSerializationUsingBuilder() throws Exception { + public void testDefaultDateSerializationUsingBuilder() { Gson gson = new GsonBuilder().create(); Date now = new Date(1315806903103L); String json = gson.toJson(now); if (JavaVersion.isJava9OrLater()) { - assertEquals("\"Sep 11, 2011, 10:55:03 PM\"", json); + assertThat(json).isEqualTo("\"Sep 11, 2011, 10:55:03 PM\""); } else { - assertEquals("\"Sep 11, 2011 10:55:03 PM\"", json); + assertThat(json).isEqualTo("\"Sep 11, 2011 10:55:03 PM\""); } } @Test - public void testDefaultDateDeserializationUsingBuilder() throws Exception { + public void testDefaultDateDeserializationUsingBuilder() { Gson gson = new GsonBuilder().create(); Date now = new Date(1315806903103L); String json = gson.toJson(now); Date extracted = gson.fromJson(json, Date.class); - assertEquals(now.toString(), extracted.toString()); + assertThat(extracted.toString()).isEqualTo(now.toString()); } @Test - public void testDefaultCalendarSerialization() throws Exception { + public void testDefaultCalendarSerialization() { Gson gson = new GsonBuilder().create(); String json = gson.toJson(Calendar.getInstance()); - assertTrue(json.contains("year")); - assertTrue(json.contains("month")); - assertTrue(json.contains("dayOfMonth")); - assertTrue(json.contains("hourOfDay")); - assertTrue(json.contains("minute")); - assertTrue(json.contains("second")); + assertThat(json).contains("year"); + assertThat(json).contains("month"); + assertThat(json).contains("dayOfMonth"); + assertThat(json).contains("hourOfDay"); + assertThat(json).contains("minute"); + assertThat(json).contains("second"); } @Test - public void testDefaultCalendarDeserialization() throws Exception { + public void testDefaultCalendarDeserialization() { Gson gson = new GsonBuilder().create(); String json = "{year:2009,month:2,dayOfMonth:11,hourOfDay:14,minute:29,second:23}"; Calendar cal = gson.fromJson(json, Calendar.class); - assertEquals(2009, cal.get(Calendar.YEAR)); - assertEquals(2, cal.get(Calendar.MONTH)); - assertEquals(11, cal.get(Calendar.DAY_OF_MONTH)); - assertEquals(14, cal.get(Calendar.HOUR_OF_DAY)); - assertEquals(29, cal.get(Calendar.MINUTE)); - assertEquals(23, cal.get(Calendar.SECOND)); + assertThat(cal.get(Calendar.YEAR)).isEqualTo(2009); + assertThat(cal.get(Calendar.MONTH)).isEqualTo(2); + assertThat(cal.get(Calendar.DAY_OF_MONTH)).isEqualTo(11); + assertThat(cal.get(Calendar.HOUR_OF_DAY)).isEqualTo(14); + assertThat(cal.get(Calendar.MINUTE)).isEqualTo(29); + assertThat(cal.get(Calendar.SECOND)).isEqualTo(23); } @Test - public void testDefaultGregorianCalendarSerialization() throws Exception { + public void testDefaultGregorianCalendarSerialization() { Gson gson = new GsonBuilder().create(); GregorianCalendar cal = new GregorianCalendar(); String json = gson.toJson(cal); - assertTrue(json.contains("year")); - assertTrue(json.contains("month")); - assertTrue(json.contains("dayOfMonth")); - assertTrue(json.contains("hourOfDay")); - assertTrue(json.contains("minute")); - assertTrue(json.contains("second")); + assertThat(json).contains("year"); + assertThat(json).contains("month"); + assertThat(json).contains("dayOfMonth"); + assertThat(json).contains("hourOfDay"); + assertThat(json).contains("minute"); + assertThat(json).contains("second"); } @Test - public void testDefaultGregorianCalendarDeserialization() throws Exception { + public void testDefaultGregorianCalendarDeserialization() { Gson gson = new GsonBuilder().create(); String json = "{year:2009,month:2,dayOfMonth:11,hourOfDay:14,minute:29,second:23}"; GregorianCalendar cal = gson.fromJson(json, GregorianCalendar.class); - assertEquals(2009, cal.get(Calendar.YEAR)); - assertEquals(2, cal.get(Calendar.MONTH)); - assertEquals(11, cal.get(Calendar.DAY_OF_MONTH)); - assertEquals(14, cal.get(Calendar.HOUR_OF_DAY)); - assertEquals(29, cal.get(Calendar.MINUTE)); - assertEquals(23, cal.get(Calendar.SECOND)); + assertThat(cal.get(Calendar.YEAR)).isEqualTo(2009); + assertThat(cal.get(Calendar.MONTH)).isEqualTo(2); + assertThat(cal.get(Calendar.DAY_OF_MONTH)).isEqualTo(11); + assertThat(cal.get(Calendar.HOUR_OF_DAY)).isEqualTo(14); + assertThat(cal.get(Calendar.MINUTE)).isEqualTo(29); + assertThat(cal.get(Calendar.SECOND)).isEqualTo(23); } @Test - public void testDateSerializationWithPattern() throws Exception { + public void testDateSerializationWithPattern() { String pattern = "yyyy-MM-dd"; Gson gson = new GsonBuilder().setDateFormat(DateFormat.FULL).setDateFormat(pattern).create(); Date now = new Date(1315806903103L); String json = gson.toJson(now); - assertEquals("\"2011-09-11\"", json); + assertThat(json).isEqualTo("\"2011-09-11\""); } @SuppressWarnings("deprecation") @Test - public void testDateDeserializationWithPattern() throws Exception { + public void testDateDeserializationWithPattern() { String pattern = "yyyy-MM-dd"; Gson gson = new GsonBuilder().setDateFormat(DateFormat.FULL).setDateFormat(pattern).create(); Date now = new Date(1315806903103L); String json = gson.toJson(now); Date extracted = gson.fromJson(json, Date.class); - assertEquals(now.getYear(), extracted.getYear()); - assertEquals(now.getMonth(), extracted.getMonth()); - assertEquals(now.getDay(), extracted.getDay()); + assertThat(extracted.getYear()).isEqualTo(now.getYear()); + assertThat(extracted.getMonth()).isEqualTo(now.getMonth()); + assertThat(extracted.getDay()).isEqualTo(now.getDay()); } @Test - public void testDateSerializationWithPatternNotOverridenByTypeAdapter() throws Exception { + public void testDateSerializationWithPatternNotOverridenByTypeAdapter() { String pattern = "yyyy-MM-dd"; Gson gson = new GsonBuilder() .setDateFormat(pattern) @@ -522,12 +520,12 @@ public class DefaultTypeAdaptersTest { Date now = new Date(1315806903103L); String json = gson.toJson(now); - assertEquals("\"2011-09-11\"", json); + assertThat(json).isEqualTo("\"2011-09-11\""); } // http://code.google.com/p/google-gson/issues/detail?id=230 @Test - public void testDateSerializationInCollection() throws Exception { + public void testDateSerializationInCollection() { Type listOfDates = new TypeToken>() {}.getType(); TimeZone defaultTimeZone = TimeZone.getDefault(); TimeZone.setDefault(TimeZone.getTimeZone("UTC")); @@ -537,8 +535,8 @@ public class DefaultTypeAdaptersTest { Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create(); List dates = Arrays.asList(new Date(0)); String json = gson.toJson(dates, listOfDates); - assertEquals("[\"1970-01-01\"]", json); - assertEquals(0L, gson.>fromJson("[\"1970-01-01\"]", listOfDates).get(0).getTime()); + assertThat(json).isEqualTo("[\"1970-01-01\"]"); + assertThat(gson.>fromJson("[\"1970-01-01\"]", listOfDates).get(0).getTime()).isEqualTo(0L); } finally { TimeZone.setDefault(defaultTimeZone); Locale.setDefault(defaultLocale); @@ -547,34 +545,34 @@ public class DefaultTypeAdaptersTest { @Test public void testJsonPrimitiveSerialization() { - assertEquals("5", gson.toJson(new JsonPrimitive(5), JsonElement.class)); - assertEquals("true", gson.toJson(new JsonPrimitive(true), JsonElement.class)); - assertEquals("\"foo\"", gson.toJson(new JsonPrimitive("foo"), JsonElement.class)); - assertEquals("\"a\"", gson.toJson(new JsonPrimitive('a'), JsonElement.class)); + assertThat(gson.toJson(new JsonPrimitive(5), JsonElement.class)).isEqualTo("5"); + assertThat(gson.toJson(new JsonPrimitive(true), JsonElement.class)).isEqualTo("true"); + assertThat(gson.toJson(new JsonPrimitive("foo"), JsonElement.class)).isEqualTo("\"foo\""); + assertThat(gson.toJson(new JsonPrimitive('a'), JsonElement.class)).isEqualTo("\"a\""); } @Test public void testJsonPrimitiveDeserialization() { - assertEquals(new JsonPrimitive(5), gson.fromJson("5", JsonElement.class)); - assertEquals(new JsonPrimitive(5), gson.fromJson("5", JsonPrimitive.class)); - assertEquals(new JsonPrimitive(true), gson.fromJson("true", JsonElement.class)); - assertEquals(new JsonPrimitive(true), gson.fromJson("true", JsonPrimitive.class)); - assertEquals(new JsonPrimitive("foo"), gson.fromJson("\"foo\"", JsonElement.class)); - assertEquals(new JsonPrimitive("foo"), gson.fromJson("\"foo\"", JsonPrimitive.class)); - assertEquals(new JsonPrimitive('a'), gson.fromJson("\"a\"", JsonElement.class)); - assertEquals(new JsonPrimitive('a'), gson.fromJson("\"a\"", JsonPrimitive.class)); + assertThat(gson.fromJson("5", JsonElement.class)).isEqualTo(new JsonPrimitive(5)); + assertThat(gson.fromJson("5", JsonPrimitive.class)).isEqualTo(new JsonPrimitive(5)); + assertThat(gson.fromJson("true", JsonElement.class)).isEqualTo(new JsonPrimitive(true)); + assertThat(gson.fromJson("true", JsonPrimitive.class)).isEqualTo(new JsonPrimitive(true)); + assertThat(gson.fromJson("\"foo\"", JsonElement.class)).isEqualTo(new JsonPrimitive("foo")); + assertThat(gson.fromJson("\"foo\"", JsonPrimitive.class)).isEqualTo(new JsonPrimitive("foo")); + assertThat(gson.fromJson("\"a\"", JsonElement.class)).isEqualTo(new JsonPrimitive('a')); + assertThat(gson.fromJson("\"a\"", JsonPrimitive.class)).isEqualTo(new JsonPrimitive('a')); } @Test public void testJsonNullSerialization() { - assertEquals("null", gson.toJson(JsonNull.INSTANCE, JsonElement.class)); - assertEquals("null", gson.toJson(JsonNull.INSTANCE, JsonNull.class)); + assertThat(gson.toJson(JsonNull.INSTANCE, JsonElement.class)).isEqualTo("null"); + assertThat(gson.toJson(JsonNull.INSTANCE, JsonNull.class)).isEqualTo("null"); } @Test public void testNullJsonElementSerialization() { - assertEquals("null", gson.toJson(null, JsonElement.class)); - assertEquals("null", gson.toJson(null, JsonNull.class)); + assertThat(gson.toJson(null, JsonElement.class)).isEqualTo("null"); + assertThat(gson.toJson(null, JsonNull.class)).isEqualTo("null"); } @Test @@ -583,7 +581,7 @@ public class DefaultTypeAdaptersTest { array.add(new JsonPrimitive(1)); array.add(new JsonPrimitive(2)); array.add(new JsonPrimitive(3)); - assertEquals("[1,2,3]", gson.toJson(array, JsonElement.class)); + assertThat(gson.toJson(array, JsonElement.class)).isEqualTo("[1,2,3]"); } @Test @@ -594,8 +592,8 @@ public class DefaultTypeAdaptersTest { array.add(new JsonPrimitive(3)); String json = "[1,2,3]"; - assertEquals(array, gson.fromJson(json, JsonElement.class)); - assertEquals(array, gson.fromJson(json, JsonArray.class)); + assertThat(gson.fromJson(json, JsonElement.class)).isEqualTo(array); + assertThat(gson.fromJson(json, JsonArray.class)).isEqualTo(array); } @Test @@ -603,7 +601,7 @@ public class DefaultTypeAdaptersTest { JsonObject object = new JsonObject(); object.add("foo", new JsonPrimitive(1)); object.add("bar", new JsonPrimitive(2)); - assertEquals("{\"foo\":1,\"bar\":2}", gson.toJson(object, JsonElement.class)); + assertThat(gson.toJson(object, JsonElement.class)).isEqualTo("{\"foo\":1,\"bar\":2}"); } @Test @@ -614,16 +612,16 @@ public class DefaultTypeAdaptersTest { String json = "{\"foo\":1,\"bar\":2}"; JsonElement actual = gson.fromJson(json, JsonElement.class); - assertEquals(object, actual); + assertThat(actual).isEqualTo(object); JsonObject actualObj = gson.fromJson(json, JsonObject.class); - assertEquals(object, actualObj); + assertThat(actualObj).isEqualTo(object); } @Test public void testJsonNullDeserialization() { - assertEquals(JsonNull.INSTANCE, gson.fromJson("null", JsonElement.class)); - assertEquals(JsonNull.INSTANCE, gson.fromJson("null", JsonNull.class)); + assertThat(gson.fromJson("null", JsonElement.class)).isEqualTo(JsonNull.INSTANCE); + assertThat(gson.fromJson("null", JsonNull.class)).isEqualTo(JsonNull.INSTANCE); } @Test @@ -632,8 +630,7 @@ public class DefaultTypeAdaptersTest { gson.fromJson("\"abc\"", JsonObject.class); fail(); } catch (JsonSyntaxException expected) { - assertEquals("Expected a com.google.gson.JsonObject but was com.google.gson.JsonPrimitive; at path $", - expected.getMessage()); + assertThat(expected.getMessage()).isEqualTo("Expected a com.google.gson.JsonObject but was com.google.gson.JsonPrimitive; at path $"); } } @@ -663,14 +660,14 @@ public class DefaultTypeAdaptersTest { props.setProperty("foo", "bar"); String json = gson.toJson(props); String expected = "{\"foo\":\"bar\"}"; - assertEquals(expected, json); + assertThat(json).isEqualTo(expected); } @Test public void testPropertiesDeserialization() { String json = "{foo:'bar'}"; Properties props = gson.fromJson(json, Properties.class); - assertEquals("bar", props.getProperty("foo")); + assertThat(props.getProperty("foo")).isEqualTo("bar"); } @Test @@ -678,7 +675,7 @@ public class DefaultTypeAdaptersTest { TreeSet treeSet = new TreeSet<>(); treeSet.add("Value1"); String json = gson.toJson(treeSet); - assertEquals("[\"Value1\"]", json); + assertThat(json).isEqualTo("[\"Value1\"]"); } @Test @@ -686,33 +683,33 @@ public class DefaultTypeAdaptersTest { String json = "['Value1']"; Type type = new TypeToken>() {}.getType(); TreeSet treeSet = gson.fromJson(json, type); - assertTrue(treeSet.contains("Value1")); + assertThat(treeSet).contains("Value1"); } @Test public void testStringBuilderSerialization() { StringBuilder sb = new StringBuilder("abc"); String json = gson.toJson(sb); - assertEquals("\"abc\"", json); + assertThat(json).isEqualTo("\"abc\""); } @Test public void testStringBuilderDeserialization() { StringBuilder sb = gson.fromJson("'abc'", StringBuilder.class); - assertEquals("abc", sb.toString()); + assertThat(sb.toString()).isEqualTo("abc"); } @Test public void testStringBufferSerialization() { StringBuffer sb = new StringBuffer("abc"); String json = gson.toJson(sb); - assertEquals("\"abc\"", json); + assertThat(json).isEqualTo("\"abc\""); } @Test public void testStringBufferDeserialization() { StringBuffer sb = gson.fromJson("'abc'", StringBuffer.class); - assertEquals("abc", sb.toString()); + assertThat(sb.toString()).isEqualTo("abc"); } private static class MyClassTypeAdapter extends TypeAdapter> { diff --git a/gson/src/test/java/com/google/gson/functional/DelegateTypeAdapterTest.java b/gson/src/test/java/com/google/gson/functional/DelegateTypeAdapterTest.java index 68e7c363..32cf8680 100644 --- a/gson/src/test/java/com/google/gson/functional/DelegateTypeAdapterTest.java +++ b/gson/src/test/java/com/google/gson/functional/DelegateTypeAdapterTest.java @@ -15,7 +15,7 @@ */ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -58,8 +58,8 @@ public class DelegateTypeAdapterTest { String json = gson.toJson(bags); bags = gson.fromJson(json, new TypeToken>(){}.getType()); // 11: 1 list object, and 10 entries. stats invoked on all 5 fields - assertEquals(51, stats.numReads); - assertEquals(51, stats.numWrites); + assertThat(stats.numReads).isEqualTo(51); + assertThat(stats.numWrites).isEqualTo(51); } @Test @@ -68,8 +68,8 @@ public class DelegateTypeAdapterTest { String json = gson.toJson(bags); bags = gson.fromJson(json, String[].class); // 1 array object with 4 elements. - assertEquals(5, stats.numReads); - assertEquals(5, stats.numWrites); + assertThat(stats.numReads).isEqualTo(5); + assertThat(stats.numWrites).isEqualTo(5); } private static class StatsTypeAdapterFactory implements TypeAdapterFactory { diff --git a/gson/src/test/java/com/google/gson/functional/EnumTest.java b/gson/src/test/java/com/google/gson/functional/EnumTest.java index 7bb306d0..0a9d0cde 100644 --- a/gson/src/test/java/com/google/gson/functional/EnumTest.java +++ b/gson/src/test/java/com/google/gson/functional/EnumTest.java @@ -16,10 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -60,15 +57,15 @@ public class EnumTest { } @Test - public void testTopLevelEnumSerialization() throws Exception { + public void testTopLevelEnumSerialization() { String result = gson.toJson(MyEnum.VALUE1); - assertEquals('"' + MyEnum.VALUE1.toString() + '"', result); + assertThat(result).isEqualTo('"' + MyEnum.VALUE1.toString() + '"'); } @Test - public void testTopLevelEnumDeserialization() throws Exception { + public void testTopLevelEnumDeserialization() { MyEnum result = gson.fromJson('"' + MyEnum.VALUE1.toString() + '"', MyEnum.class); - assertEquals(MyEnum.VALUE1, result); + assertThat(result).isEqualTo(MyEnum.VALUE1); } @Test @@ -79,9 +76,9 @@ public class EnumTest { target.add(MyEnum.VALUE2); String expectedJson = "[\"VALUE1\",\"VALUE2\"]"; String actualJson = gson.toJson(target); - assertEquals(expectedJson, actualJson); + assertThat(actualJson).isEqualTo(expectedJson); actualJson = gson.toJson(target, type); - assertEquals(expectedJson, actualJson); + assertThat(actualJson).isEqualTo(expectedJson); } @Test @@ -94,17 +91,17 @@ public class EnumTest { } @Test - public void testClassWithEnumFieldSerialization() throws Exception { + public void testClassWithEnumFieldSerialization() { ClassWithEnumFields target = new ClassWithEnumFields(); - assertEquals(target.getExpectedJson(), gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo(target.getExpectedJson()); } @Test - public void testClassWithEnumFieldDeserialization() throws Exception { + public void testClassWithEnumFieldDeserialization() { String json = "{value1:'VALUE1',value2:'VALUE2'}"; ClassWithEnumFields target = gson.fromJson(json, ClassWithEnumFields.class); - assertEquals(MyEnum.VALUE1,target.value1); - assertEquals(MyEnum.VALUE2,target.value2); + assertThat(target.value1).isEqualTo(MyEnum.VALUE1); + assertThat(target.value2).isEqualTo(MyEnum.VALUE2); } private static enum MyEnum { @@ -124,12 +121,13 @@ public class EnumTest { */ @Test public void testEnumSubclass() { - assertFalse(Roshambo.class == Roshambo.ROCK.getClass()); - assertEquals("\"ROCK\"", gson.toJson(Roshambo.ROCK)); - assertEquals("[\"ROCK\",\"PAPER\",\"SCISSORS\"]", gson.toJson(EnumSet.allOf(Roshambo.class))); - assertEquals(Roshambo.ROCK, gson.fromJson("\"ROCK\"", Roshambo.class)); - assertEquals(EnumSet.allOf(Roshambo.class), - gson.fromJson("[\"ROCK\",\"PAPER\",\"SCISSORS\"]", new TypeToken>() {}.getType())); + assertThat(Roshambo.ROCK.getClass()).isAssignableTo(Roshambo.class); + assertThat(gson.toJson(Roshambo.ROCK)).isEqualTo("\"ROCK\""); + assertThat(gson.toJson(EnumSet.allOf(Roshambo.class))).isEqualTo("[\"ROCK\",\"PAPER\",\"SCISSORS\"]"); + assertThat(gson.fromJson("\"ROCK\"", Roshambo.class)).isEqualTo(Roshambo.ROCK); + assertThat(EnumSet.allOf(Roshambo.class)).isEqualTo( + gson.fromJson("[\"ROCK\",\"PAPER\",\"SCISSORS\"]", new TypeToken>() {}.getType()) + ); } @Test @@ -137,12 +135,13 @@ public class EnumTest { gson = new GsonBuilder() .registerTypeHierarchyAdapter(Roshambo.class, new MyEnumTypeAdapter()) .create(); - assertFalse(Roshambo.class == Roshambo.ROCK.getClass()); - assertEquals("\"123ROCK\"", gson.toJson(Roshambo.ROCK)); - assertEquals("[\"123ROCK\",\"123PAPER\",\"123SCISSORS\"]", gson.toJson(EnumSet.allOf(Roshambo.class))); - assertEquals(Roshambo.ROCK, gson.fromJson("\"123ROCK\"", Roshambo.class)); - assertEquals(EnumSet.allOf(Roshambo.class), - gson.fromJson("[\"123ROCK\",\"123PAPER\",\"123SCISSORS\"]", new TypeToken>() {}.getType())); + assertThat(Roshambo.ROCK.getClass()).isAssignableTo(Roshambo.class); + assertThat(gson.toJson(Roshambo.ROCK)).isEqualTo("\"123ROCK\""); + assertThat(gson.toJson(EnumSet.allOf(Roshambo.class))).isEqualTo("[\"123ROCK\",\"123PAPER\",\"123SCISSORS\"]"); + assertThat(gson.fromJson("\"123ROCK\"", Roshambo.class)).isEqualTo(Roshambo.ROCK); + assertThat(EnumSet.allOf(Roshambo.class)).isEqualTo( + gson.fromJson("[\"123ROCK\",\"123PAPER\",\"123SCISSORS\"]", new TypeToken>() {}.getType()) + ); } @Test @@ -152,7 +151,7 @@ public class EnumTest { list.add(Roshambo.PAPER); String json = gson.toJson(list); - assertEquals("[\"ROCK\",\"PAPER\"]", json); + assertThat(json).isEqualTo("[\"ROCK\",\"PAPER\"]"); Type collectionType = new TypeToken>() {}.getType(); Collection actualJsonList = gson.fromJson(json, collectionType); @@ -162,34 +161,33 @@ public class EnumTest { @Test public void testEnumCaseMapping() { - assertEquals(Gender.MALE, gson.fromJson("\"boy\"", Gender.class)); - assertEquals("\"boy\"", gson.toJson(Gender.MALE, Gender.class)); + assertThat(gson.fromJson("\"boy\"", Gender.class)).isEqualTo(Gender.MALE); + assertThat(gson.toJson(Gender.MALE, Gender.class)).isEqualTo("\"boy\""); } @Test public void testEnumSet() { EnumSet foo = EnumSet.of(Roshambo.ROCK, Roshambo.PAPER); String json = gson.toJson(foo); - assertEquals("[\"ROCK\",\"PAPER\"]", json); + assertThat(json).isEqualTo("[\"ROCK\",\"PAPER\"]"); Type type = new TypeToken>() {}.getType(); EnumSet bar = gson.fromJson(json, type); - assertTrue(bar.contains(Roshambo.ROCK)); - assertTrue(bar.contains(Roshambo.PAPER)); - assertFalse(bar.contains(Roshambo.SCISSORS)); + assertThat(bar).containsExactly(Roshambo.ROCK, Roshambo.PAPER).inOrder(); + assertThat(bar).doesNotContain(Roshambo.SCISSORS);; } @Test - public void testEnumMap() throws Exception { + public void testEnumMap() { EnumMap map = new EnumMap<>(MyEnum.class); map.put(MyEnum.VALUE1, "test"); String json = gson.toJson(map); - assertEquals("{\"VALUE1\":\"test\"}", json); + assertThat(json).isEqualTo("{\"VALUE1\":\"test\"}"); Type type = new TypeToken>() {}.getType(); EnumMap actualMap = gson.fromJson("{\"VALUE1\":\"test\"}", type); Map expectedMap = Collections.singletonMap(MyEnum.VALUE1, "test"); - assertEquals(expectedMap, actualMap); + assertThat(actualMap).isEqualTo(expectedMap); } private enum Roshambo { @@ -234,9 +232,9 @@ public class EnumTest { @Test public void testEnumClassWithFields() { - assertEquals("\"RED\"", gson.toJson(Color.RED)); - assertEquals("red", gson.fromJson("RED", Color.class).value); - assertEquals(2, gson.fromJson("BLUE", Color.class).index); + assertThat(gson.toJson(Color.RED)).isEqualTo("\"RED\""); + assertThat(gson.fromJson("RED", Color.class).value).isEqualTo("red"); + assertThat(gson.fromJson("BLUE", Color.class).index).isEqualTo(2); } private enum Color { @@ -252,11 +250,11 @@ public class EnumTest { @Test public void testEnumToStringRead() { // Should still be able to read constant name - assertEquals(CustomToString.A, gson.fromJson("\"A\"", CustomToString.class)); + assertThat(gson.fromJson("\"A\"", CustomToString.class)).isEqualTo(CustomToString.A); // Should be able to read toString() value - assertEquals(CustomToString.A, gson.fromJson("\"test\"", CustomToString.class)); + assertThat(gson.fromJson("\"test\"", CustomToString.class)).isEqualTo(CustomToString.A); - assertNull(gson.fromJson("\"other\"", CustomToString.class)); + assertThat(gson.fromJson("\"other\"", CustomToString.class)).isNull(); } private enum CustomToString { @@ -274,8 +272,8 @@ public class EnumTest { */ @Test public void testEnumToStringReadInterchanged() { - assertEquals(InterchangedToString.A, gson.fromJson("\"A\"", InterchangedToString.class)); - assertEquals(InterchangedToString.B, gson.fromJson("\"B\"", InterchangedToString.class)); + assertThat(gson.fromJson("\"A\"", InterchangedToString.class)).isEqualTo(InterchangedToString.A); + assertThat(gson.fromJson("\"B\"", InterchangedToString.class)).isEqualTo(InterchangedToString.B); } private enum InterchangedToString { diff --git a/gson/src/test/java/com/google/gson/functional/EnumWithObfuscatedTest.java b/gson/src/test/java/com/google/gson/functional/EnumWithObfuscatedTest.java index 373f0071..979316ce 100644 --- a/gson/src/test/java/com/google/gson/functional/EnumWithObfuscatedTest.java +++ b/gson/src/test/java/com/google/gson/functional/EnumWithObfuscatedTest.java @@ -16,7 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.Gson; @@ -55,7 +55,7 @@ public class EnumWithObfuscatedTest { } } - assertEquals(Gender.MALE, gson.fromJson("\"MAIL\"", Gender.class)); - assertEquals("\"MAIL\"", gson.toJson(Gender.MALE, Gender.class)); + assertThat(gson.fromJson("\"MAIL\"", Gender.class)).isEqualTo(Gender.MALE); + assertThat(gson.toJson(Gender.MALE, Gender.class)).isEqualTo("\"MAIL\""); } } diff --git a/gson/src/test/java/com/google/gson/functional/EscapingTest.java b/gson/src/test/java/com/google/gson/functional/EscapingTest.java index f8c6f4fe..deaca904 100644 --- a/gson/src/test/java/com/google/gson/functional/EscapingTest.java +++ b/gson/src/test/java/com/google/gson/functional/EscapingTest.java @@ -16,9 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -43,12 +41,12 @@ public class EscapingTest { } @Test - public void testEscapingQuotesInStringArray() throws Exception { + public void testEscapingQuotesInStringArray() { String[] valueWithQuotes = { "beforeQuote\"afterQuote" }; String jsonRepresentation = gson.toJson(valueWithQuotes); String[] target = gson.fromJson(jsonRepresentation, String[].class); - assertEquals(1, target.length); - assertEquals(valueWithQuotes[0], target[0]); + assertThat(target.length).isEqualTo(1); + assertThat(target[0]).isEqualTo(valueWithQuotes[0]); } @Test @@ -60,34 +58,33 @@ public class EscapingTest { strings.add("&"); strings.add("'"); strings.add("\""); - assertEquals("[\"\\u003c\",\"\\u003e\",\"\\u003d\",\"\\u0026\",\"\\u0027\",\"\\\"\"]", - gson.toJson(strings)); + assertThat(gson.toJson(strings)).isEqualTo("[\"\\u003c\",\"\\u003e\",\"\\u003d\",\"\\u0026\",\"\\u0027\",\"\\\"\"]"); } @Test - public void testEscapingObjectFields() throws Exception { + public void testEscapingObjectFields() { BagOfPrimitives objWithPrimitives = new BagOfPrimitives(1L, 1, true, "test with\" "; String result = gson.toJson(target); - assertFalse(result.equals('"' + target + '"')); + assertThat(result).isNotEqualTo('"' + target + '"'); gson = new GsonBuilder().disableHtmlEscaping().create(); result = gson.toJson(target); - assertTrue(result.equals('"' + target + '"')); + assertThat(result).isEqualTo('"' + target + '"'); } @Test public void testDeserializePrimitiveWrapperAsObjectField() { String json = "{i:10}"; ClassWithIntegerField target = gson.fromJson(json, ClassWithIntegerField.class); - assertEquals(10, target.i.intValue()); + assertThat(target.i).isEqualTo(10); } private static class ClassWithIntegerField { @@ -800,9 +798,9 @@ public class PrimitiveTest { @Test public void testPrimitiveClassLiteral() { - assertEquals(1, gson.fromJson("1", int.class).intValue()); - assertEquals(1, gson.fromJson(new StringReader("1"), int.class).intValue()); - assertEquals(1, gson.fromJson(new JsonPrimitive(1), int.class).intValue()); + assertThat(gson.fromJson("1", int.class)).isEqualTo(1); + assertThat(gson.fromJson(new StringReader("1"), int.class)).isEqualTo(1); + assertThat(gson.fromJson(new JsonPrimitive(1), int.class)).isEqualTo(1); } @Test @@ -967,7 +965,7 @@ public class PrimitiveTest { @Test public void testDeserializingDecimalPointValueZeroSucceeds() { - assertEquals(1, (int) gson.fromJson("1.0", Integer.class)); + assertThat(gson.fromJson("1.0", Integer.class)).isEqualTo(1); } @Test @@ -1023,28 +1021,28 @@ public class PrimitiveTest { @Test public void testValueVeryCloseToZeroIsZero() { - assertEquals(0, (byte) gson.fromJson("-122.08e-2132", byte.class)); - assertEquals(0, (short) gson.fromJson("-122.08e-2132", short.class)); - assertEquals(0, (int) gson.fromJson("-122.08e-2132", int.class)); - assertEquals(0, (long) gson.fromJson("-122.08e-2132", long.class)); - assertEquals(-0.0f, gson.fromJson("-122.08e-2132", float.class), 0); - assertEquals(-0.0, gson.fromJson("-122.08e-2132", double.class), 0); - assertEquals(0.0f, gson.fromJson("122.08e-2132", float.class), 0); - assertEquals(0.0, gson.fromJson("122.08e-2132", double.class), 0); + assertThat(gson.fromJson("-122.08e-2132", byte.class)).isEqualTo(0); + assertThat(gson.fromJson("-122.08e-2132", short.class)).isEqualTo(0); + assertThat(gson.fromJson("-122.08e-2132", int.class)).isEqualTo(0); + assertThat(gson.fromJson("-122.08e-2132", long.class)).isEqualTo(0); + assertThat(gson.fromJson("-122.08e-2132", float.class)).isEqualTo(-0.0f); + assertThat(gson.fromJson("-122.08e-2132", double.class)).isEqualTo(-0.0); + assertThat(gson.fromJson("122.08e-2132", float.class)).isEqualTo(0.0f); + assertThat(gson.fromJson("122.08e-2132", double.class)).isEqualTo(0.0); } @Test public void testDeserializingBigDecimalAsFloat() { String json = "-122.08e-2132332"; float actual = gson.fromJson(json, float.class); - assertEquals(-0.0f, actual, 0); + assertThat(actual).isEqualTo(-0.0f); } @Test public void testDeserializingBigDecimalAsDouble() { String json = "-122.08e-2132332"; double actual = gson.fromJson(json, double.class); - assertEquals(-0.0d, actual, 0); + assertThat(actual).isEqualTo(-0.0d); } @Test @@ -1060,13 +1058,12 @@ public class PrimitiveTest { public void testDeserializingBigIntegerAsBigDecimal() { BigDecimal actual = gson.fromJson("12121211243123245845384534687435634558945453489543985435", BigDecimal.class); - assertEquals("12121211243123245845384534687435634558945453489543985435", actual.toPlainString()); + assertThat(actual.toPlainString()).isEqualTo("12121211243123245845384534687435634558945453489543985435"); } @Test public void testStringsAsBooleans() { String json = "['true', 'false', 'TRUE', 'yes', '1']"; - assertEquals(Arrays.asList(true, false, true, false, false), - gson.>fromJson(json, new TypeToken>() {}.getType())); + assertThat( gson.>fromJson(json, new TypeToken>() {}.getType())).isEqualTo(Arrays.asList(true, false, true, false, false)); } } diff --git a/gson/src/test/java/com/google/gson/functional/PrintFormattingTest.java b/gson/src/test/java/com/google/gson/functional/PrintFormattingTest.java index 55d7606c..d31a43d0 100644 --- a/gson/src/test/java/com/google/gson/functional/PrintFormattingTest.java +++ b/gson/src/test/java/com/google/gson/functional/PrintFormattingTest.java @@ -16,8 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -64,8 +63,8 @@ public class PrintFormattingTest { obj.addProperty("field1", "value1"); obj.addProperty("field2", (String) null); String json = gson.toJson(obj); - assertTrue(json.contains("field1")); - assertFalse(json.contains("field2")); + assertThat(json).contains("field1"); + assertThat(json).doesNotContain("field2"); } @Test @@ -75,13 +74,13 @@ public class PrintFormattingTest { obj.addProperty("field1", "value1"); obj.addProperty("field2", (String) null); String json = gson.toJson(obj); - assertTrue(json.contains("field1")); - assertTrue(json.contains("field2")); + assertThat(json).contains("field1"); + assertThat(json).contains("field2"); } private static void assertContainsNoWhiteSpace(String str) { for (char c : str.toCharArray()) { - assertFalse(Character.isWhitespace(c)); + assertThat(Character.isWhitespace(c)).isFalse(); } } } diff --git a/gson/src/test/java/com/google/gson/functional/RawSerializationTest.java b/gson/src/test/java/com/google/gson/functional/RawSerializationTest.java index 6e7ada6e..132eadff 100644 --- a/gson/src/test/java/com/google/gson/functional/RawSerializationTest.java +++ b/gson/src/test/java/com/google/gson/functional/RawSerializationTest.java @@ -15,7 +15,7 @@ */ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -42,14 +42,14 @@ public class RawSerializationTest { public void testCollectionOfPrimitives() { Collection ints = Arrays.asList(1, 2, 3, 4, 5); String json = gson.toJson(ints); - assertEquals("[1,2,3,4,5]", json); + assertThat(json).isEqualTo("[1,2,3,4,5]"); } @Test public void testCollectionOfObjects() { Collection foos = Arrays.asList(new Foo(1), new Foo(2)); String json = gson.toJson(foos); - assertEquals("[{\"b\":1},{\"b\":2}]", json); + assertThat(json).isEqualTo("[{\"b\":1},{\"b\":2}]"); } @Test @@ -58,10 +58,10 @@ public class RawSerializationTest { String expectedJson = "{\"t\":{\"b\":1}}"; // Ensure that serialization works without specifying the type explicitly String json = gson.toJson(bar); - assertEquals(expectedJson, json); + assertThat(json).isEqualTo(expectedJson); // Ensure that serialization also works when the type is specified explicitly json = gson.toJson(bar, new TypeToken>(){}.getType()); - assertEquals(expectedJson, json); + assertThat(json).isEqualTo(expectedJson); } @Test @@ -70,10 +70,10 @@ public class RawSerializationTest { String expectedJson = "{\"t\":{\"t\":{\"b\":1}}}"; // Ensure that serialization works without specifying the type explicitly String json = gson.toJson(bar); - assertEquals(expectedJson, json); + assertThat(json).isEqualTo(expectedJson); // Ensure that serialization also works when the type is specified explicitly json = gson.toJson(bar, new TypeToken>>(){}.getType()); - assertEquals(expectedJson, json); + assertThat(json).isEqualTo(expectedJson); } @Test @@ -82,10 +82,10 @@ public class RawSerializationTest { String expectedJson = "{\"t\":{\"t\":{\"t\":{\"b\":1}}}}"; // Ensure that serialization works without specifying the type explicitly String json = gson.toJson(bar); - assertEquals(expectedJson, json); + assertThat(json).isEqualTo(expectedJson); // Ensure that serialization also works when the type is specified explicitly json = gson.toJson(bar, new TypeToken>>>(){}.getType()); - assertEquals(expectedJson, json); + assertThat(json).isEqualTo(expectedJson); } private static class Foo { diff --git a/gson/src/test/java/com/google/gson/functional/ReadersWritersTest.java b/gson/src/test/java/com/google/gson/functional/ReadersWritersTest.java index 4862cda4..26c6541b 100644 --- a/gson/src/test/java/com/google/gson/functional/ReadersWritersTest.java +++ b/gson/src/test/java/com/google/gson/functional/ReadersWritersTest.java @@ -15,10 +15,7 @@ */ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.Gson; @@ -54,33 +51,33 @@ public class ReadersWritersTest { } @Test - public void testWriterForSerialization() throws Exception { + public void testWriterForSerialization() { Writer writer = new StringWriter(); BagOfPrimitives src = new BagOfPrimitives(); gson.toJson(src, writer); - assertEquals(src.getExpectedJson(), writer.toString()); + assertThat(writer.toString()).isEqualTo(src.getExpectedJson()); } @Test - public void testReaderForDeserialization() throws Exception { + public void testReaderForDeserialization() { BagOfPrimitives expected = new BagOfPrimitives(); Reader json = new StringReader(expected.getExpectedJson()); BagOfPrimitives actual = gson.fromJson(json, BagOfPrimitives.class); - assertEquals(expected, actual); + assertThat(actual).isEqualTo(expected); } @Test public void testTopLevelNullObjectSerializationWithWriter() { StringWriter writer = new StringWriter(); gson.toJson(null, writer); - assertEquals("null", writer.toString()); + assertThat(writer.toString()).isEqualTo("null"); } @Test public void testTopLevelNullObjectDeserializationWithReader() { StringReader reader = new StringReader("null"); Integer nullIntObject = gson.fromJson(reader, Integer.class); - assertNull(nullIntObject); + assertThat(nullIntObject).isNull(); } @Test @@ -88,7 +85,7 @@ public class ReadersWritersTest { Gson gson = new GsonBuilder().serializeNulls().create(); StringWriter writer = new StringWriter(); gson.toJson(null, writer); - assertEquals("null", writer.toString()); + assertThat(writer.toString()).isEqualTo("null"); } @Test @@ -96,7 +93,7 @@ public class ReadersWritersTest { Gson gson = new GsonBuilder().serializeNulls().create(); StringReader reader = new StringReader("null"); Integer nullIntObject = gson.fromJson(reader, Integer.class); - assertNull(nullIntObject); + assertThat(nullIntObject).isNull(); } @Test @@ -108,9 +105,9 @@ public class ReadersWritersTest { CharArrayReader reader = new CharArrayReader(writer.toCharArray()); JsonStreamParser parser = new JsonStreamParser(reader); String actualOne = gson.fromJson(parser.next(), String.class); - assertEquals("one", actualOne); + assertThat(actualOne).isEqualTo("one"); String actualTwo = gson.fromJson(parser.next(), String.class); - assertEquals("two", actualTwo); + assertThat(actualTwo).isEqualTo("two"); } @Test @@ -124,10 +121,10 @@ public class ReadersWritersTest { CharArrayReader reader = new CharArrayReader(writer.toCharArray()); JsonStreamParser parser = new JsonStreamParser(reader); BagOfPrimitives actualOne = gson.fromJson(parser.next(), BagOfPrimitives.class); - assertEquals("one", actualOne.stringValue); + assertThat(actualOne.stringValue).isEqualTo("one"); BagOfPrimitives actualTwo = gson.fromJson(parser.next(), BagOfPrimitives.class); - assertEquals("two", actualTwo.stringValue); - assertFalse(parser.hasNext()); + assertThat(actualTwo.stringValue).isEqualTo("two"); + assertThat(parser.hasNext()).isFalse(); } @Test @@ -191,7 +188,7 @@ public class ReadersWritersTest { gson.toJson(Arrays.asList("test", 123, true), appendable); // Make sure CharSequence.toString() was called at least two times to verify that // CurrentWrite.cachedString is properly overwritten when char array changes - assertTrue(appendable.toStringCallCount >= 2); - assertEquals("[\"test\",123,true]", appendable.stringBuilder.toString()); + assertThat(appendable.toStringCallCount >= 2).isTrue(); + assertThat(appendable.stringBuilder.toString()).isEqualTo("[\"test\",123,true]"); } } diff --git a/gson/src/test/java/com/google/gson/functional/ReflectionAccessFilterTest.java b/gson/src/test/java/com/google/gson/functional/ReflectionAccessFilterTest.java index 6c9ab449..1d79b38e 100644 --- a/gson/src/test/java/com/google/gson/functional/ReflectionAccessFilterTest.java +++ b/gson/src/test/java/com/google/gson/functional/ReflectionAccessFilterTest.java @@ -1,8 +1,8 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; -import static org.junit.Assume.assumeNotNull; +import static org.junit.Assume.assumeNotNull;; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -52,12 +52,10 @@ public class ReflectionAccessFilterTest { fail("Expected exception; test needs to be run with Java >= 9"); } catch (JsonIOException expected) { // Note: This test is rather brittle and depends on the JDK implementation - assertEquals( - "Field 'java.io.File#path' is not accessible and ReflectionAccessFilter does not permit" + assertThat(expected).hasMessageThat() + .isEqualTo("Field 'java.io.File#path' is not accessible and ReflectionAccessFilter does not permit" + " making it accessible. Register a TypeAdapter for the declaring type, adjust the access" - + " filter or increase the visibility of the element and its declaring type.", - expected.getMessage() - ); + + " filter or increase the visibility of the element and its declaring type."); } @@ -72,7 +70,7 @@ public class ReflectionAccessFilterTest { Constructor pointConstructor = pointClass.getConstructor(int.class, int.class); Object point = pointConstructor.newInstance(1, 2); String json = gson.toJson(point); - assertEquals("{\"x\":1,\"y\":2}", json); + assertThat(json).isEqualTo("{\"x\":1,\"y\":2}"); } @Test @@ -85,12 +83,10 @@ public class ReflectionAccessFilterTest { gson.toJson(new ClassExtendingJdkClass()); fail("Expected exception; test needs to be run with Java >= 9"); } catch (JsonIOException expected) { - assertEquals( - "Field 'java.io.Reader#lock' is not accessible and ReflectionAccessFilter does not permit" - + " making it accessible. Register a TypeAdapter for the declaring type, adjust the access" - + " filter or increase the visibility of the element and its declaring type.", - expected.getMessage() - ); + assertThat(expected).hasMessageThat() + .isEqualTo("Field 'java.io.Reader#lock' is not accessible and ReflectionAccessFilter does not permit" + + " making it accessible. Register a TypeAdapter for the declaring type, adjust the access" + + " filter or increase the visibility of the element and its declaring type."); } } @@ -105,11 +101,9 @@ public class ReflectionAccessFilterTest { gson.toJson(Thread.currentThread()); fail(); } catch (JsonIOException expected) { - assertEquals( - "ReflectionAccessFilter does not permit using reflection for class java.lang.Thread." - + " Register a TypeAdapter for this type or adjust the access filter.", - expected.getMessage() - ); + assertThat(expected).hasMessageThat() + .isEqualTo("ReflectionAccessFilter does not permit using reflection for class java.lang.Thread." + + " Register a TypeAdapter for this type or adjust the access filter."); } } @@ -123,12 +117,10 @@ public class ReflectionAccessFilterTest { gson.toJson(new ClassExtendingJdkClass()); fail(); } catch (JsonIOException expected) { - assertEquals( - "ReflectionAccessFilter does not permit using reflection for class java.io.Reader" - + " (supertype of class com.google.gson.functional.ReflectionAccessFilterTest$ClassExtendingJdkClass)." - + " Register a TypeAdapter for this type or adjust the access filter.", - expected.getMessage() - ); + assertThat(expected).hasMessageThat() + .isEqualTo("ReflectionAccessFilter does not permit using reflection for class java.io.Reader" + + " (supertype of class com.google.gson.functional.ReflectionAccessFilterTest$ClassExtendingJdkClass)." + + " Register a TypeAdapter for this type or adjust the access filter."); } } @@ -153,13 +145,11 @@ public class ReflectionAccessFilterTest { gson.toJson(new ClassWithStaticField()); fail("Expected exception; test needs to be run with Java >= 9"); } catch (JsonIOException expected) { - assertEquals( - "Field 'com.google.gson.functional.ReflectionAccessFilterTest$ClassWithStaticField#i'" - + " is not accessible and ReflectionAccessFilter does not permit making it accessible." - + " Register a TypeAdapter for the declaring type, adjust the access filter or increase" - + " the visibility of the element and its declaring type.", - expected.getMessage() - ); + assertThat(expected).hasMessageThat() + .isEqualTo("Field 'com.google.gson.functional.ReflectionAccessFilterTest$ClassWithStaticField#i'" + + " is not accessible and ReflectionAccessFilter does not permit making it accessible." + + " Register a TypeAdapter for the declaring type, adjust the access filter or increase" + + " the visibility of the element and its declaring type."); } } @@ -196,21 +186,18 @@ public class ReflectionAccessFilterTest { gson.toJson(new SuperTestClass()); fail(); } catch (JsonIOException expected) { - assertEquals( - "ReflectionAccessFilter does not permit using reflection for class" + assertThat(expected).hasMessageThat().isEqualTo("ReflectionAccessFilter does not permit using reflection for class" + " com.google.gson.functional.ReflectionAccessFilterTest$SuperTestClass." - + " Register a TypeAdapter for this type or adjust the access filter.", - expected.getMessage() - ); + + " Register a TypeAdapter for this type or adjust the access filter."); } // But registration order is reversed, so filter for SubTestClass allows reflection String json = gson.toJson(new SubTestClass()); - assertEquals("{\"i\":1}", json); + assertThat(json).isEqualTo("{\"i\":1}"); // And unrelated class should not be affected json = gson.toJson(new OtherClass()); - assertEquals("{\"i\":2}", json); + assertThat(json).isEqualTo("{\"i\":2}"); } private static class ClassWithPrivateField { @@ -235,13 +222,10 @@ public class ReflectionAccessFilterTest { gson.toJson(new ExtendingClassWithPrivateField()); fail("Expected exception; test needs to be run with Java >= 9"); } catch (JsonIOException expected) { - assertEquals( - "Field 'com.google.gson.functional.ReflectionAccessFilterTest$ClassWithPrivateField#i'" + assertThat(expected).hasMessageThat().isEqualTo("Field 'com.google.gson.functional.ReflectionAccessFilterTest$ClassWithPrivateField#i'" + " is not accessible and ReflectionAccessFilter does not permit making it accessible." + " Register a TypeAdapter for the declaring type, adjust the access filter or increase" - + " the visibility of the element and its declaring type.", - expected.getMessage() - ); + + " the visibility of the element and its declaring type."); } gson = gson.newBuilder() @@ -255,7 +239,7 @@ public class ReflectionAccessFilterTest { // Inherited (inaccessible) private field should have been made accessible String json = gson.toJson(new ExtendingClassWithPrivateField()); - assertEquals("{\"i\":1}", json); + assertThat(json).isEqualTo("{\"i\":1}"); } private static class ClassWithPrivateNoArgsConstructor { @@ -277,12 +261,9 @@ public class ReflectionAccessFilterTest { gson.fromJson("{}", ClassWithPrivateNoArgsConstructor.class); fail("Expected exception; test needs to be run with Java >= 9"); } catch (JsonIOException expected) { - assertEquals( - "Unable to invoke no-args constructor of class com.google.gson.functional.ReflectionAccessFilterTest$ClassWithPrivateNoArgsConstructor;" + assertThat(expected).hasMessageThat().isEqualTo("Unable to invoke no-args constructor of class com.google.gson.functional.ReflectionAccessFilterTest$ClassWithPrivateNoArgsConstructor;" + " constructor is not accessible and ReflectionAccessFilter does not permit making it accessible. Register an" - + " InstanceCreator or a TypeAdapter for this type, change the visibility of the constructor or adjust the access filter.", - expected.getMessage() - ); + + " InstanceCreator or a TypeAdapter for this type, change the visibility of the constructor or adjust the access filter."); } } @@ -309,12 +290,9 @@ public class ReflectionAccessFilterTest { gson.fromJson("{}", ClassWithoutNoArgsConstructor.class); fail(); } catch (JsonIOException expected) { - assertEquals( - "Unable to create instance of class com.google.gson.functional.ReflectionAccessFilterTest$ClassWithoutNoArgsConstructor;" + assertThat(expected).hasMessageThat().isEqualTo("Unable to create instance of class com.google.gson.functional.ReflectionAccessFilterTest$ClassWithoutNoArgsConstructor;" + " ReflectionAccessFilter does not permit using reflection or Unsafe. Register an InstanceCreator" - + " or a TypeAdapter for this type or adjust the access filter to allow using reflection.", - expected.getMessage() - ); + + " or a TypeAdapter for this type or adjust the access filter to allow using reflection."); } // But should not fail when custom TypeAdapter is specified @@ -324,13 +302,13 @@ public class ReflectionAccessFilterTest { in.skipValue(); return new ClassWithoutNoArgsConstructor("TypeAdapter"); } - @Override public void write(JsonWriter out, ClassWithoutNoArgsConstructor value) throws IOException { + @Override public void write(JsonWriter out, ClassWithoutNoArgsConstructor value) { throw new AssertionError("Not needed for test"); } }) .create(); ClassWithoutNoArgsConstructor deserialized = gson.fromJson("{}", ClassWithoutNoArgsConstructor.class); - assertEquals("TypeAdapter", deserialized.s); + assertThat(deserialized.s).isEqualTo("TypeAdapter"); // But should not fail when custom InstanceCreator is specified gson = gsonBuilder @@ -341,7 +319,7 @@ public class ReflectionAccessFilterTest { }) .create(); deserialized = gson.fromJson("{}", ClassWithoutNoArgsConstructor.class); - assertEquals("InstanceCreator", deserialized.s); + assertThat(deserialized.s).isEqualTo("InstanceCreator"); } /** @@ -364,18 +342,15 @@ public class ReflectionAccessFilterTest { .create(); String json = gson.toJson(new OtherClass()); - assertEquals("123", json); + assertThat(json).isEqualTo("123"); // But deserialization should fail try { gson.fromJson("{}", OtherClass.class); fail(); } catch (JsonIOException expected) { - assertEquals( - "ReflectionAccessFilter does not permit using reflection for class com.google.gson.functional.ReflectionAccessFilterTest$OtherClass." - + " Register a TypeAdapter for this type or adjust the access filter.", - expected.getMessage() - ); + assertThat(expected).hasMessageThat().isEqualTo("ReflectionAccessFilter does not permit using reflection for class com.google.gson.functional.ReflectionAccessFilterTest$OtherClass." + + " Register a TypeAdapter for this type or adjust the access filter."); } } @@ -393,7 +368,7 @@ public class ReflectionAccessFilterTest { }) .create(); List deserialized = gson.fromJson("[1.0]", List.class); - assertEquals(1.0, deserialized.get(0)); + assertThat(deserialized.get(0)).isEqualTo(1.0); } /** @@ -410,7 +385,7 @@ public class ReflectionAccessFilterTest { }) .create(); List deserialized = gson.fromJson("[1.0]", LinkedList.class); - assertEquals(1.0, deserialized.get(0)); + assertThat(deserialized.get(0)).isEqualTo(1.0); } /** @@ -431,11 +406,8 @@ public class ReflectionAccessFilterTest { gson.fromJson("{}", Runnable.class); fail(); } catch (JsonIOException expected) { - assertEquals( - "Interfaces can't be instantiated! Register an InstanceCreator or a TypeAdapter for" - + " this type. Interface name: java.lang.Runnable", - expected.getMessage() - ); + assertThat(expected).hasMessageThat().isEqualTo("Interfaces can't be instantiated! Register an InstanceCreator or a TypeAdapter for" + + " this type. Interface name: java.lang.Runnable"); } } } diff --git a/gson/src/test/java/com/google/gson/functional/ReflectionAccessTest.java b/gson/src/test/java/com/google/gson/functional/ReflectionAccessTest.java index c731a8b5..30c0a2ff 100644 --- a/gson/src/test/java/com/google/gson/functional/ReflectionAccessTest.java +++ b/gson/src/test/java/com/google/gson/functional/ReflectionAccessTest.java @@ -1,8 +1,6 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.Gson; @@ -65,7 +63,7 @@ public class ReflectionAccessTest { gson.getAdapter(clazz); fail(); } catch (SecurityException e) { - assertEquals("Gson: no-member-access", e.getMessage()); + assertThat(e.getMessage()).isEqualTo("Gson: no-member-access"); } final AtomicBoolean wasReadCalled = new AtomicBoolean(false); @@ -85,9 +83,9 @@ public class ReflectionAccessTest { ) .create(); - assertEquals("\"custom-write\"", gson.toJson(null, clazz)); - assertNull(gson.fromJson("{}", clazz)); - assertTrue(wasReadCalled.get()); + assertThat(gson.toJson(null, clazz)).isEqualTo("\"custom-write\""); + assertThat(gson.fromJson("{}", clazz)).isNull(); + assertThat(wasReadCalled.get()).isTrue(); } finally { System.setSecurityManager(original); } @@ -108,7 +106,7 @@ public class ReflectionAccessTest { public void testSerializeInternalImplementationObject() { Gson gson = new Gson(); String json = gson.toJson(Collections.emptyList()); - assertEquals("[]", json); + assertThat(json).isEqualTo("[]"); // But deserialization should fail Class internalClass = Collections.emptyList().getClass(); @@ -118,10 +116,8 @@ public class ReflectionAccessTest { } catch (JsonSyntaxException e) { fail("Unexpected exception; test has to be run with `--illegal-access=deny`"); } catch (JsonIOException expected) { - assertTrue(expected.getMessage().startsWith( - "Failed making constructor 'java.util.Collections$EmptyList()' accessible;" - + " either increase its visibility or write a custom InstanceCreator or TypeAdapter for its declaring type: " - )); + assertThat(expected).hasMessageThat().startsWith("Failed making constructor 'java.util.Collections$EmptyList()' accessible;" + + " either increase its visibility or write a custom InstanceCreator or TypeAdapter for its declaring type: "); } } } diff --git a/gson/src/test/java/com/google/gson/functional/ReusedTypeVariablesFullyResolveTest.java b/gson/src/test/java/com/google/gson/functional/ReusedTypeVariablesFullyResolveTest.java index 10c7c6db..f65113fc 100644 --- a/gson/src/test/java/com/google/gson/functional/ReusedTypeVariablesFullyResolveTest.java +++ b/gson/src/test/java/com/google/gson/functional/ReusedTypeVariablesFullyResolveTest.java @@ -1,8 +1,6 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -31,14 +29,14 @@ public class ReusedTypeVariablesFullyResolveTest { public void testGenericsPreservation() { TestEnumSetCollection withSet = gson.fromJson("{\"collection\":[\"ONE\",\"THREE\"]}", TestEnumSetCollection.class); Iterator iterator = withSet.collection.iterator(); - assertNotNull(withSet); - assertNotNull(withSet.collection); - assertEquals(2, withSet.collection.size()); + assertThat(withSet).isNotNull(); + assertThat(withSet.collection).isNotNull(); + assertThat(withSet.collection).hasSize(2); TestEnum first = iterator.next(); TestEnum second = iterator.next(); - assertTrue(first instanceof TestEnum); - assertTrue(second instanceof TestEnum); + assertThat(first).isInstanceOf(TestEnum.class); + assertThat(second).isInstanceOf(TestEnum.class); } enum TestEnum { ONE, TWO, THREE } diff --git a/gson/src/test/java/com/google/gson/functional/RuntimeTypeAdapterFactoryFunctionalTest.java b/gson/src/test/java/com/google/gson/functional/RuntimeTypeAdapterFactoryFunctionalTest.java index c17cc54a..24f20449 100644 --- a/gson/src/test/java/com/google/gson/functional/RuntimeTypeAdapterFactoryFunctionalTest.java +++ b/gson/src/test/java/com/google/gson/functional/RuntimeTypeAdapterFactoryFunctionalTest.java @@ -15,7 +15,7 @@ */ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.JsonElement; @@ -46,17 +46,17 @@ public final class RuntimeTypeAdapterFactoryFunctionalTest { * work correctly for {@link Gson#getDelegateAdapter(TypeAdapterFactory, TypeToken)}. */ @Test - public void testSubclassesAutomaticallySerialized() throws Exception { + public void testSubclassesAutomaticallySerialized() { Shape shape = new Circle(25); String json = gson.toJson(shape); shape = gson.fromJson(json, Shape.class); - assertEquals(25, ((Circle)shape).radius); + assertThat(((Circle)shape).radius).isEqualTo(25); shape = new Square(15); json = gson.toJson(shape); shape = gson.fromJson(json, Shape.class); - assertEquals(15, ((Square)shape).side); - assertEquals(ShapeType.SQUARE, shape.type); + assertThat(((Square)shape).side).isEqualTo(15); + assertThat(shape.type).isEqualTo(ShapeType.SQUARE); } @JsonAdapter(Shape.JsonAdapterFactory.class) @@ -161,7 +161,7 @@ public final class RuntimeTypeAdapterFactoryFunctionalTest { } return new TypeAdapter() { - @Override public R read(JsonReader in) throws IOException { + @Override public R read(JsonReader in) { JsonElement jsonElement = Streams.parse(in); JsonElement labelJsonElement = jsonElement.getAsJsonObject().get(typeFieldName); if (labelJsonElement == null) { diff --git a/gson/src/test/java/com/google/gson/functional/SecurityTest.java b/gson/src/test/java/com/google/gson/functional/SecurityTest.java index 9e9272e1..33a7f4b3 100644 --- a/gson/src/test/java/com/google/gson/functional/SecurityTest.java +++ b/gson/src/test/java/com/google/gson/functional/SecurityTest.java @@ -16,8 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -47,7 +46,7 @@ public class SecurityTest { public void testNonExecutableJsonSerialization() { Gson gson = gsonBuilder.generateNonExecutableJson().create(); String json = gson.toJson(new BagOfPrimitives()); - assertTrue(json.startsWith(JSON_NON_EXECUTABLE_PREFIX)); + assertThat(json.startsWith(JSON_NON_EXECUTABLE_PREFIX)).isTrue(); } @Test @@ -55,14 +54,14 @@ public class SecurityTest { String json = JSON_NON_EXECUTABLE_PREFIX + "{longValue:1}"; Gson gson = gsonBuilder.create(); BagOfPrimitives target = gson.fromJson(json, BagOfPrimitives.class); - assertEquals(1, target.longValue); + assertThat(target.longValue).isEqualTo(1); } @Test public void testJsonWithNonExectuableTokenSerialization() { Gson gson = gsonBuilder.generateNonExecutableJson().create(); String json = gson.toJson(JSON_NON_EXECUTABLE_PREFIX); - assertTrue(json.contains(")]}'\n")); + assertThat(json).contains(")]}'\n"); } /** @@ -74,7 +73,7 @@ public class SecurityTest { Gson gson = gsonBuilder.create(); String json = JSON_NON_EXECUTABLE_PREFIX + "{stringValue:')]}\\u0027\\n'}"; BagOfPrimitives target = gson.fromJson(json, BagOfPrimitives.class); - assertEquals(")]}'\n", target.stringValue); + assertThat(target.stringValue).isEqualTo(")]}'\n"); } /** @@ -87,7 +86,7 @@ public class SecurityTest { Gson gson = gsonBuilder.generateNonExecutableJson().create(); String json = JSON_NON_EXECUTABLE_PREFIX + "{intValue:2,stringValue:')]}\\u0027\\n'}"; BagOfPrimitives target = gson.fromJson(json, BagOfPrimitives.class); - assertEquals(")]}'\n", target.stringValue); - assertEquals(2, target.intValue); + assertThat(target.stringValue).isEqualTo(")]}'\n"); + assertThat(target.intValue).isEqualTo(2); } } diff --git a/gson/src/test/java/com/google/gson/functional/SerializedNameTest.java b/gson/src/test/java/com/google/gson/functional/SerializedNameTest.java index a1633700..32f2be1e 100644 --- a/gson/src/test/java/com/google/gson/functional/SerializedNameTest.java +++ b/gson/src/test/java/com/google/gson/functional/SerializedNameTest.java @@ -15,7 +15,7 @@ */ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; @@ -28,23 +28,23 @@ public final class SerializedNameTest { public void testFirstNameIsChosenForSerialization() { MyClass target = new MyClass("v1", "v2"); // Ensure name1 occurs exactly once, and name2 and name3 don't appear - assertEquals("{\"name\":\"v1\",\"name1\":\"v2\"}", gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo("{\"name\":\"v1\",\"name1\":\"v2\"}"); } @Test public void testMultipleNamesDeserializedCorrectly() { - assertEquals("v1", gson.fromJson("{'name':'v1'}", MyClass.class).a); + assertThat(gson.fromJson("{'name':'v1'}", MyClass.class).a).isEqualTo("v1"); // Both name1 and name2 gets deserialized to b - assertEquals("v11", gson.fromJson("{'name1':'v11'}", MyClass.class).b); - assertEquals("v2", gson.fromJson("{'name2':'v2'}", MyClass.class).b); - assertEquals("v3", gson.fromJson("{'name3':'v3'}", MyClass.class).b); + assertThat(gson.fromJson("{'name1':'v11'}", MyClass.class).b).isEqualTo("v11"); + assertThat(gson.fromJson("{'name2':'v2'}", MyClass.class).b).isEqualTo("v2"); + assertThat(gson.fromJson("{'name3':'v3'}", MyClass.class).b).isEqualTo("v3"); } @Test public void testMultipleNamesInTheSameString() { // The last value takes precedence - assertEquals("v3", gson.fromJson("{'name1':'v1','name2':'v2','name3':'v3'}", MyClass.class).b); + assertThat(gson.fromJson("{'name1':'v1','name2':'v2','name3':'v3'}", MyClass.class).b).isEqualTo("v3"); } private static final class MyClass { diff --git a/gson/src/test/java/com/google/gson/functional/StreamingTypeAdaptersTest.java b/gson/src/test/java/com/google/gson/functional/StreamingTypeAdaptersTest.java index ecd7dc35..6e13624f 100644 --- a/gson/src/test/java/com/google/gson/functional/StreamingTypeAdaptersTest.java +++ b/gson/src/test/java/com/google/gson/functional/StreamingTypeAdaptersTest.java @@ -16,9 +16,8 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; +import static com.google.common.truth.Truth.assertWithMessage; import static org.junit.Assert.fail; import com.google.gson.Gson; @@ -52,9 +51,9 @@ public final class StreamingTypeAdaptersTest { truck.passengers = Arrays.asList(new Person("Jesse", 29), new Person("Jodie", 29)); truck.horsePower = 300; - assertEquals("{'horsePower':300.0," - + "'passengers':[{'age':29,'name':'Jesse'},{'age':29,'name':'Jodie'}]}", - truckAdapter.toJson(truck).replace('\"', '\'')); + assertThat(truckAdapter.toJson(truck).replace('\"', '\'')) + .isEqualTo("{'horsePower':300.0," + + "'passengers':[{'age':29,'name':'Jesse'},{'age':29,'name':'Jodie'}]}"); } @Test @@ -62,36 +61,37 @@ public final class StreamingTypeAdaptersTest { String json = "{'horsePower':300.0," + "'passengers':[{'age':29,'name':'Jesse'},{'age':29,'name':'Jodie'}]}"; Truck truck = truckAdapter.fromJson(json.replace('\'', '\"')); - assertEquals(300.0, truck.horsePower, 0); - assertEquals(Arrays.asList(new Person("Jesse", 29), new Person("Jodie", 29)), truck.passengers); + assertThat(truck.horsePower).isEqualTo(300.0); + assertThat(truck.passengers) + .isEqualTo(Arrays.asList(new Person("Jesse", 29), new Person("Jodie", 29))); } @Test public void testSerializeNullField() { Truck truck = new Truck(); truck.passengers = null; - assertEquals("{'horsePower':0.0,'passengers':null}", - truckAdapter.toJson(truck).replace('\"', '\'')); + assertThat(truckAdapter.toJson(truck).replace('\"', '\'')) + .isEqualTo("{'horsePower':0.0,'passengers':null}"); } @Test public void testDeserializeNullField() throws IOException { Truck truck = truckAdapter.fromJson("{'horsePower':0.0,'passengers':null}".replace('\'', '\"')); - assertNull(truck.passengers); + assertThat(truck.passengers).isNull(); } @Test public void testSerializeNullObject() { Truck truck = new Truck(); truck.passengers = Arrays.asList((Person) null); - assertEquals("{'horsePower':0.0,'passengers':[null]}", - truckAdapter.toJson(truck).replace('\"', '\'')); + assertThat(truckAdapter.toJson(truck).replace('\"', '\'')) + .isEqualTo("{'horsePower':0.0,'passengers':[null]}"); } @Test public void testDeserializeNullObject() throws IOException { Truck truck = truckAdapter.fromJson("{'horsePower':0.0,'passengers':[null]}".replace('\'', '\"')); - assertEquals(Arrays.asList((Person) null), truck.passengers); + assertThat(truck.passengers).isEqualTo(Arrays.asList((Person) null)); } @Test @@ -99,15 +99,15 @@ public final class StreamingTypeAdaptersTest { usePersonNameAdapter(); Truck truck = new Truck(); truck.passengers = Arrays.asList(new Person("Jesse", 29), new Person("Jodie", 29)); - assertEquals("{'horsePower':0.0,'passengers':['Jesse','Jodie']}", - truckAdapter.toJson(truck).replace('\"', '\'')); + assertThat(truckAdapter.toJson(truck).replace('\"', '\'')) + .isEqualTo("{'horsePower':0.0,'passengers':['Jesse','Jodie']}"); } @Test public void testDeserializeWithCustomTypeAdapter() throws IOException { usePersonNameAdapter(); Truck truck = truckAdapter.fromJson("{'horsePower':0.0,'passengers':['Jesse','Jodie']}".replace('\'', '\"')); - assertEquals(Arrays.asList(new Person("Jesse", -1), new Person("Jodie", -1)), truck.passengers); + assertThat(truck.passengers).isEqualTo(Arrays.asList(new Person("Jesse", -1), new Person("Jodie", -1))); } private void usePersonNameAdapter() { @@ -129,7 +129,7 @@ public final class StreamingTypeAdaptersTest { Map map = new LinkedHashMap<>(); map.put("a", 5.0); map.put("b", 10.0); - assertEquals("{'a':5.0,'b':10.0}", mapAdapter.toJson(map).replace('"', '\'')); + assertThat(mapAdapter.toJson(map).replace('"', '\'')).isEqualTo("{'a':5.0,'b':10.0}"); } @Test @@ -137,27 +137,27 @@ public final class StreamingTypeAdaptersTest { Map map = new LinkedHashMap<>(); map.put("a", 5.0); map.put("b", 10.0); - assertEquals(map, mapAdapter.fromJson("{'a':5.0,'b':10.0}".replace('\'', '\"'))); + assertThat(mapAdapter.fromJson("{'a':5.0,'b':10.0}".replace('\'', '\"'))).isEqualTo(map); } @Test public void testSerialize1dArray() { TypeAdapter arrayAdapter = miniGson.getAdapter(new TypeToken() {}); - assertEquals("[1.0,2.0,3.0]", arrayAdapter.toJson(new double[]{ 1.0, 2.0, 3.0 })); + assertThat(arrayAdapter.toJson(new double[]{ 1.0, 2.0, 3.0 })).isEqualTo("[1.0,2.0,3.0]"); } @Test public void testDeserialize1dArray() throws IOException { TypeAdapter arrayAdapter = miniGson.getAdapter(new TypeToken() {}); double[] array = arrayAdapter.fromJson("[1.0,2.0,3.0]"); - assertTrue(Arrays.toString(array), Arrays.equals(new double[]{1.0, 2.0, 3.0}, array)); + assertWithMessage(Arrays.toString(array)).that(Arrays.equals(new double[]{1.0, 2.0, 3.0}, array)).isTrue(); } @Test public void testSerialize2dArray() { TypeAdapter arrayAdapter = miniGson.getAdapter(new TypeToken() {}); double[][] array = { {1.0, 2.0 }, { 3.0 } }; - assertEquals("[[1.0,2.0],[3.0]]", arrayAdapter.toJson(array)); + assertThat(arrayAdapter.toJson(array)).isEqualTo("[[1.0,2.0],[3.0]]"); } @Test @@ -165,7 +165,7 @@ public final class StreamingTypeAdaptersTest { TypeAdapter arrayAdapter = miniGson.getAdapter(new TypeToken() {}); double[][] array = arrayAdapter.fromJson("[[1.0,2.0],[3.0]]"); double[][] expected = { {1.0, 2.0 }, { 3.0 } }; - assertTrue(Arrays.toString(array), Arrays.deepEquals(expected, array)); + assertWithMessage(Arrays.toString(array)).that(Arrays.deepEquals(expected, array)).isTrue(); } @Test @@ -196,12 +196,12 @@ public final class StreamingTypeAdaptersTest { fail(); } catch (JsonSyntaxException expected) {} gson = new GsonBuilder().registerTypeAdapter(Person.class, typeAdapter.nullSafe()).create(); - assertEquals("{\"horsePower\":1.0,\"passengers\":[null,\"jesse,30\"]}", - gson.toJson(truck, Truck.class)); + assertThat(gson.toJson(truck, Truck.class)) + .isEqualTo("{\"horsePower\":1.0,\"passengers\":[null,\"jesse,30\"]}"); truck = gson.fromJson(json, Truck.class); - assertEquals(1.0D, truck.horsePower, 0); - assertNull(truck.passengers.get(0)); - assertEquals("jesse", truck.passengers.get(1).name); + assertThat(truck.horsePower).isEqualTo(1.0D); + assertThat(truck.passengers.get(0)).isNull(); + assertThat(truck.passengers.get(1).name).isEqualTo("jesse"); } @Test @@ -210,10 +210,10 @@ public final class StreamingTypeAdaptersTest { Node root = new Node("root"); root.left = new Node("left"); root.right = new Node("right"); - assertEquals("{'label':'root'," - + "'left':{'label':'left','left':null,'right':null}," - + "'right':{'label':'right','left':null,'right':null}}", - nodeAdapter.toJson(root).replace('"', '\'')); + assertThat(nodeAdapter.toJson(root).replace('"', '\'')) + .isEqualTo("{'label':'root'," + + "'left':{'label':'left','left':null,'right':null}," + + "'right':{'label':'right','left':null,'right':null}}"); } @Test @@ -228,8 +228,8 @@ public final class StreamingTypeAdaptersTest { truckObject.add("passengers", passengersArray); Truck truck = truckAdapter.fromJsonTree(truckObject); - assertEquals(300.0, truck.horsePower, 0); - assertEquals(Arrays.asList(new Person("Jesse", 30)), truck.passengers); + assertThat(truck.horsePower).isEqualTo(300.0); + assertThat(truck.passengers).isEqualTo(Arrays.asList(new Person("Jesse", 30))); } static class Truck { diff --git a/gson/src/test/java/com/google/gson/functional/StringTest.java b/gson/src/test/java/com/google/gson/functional/StringTest.java index 80c73831..b66a01c5 100644 --- a/gson/src/test/java/com/google/gson/functional/StringTest.java +++ b/gson/src/test/java/com/google/gson/functional/StringTest.java @@ -1,6 +1,6 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import org.junit.Before; @@ -21,94 +21,94 @@ public class StringTest { } @Test - public void testStringValueSerialization() throws Exception { + public void testStringValueSerialization() { String value = "someRandomStringValue"; - assertEquals('"' + value + '"', gson.toJson(value)); + assertThat(gson.toJson(value)).isEqualTo('"' + value + '"'); } @Test - public void testStringValueDeserialization() throws Exception { + public void testStringValueDeserialization() { String value = "someRandomStringValue"; String actual = gson.fromJson("\"" + value + "\"", String.class); - assertEquals(value, actual); + assertThat(actual).isEqualTo(value); } @Test - public void testSingleQuoteInStringSerialization() throws Exception { + public void testSingleQuoteInStringSerialization() { String valueWithQuotes = "beforeQuote'afterQuote"; String jsonRepresentation = gson.toJson(valueWithQuotes); - assertEquals(valueWithQuotes, gson.fromJson(jsonRepresentation, String.class)); + assertThat(gson.fromJson(jsonRepresentation, String.class)).isEqualTo(valueWithQuotes); } @Test - public void testEscapedCtrlNInStringSerialization() throws Exception { + public void testEscapedCtrlNInStringSerialization() { String value = "a\nb"; String json = gson.toJson(value); - assertEquals("\"a\\nb\"", json); + assertThat(json).isEqualTo("\"a\\nb\""); } @Test - public void testEscapedCtrlNInStringDeserialization() throws Exception { + public void testEscapedCtrlNInStringDeserialization() { String json = "'a\\nb'"; String actual = gson.fromJson(json, String.class); - assertEquals("a\nb", actual); + assertThat(actual).isEqualTo("a\nb"); } @Test - public void testEscapedCtrlRInStringSerialization() throws Exception { + public void testEscapedCtrlRInStringSerialization() { String value = "a\rb"; String json = gson.toJson(value); - assertEquals("\"a\\rb\"", json); + assertThat(json).isEqualTo("\"a\\rb\""); } @Test - public void testEscapedCtrlRInStringDeserialization() throws Exception { + public void testEscapedCtrlRInStringDeserialization() { String json = "'a\\rb'"; String actual = gson.fromJson(json, String.class); - assertEquals("a\rb", actual); + assertThat(actual).isEqualTo("a\rb"); } @Test - public void testEscapedBackslashInStringSerialization() throws Exception { + public void testEscapedBackslashInStringSerialization() { String value = "a\\b"; String json = gson.toJson(value); - assertEquals("\"a\\\\b\"", json); + assertThat(json).isEqualTo("\"a\\\\b\""); } @Test - public void testEscapedBackslashInStringDeserialization() throws Exception { + public void testEscapedBackslashInStringDeserialization() { String actual = gson.fromJson("'a\\\\b'", String.class); - assertEquals("a\\b", actual); + assertThat(actual).isEqualTo("a\\b"); } @Test - public void testSingleQuoteInStringDeserialization() throws Exception { + public void testSingleQuoteInStringDeserialization() { String value = "beforeQuote'afterQuote"; String actual = gson.fromJson("\"" + value + "\"", String.class); - assertEquals(value, actual); + assertThat(actual).isEqualTo(value); } @Test - public void testEscapingQuotesInStringSerialization() throws Exception { + public void testEscapingQuotesInStringSerialization() { String valueWithQuotes = "beforeQuote\"afterQuote"; String jsonRepresentation = gson.toJson(valueWithQuotes); String target = gson.fromJson(jsonRepresentation, String.class); - assertEquals(valueWithQuotes, target); + assertThat(target).isEqualTo(valueWithQuotes); } @Test - public void testEscapingQuotesInStringDeserialization() throws Exception { + public void testEscapingQuotesInStringDeserialization() { String value = "beforeQuote\\\"afterQuote"; String actual = gson.fromJson("\"" + value + "\"", String.class); String expected = "beforeQuote\"afterQuote"; - assertEquals(expected, actual); + assertThat(actual).isEqualTo(expected); } @Test - public void testStringValueAsSingleElementArraySerialization() throws Exception { + public void testStringValueAsSingleElementArraySerialization() { String[] target = {"abc"}; - assertEquals("[\"abc\"]", gson.toJson(target)); - assertEquals("[\"abc\"]", gson.toJson(target, String[].class)); + assertThat(gson.toJson(target)).isEqualTo("[\"abc\"]"); + assertThat(gson.toJson(target, String[].class)).isEqualTo("[\"abc\"]"); } @Test @@ -116,7 +116,7 @@ public class StringTest { String value = "/"; String json = "'\\/'"; String actual = gson.fromJson(json, String.class); - assertEquals(value, actual); + assertThat(actual).isEqualTo(value); } /** @@ -126,7 +126,7 @@ public class StringTest { public void testAssignmentCharSerialization() { String value = "abc="; String json = gson.toJson(value); - assertEquals("\"abc\\u003d\"", json); + assertThat(json).isEqualTo("\"abc\\u003d\""); } /** @@ -136,24 +136,24 @@ public class StringTest { public void testAssignmentCharDeserialization() { String json = "\"abc=\""; String value = gson.fromJson(json, String.class); - assertEquals("abc=", value); + assertThat(value).isEqualTo("abc="); json = "'abc\u003d'"; value = gson.fromJson(json, String.class); - assertEquals("abc=", value); + assertThat(value).isEqualTo("abc="); } @Test public void testJavascriptKeywordsInStringSerialization() { String value = "null true false function"; String json = gson.toJson(value); - assertEquals("\"" + value + "\"", json); + assertThat(json).isEqualTo("\"" + value + "\""); } @Test public void testJavascriptKeywordsInStringDeserialization() { String json = "'null true false function'"; String value = gson.fromJson(json, String.class); - assertEquals(json.substring(1, json.length() - 1), value); + assertThat(json.substring(1, json.length() - 1)).isEqualTo(value); } } diff --git a/gson/src/test/java/com/google/gson/functional/ToNumberPolicyFunctionalTest.java b/gson/src/test/java/com/google/gson/functional/ToNumberPolicyFunctionalTest.java index 1e772836..d500546f 100644 --- a/gson/src/test/java/com/google/gson/functional/ToNumberPolicyFunctionalTest.java +++ b/gson/src/test/java/com/google/gson/functional/ToNumberPolicyFunctionalTest.java @@ -16,7 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.Gson; @@ -28,7 +28,6 @@ import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; import java.lang.reflect.Type; import java.math.BigDecimal; -import java.util.Arrays; import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -38,10 +37,10 @@ public class ToNumberPolicyFunctionalTest { @Test public void testDefault() { Gson gson = new Gson(); - assertEquals(null, gson.fromJson("null", Object.class)); - assertEquals(10D, gson.fromJson("10", Object.class)); - assertEquals(null, gson.fromJson("null", Number.class)); - assertEquals(new LazilyParsedNumber("10"), gson.fromJson("10", Number.class)); + assertThat(gson.fromJson("null", Object.class)).isEqualTo(null); + assertThat(gson.fromJson("10", Object.class)).isEqualTo(10D); + assertThat(gson.fromJson("null", Number.class)).isEqualTo(null); + assertThat(gson.fromJson("10", Number.class)).isEqualTo(new LazilyParsedNumber("10")); } @Test @@ -50,10 +49,10 @@ public class ToNumberPolicyFunctionalTest { .setObjectToNumberStrategy(ToNumberPolicy.DOUBLE) .setNumberToNumberStrategy(ToNumberPolicy.DOUBLE) .create(); - assertEquals(null, gson.fromJson("null", Object.class)); - assertEquals(10.0, gson.fromJson("10", Object.class)); - assertEquals(null, gson.fromJson("null", Number.class)); - assertEquals(10.0, gson.fromJson("10", Number.class)); + assertThat(gson.fromJson("null", Object.class)).isEqualTo(null); + assertThat(gson.fromJson("10", Object.class)).isEqualTo(10.0); + assertThat(gson.fromJson("null", Number.class)).isEqualTo(null); + assertThat(gson.fromJson("10", Number.class)).isEqualTo(10.0); } @Test @@ -62,10 +61,10 @@ public class ToNumberPolicyFunctionalTest { .setObjectToNumberStrategy(ToNumberPolicy.LAZILY_PARSED_NUMBER) .setNumberToNumberStrategy(ToNumberPolicy.LAZILY_PARSED_NUMBER) .create(); - assertEquals(null, gson.fromJson("null", Object.class)); - assertEquals(new LazilyParsedNumber("10"), gson.fromJson("10", Object.class)); - assertEquals(null, gson.fromJson("null", Number.class)); - assertEquals(new LazilyParsedNumber("10"), gson.fromJson("10", Number.class)); + assertThat(gson.fromJson("null", Object.class)).isEqualTo(null); + assertThat(gson.fromJson("10", Object.class)).isEqualTo(new LazilyParsedNumber("10")); + assertThat(gson.fromJson("null", Number.class)).isEqualTo(null); + assertThat(gson.fromJson("10", Number.class)).isEqualTo(new LazilyParsedNumber("10")); } @Test @@ -74,12 +73,12 @@ public class ToNumberPolicyFunctionalTest { .setObjectToNumberStrategy(ToNumberPolicy.LONG_OR_DOUBLE) .setNumberToNumberStrategy(ToNumberPolicy.LONG_OR_DOUBLE) .create(); - assertEquals(null, gson.fromJson("null", Object.class)); - assertEquals(10L, gson.fromJson("10", Object.class)); - assertEquals(10.0, gson.fromJson("10.0", Object.class)); - assertEquals(null, gson.fromJson("null", Number.class)); - assertEquals(10L, gson.fromJson("10", Number.class)); - assertEquals(10.0, gson.fromJson("10.0", Number.class)); + assertThat(gson.fromJson("null", Object.class)).isEqualTo(null); + assertThat(gson.fromJson("10", Object.class)).isEqualTo(10L); + assertThat(gson.fromJson("10.0", Object.class)).isEqualTo(10.0); + assertThat(gson.fromJson("null", Number.class)).isEqualTo(null); + assertThat(gson.fromJson("10", Number.class)).isEqualTo(10L); + assertThat(gson.fromJson("10.0", Number.class)).isEqualTo(10.0); } @Test @@ -88,14 +87,14 @@ public class ToNumberPolicyFunctionalTest { .setObjectToNumberStrategy(ToNumberPolicy.BIG_DECIMAL) .setNumberToNumberStrategy(ToNumberPolicy.BIG_DECIMAL) .create(); - assertEquals(null, gson.fromJson("null", Object.class)); - assertEquals(new BigDecimal("10"), gson.fromJson("10", Object.class)); - assertEquals(new BigDecimal("10.0"), gson.fromJson("10.0", Object.class)); - assertEquals(null, gson.fromJson("null", Number.class)); - assertEquals(new BigDecimal("10"), gson.fromJson("10", Number.class)); - assertEquals(new BigDecimal("10.0"), gson.fromJson("10.0", Number.class)); - assertEquals(new BigDecimal("3.141592653589793238462643383279"), gson.fromJson("3.141592653589793238462643383279", BigDecimal.class)); - assertEquals(new BigDecimal("1e400"), gson.fromJson("1e400", BigDecimal.class)); + assertThat(gson.fromJson("null", Object.class)).isEqualTo(null); + assertThat(gson.fromJson("10", Object.class)).isEqualTo(new BigDecimal("10")); + assertThat(gson.fromJson("10.0", Object.class)).isEqualTo(new BigDecimal("10.0")); + assertThat(gson.fromJson("null", Number.class)).isEqualTo(null); + assertThat(gson.fromJson("10", Number.class)).isEqualTo(new BigDecimal("10")); + assertThat(gson.fromJson("10.0", Number.class)).isEqualTo(new BigDecimal("10.0")); + assertThat(gson.fromJson("3.141592653589793238462643383279", BigDecimal.class)).isEqualTo(new BigDecimal("3.141592653589793238462643383279")); + assertThat(gson.fromJson("1e400", BigDecimal.class)).isEqualTo(new BigDecimal("1e400")); } @Test @@ -110,10 +109,10 @@ public class ToNumberPolicyFunctionalTest { expected.add(10.0); Type objectCollectionType = new TypeToken>() { }.getType(); Collection objects = gson.fromJson("[null,10,10.0]", objectCollectionType); - assertEquals(expected, objects); + assertThat(objects).isEqualTo(expected); Type numberCollectionType = new TypeToken>() { }.getType(); Collection numbers = gson.fromJson("[null,10,10.0]", numberCollectionType); - assertEquals(expected, numbers); + assertThat(numbers).isEqualTo(expected); } @Test @@ -129,7 +128,7 @@ public class ToNumberPolicyFunctionalTest { .setNumberToNumberStrategy(fail) .create(); List numbers = gson.fromJson("[null, 10, 20, 30]", new TypeToken>() {}.getType()); - assertEquals(Arrays.asList(null, (byte) 10, (byte) 20, (byte) 30), numbers); + assertThat(numbers).containsExactly(null, (byte) 10, (byte) 20, (byte) 30).inOrder(); try { gson.fromJson("[null, 10, 20, 30]", new TypeToken>() {}.getType()); fail(); diff --git a/gson/src/test/java/com/google/gson/functional/TreeTypeAdaptersTest.java b/gson/src/test/java/com/google/gson/functional/TreeTypeAdaptersTest.java index be079af0..9e0382d0 100644 --- a/gson/src/test/java/com/google/gson/functional/TreeTypeAdaptersTest.java +++ b/gson/src/test/java/com/google/gson/functional/TreeTypeAdaptersTest.java @@ -16,8 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -65,9 +64,9 @@ public class TreeTypeAdaptersTest { @Test public void testSerializeId() { String json = gson.toJson(course, TYPE_COURSE_HISTORY); - assertTrue(json.contains(String.valueOf(COURSE_ID.getValue()))); - assertTrue(json.contains(String.valueOf(STUDENT1_ID.getValue()))); - assertTrue(json.contains(String.valueOf(STUDENT2_ID.getValue()))); + assertThat(json).contains(String.valueOf(COURSE_ID.getValue())); + assertThat(json).contains(String.valueOf(STUDENT1_ID.getValue())); + assertThat(json).contains(String.valueOf(STUDENT2_ID.getValue())); } @Test @@ -75,9 +74,9 @@ public class TreeTypeAdaptersTest { String json = "{courseId:1,students:[{id:1,name:'first'},{id:6,name:'second'}]," + "numAssignments:4,assignment:{}}"; Course target = gson.fromJson(json, TYPE_COURSE_HISTORY); - assertEquals("1", target.getStudents().get(0).id.getValue()); - assertEquals("6", target.getStudents().get(1).id.getValue()); - assertEquals("1", target.getId().getValue()); + assertThat(target.getStudents().get(0).id.getValue()).isEqualTo("1"); + assertThat(target.getStudents().get(1).id.getValue()).isEqualTo("6"); + assertThat(target.getId().getValue()).isEqualTo("1"); } private static final class Id { diff --git a/gson/src/test/java/com/google/gson/functional/TypeAdapterPrecedenceTest.java b/gson/src/test/java/com/google/gson/functional/TypeAdapterPrecedenceTest.java index 28120bf3..e96175a3 100644 --- a/gson/src/test/java/com/google/gson/functional/TypeAdapterPrecedenceTest.java +++ b/gson/src/test/java/com/google/gson/functional/TypeAdapterPrecedenceTest.java @@ -16,7 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -42,8 +42,8 @@ public final class TypeAdapterPrecedenceTest { .registerTypeAdapter(Foo.class, newDeserializer("deserializer 1")) .registerTypeAdapter(Foo.class, newDeserializer("deserializer 2")) .create(); - assertEquals("\"foo via serializer 2\"", gson.toJson(new Foo("foo"))); - assertEquals("foo via deserializer 2", gson.fromJson("foo", Foo.class).name); + assertThat(gson.toJson(new Foo("foo"))).isEqualTo("\"foo via serializer 2\""); + assertThat(gson.fromJson("foo", Foo.class).name).isEqualTo("foo via deserializer 2"); } @Test @@ -52,8 +52,8 @@ public final class TypeAdapterPrecedenceTest { .registerTypeAdapter(Foo.class, newTypeAdapter("type adapter 1")) .registerTypeAdapter(Foo.class, newTypeAdapter("type adapter 2")) .create(); - assertEquals("\"foo via type adapter 2\"", gson.toJson(new Foo("foo"))); - assertEquals("foo via type adapter 2", gson.fromJson("foo", Foo.class).name); + assertThat(gson.toJson(new Foo("foo"))).isEqualTo("\"foo via type adapter 2\""); + assertThat(gson.fromJson("foo", Foo.class).name).isEqualTo("foo via type adapter 2"); } @Test @@ -63,8 +63,8 @@ public final class TypeAdapterPrecedenceTest { .registerTypeAdapter(Foo.class, newDeserializer("deserializer")) .registerTypeAdapter(Foo.class, newTypeAdapter("type adapter")) .create(); - assertEquals("\"foo via type adapter\"", gson.toJson(new Foo("foo"))); - assertEquals("foo via type adapter", gson.fromJson("foo", Foo.class).name); + assertThat(gson.toJson(new Foo("foo"))).isEqualTo("\"foo via type adapter\""); + assertThat(gson.fromJson("foo", Foo.class).name).isEqualTo("foo via type adapter"); } @Test @@ -74,8 +74,8 @@ public final class TypeAdapterPrecedenceTest { .registerTypeAdapter(Foo.class, newSerializer("serializer")) .registerTypeAdapter(Foo.class, newDeserializer("deserializer")) .create(); - assertEquals("\"foo via serializer\"", gson.toJson(new Foo("foo"))); - assertEquals("foo via deserializer", gson.fromJson("foo", Foo.class).name); + assertThat(gson.toJson(new Foo("foo"))).isEqualTo("\"foo via serializer\""); + assertThat( gson.fromJson("foo", Foo.class).name).isEqualTo("foo via deserializer"); } @Test @@ -85,8 +85,8 @@ public final class TypeAdapterPrecedenceTest { .registerTypeAdapter(Foo.class, newSerializer("serializer")) .registerTypeAdapter(Foo.class, newDeserializer("deserializer")) .create(); - assertEquals("\"foo via serializer\"", gson.toJson(new Foo("foo"))); - assertEquals("foo via deserializer", gson.fromJson("foo", Foo.class).name); + assertThat(gson.toJson(new Foo("foo"))).isEqualTo("\"foo via serializer\""); + assertThat(gson.fromJson("foo", Foo.class).name).isEqualTo("foo via deserializer"); } @Test @@ -96,8 +96,8 @@ public final class TypeAdapterPrecedenceTest { .registerTypeHierarchyAdapter(Foo.class, newSerializer("serializer")) .registerTypeHierarchyAdapter(Foo.class, newDeserializer("deserializer")) .create(); - assertEquals("\"foo via type adapter\"", gson.toJson(new Foo("foo"))); - assertEquals("foo via type adapter", gson.fromJson("foo", Foo.class).name); + assertThat(gson.toJson(new Foo("foo"))).isEqualTo("\"foo via type adapter\""); + assertThat(gson.fromJson("foo", Foo.class).name).isEqualTo("foo via type adapter"); } @Test @@ -107,8 +107,8 @@ public final class TypeAdapterPrecedenceTest { .registerTypeHierarchyAdapter(Foo.class, newDeserializer("deserializer")) .registerTypeHierarchyAdapter(Foo.class, newTypeAdapter("type adapter")) .create(); - assertEquals("\"foo via type adapter\"", gson.toJson(new Foo("foo"))); - assertEquals("foo via type adapter", gson.fromJson("foo", Foo.class).name); + assertThat(gson.toJson(new Foo("foo"))).isEqualTo("\"foo via type adapter\""); + assertThat(gson.fromJson("foo", Foo.class).name).isEqualTo("foo via type adapter"); } @Test @@ -119,8 +119,8 @@ public final class TypeAdapterPrecedenceTest { .registerTypeAdapter(Foo.class, newSerializer("non hierarchical")) .registerTypeAdapter(Foo.class, newDeserializer("non hierarchical")) .create(); - assertEquals("\"foo via non hierarchical\"", gson.toJson(new Foo("foo"))); - assertEquals("foo via non hierarchical", gson.fromJson("foo", Foo.class).name); + assertThat(gson.toJson(new Foo("foo"))).isEqualTo("\"foo via non hierarchical\""); + assertThat(gson.fromJson("foo", Foo.class).name).isEqualTo("foo via non hierarchical"); } private static class Foo { diff --git a/gson/src/test/java/com/google/gson/functional/TypeAdapterRuntimeTypeWrapperTest.java b/gson/src/test/java/com/google/gson/functional/TypeAdapterRuntimeTypeWrapperTest.java index 73a01012..d7551135 100644 --- a/gson/src/test/java/com/google/gson/functional/TypeAdapterRuntimeTypeWrapperTest.java +++ b/gson/src/test/java/com/google/gson/functional/TypeAdapterRuntimeTypeWrapperTest.java @@ -1,6 +1,6 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -51,7 +51,7 @@ public class TypeAdapterRuntimeTypeWrapperTest { .create(); String json = gson.toJson(new Container()); - assertEquals("{\"b\":\"serializer\"}", json); + assertThat(json).isEqualTo("{\"b\":\"serializer\"}"); } /** @@ -66,7 +66,7 @@ public class TypeAdapterRuntimeTypeWrapperTest { .create(); String json = gson.toJson(new Container()); - assertEquals("{\"b\":{\"f\":\"test\"}}", json); + assertThat(json).isEqualTo("{\"b\":{\"f\":\"test\"}}"); } /** @@ -92,7 +92,7 @@ public class TypeAdapterRuntimeTypeWrapperTest { .create(); String json = gson.toJson(new Container()); - assertEquals("{\"b\":\"custom delegate\"}", json); + assertThat(json).isEqualTo("{\"b\":\"custom delegate\"}"); } /** @@ -109,7 +109,7 @@ public class TypeAdapterRuntimeTypeWrapperTest { .create(); String json = gson.toJson(new Container()); - assertEquals("{\"b\":{\"f\":\"test\"}}", json); + assertThat(json).isEqualTo("{\"b\":{\"f\":\"test\"}}"); } /** @@ -131,7 +131,7 @@ public class TypeAdapterRuntimeTypeWrapperTest { .create(); String json = gson.toJson(new Container()); - assertEquals("{\"b\":\"custom delegate\"}", json); + assertThat(json).isEqualTo("{\"b\":\"custom delegate\"}"); } /** @@ -160,7 +160,7 @@ public class TypeAdapterRuntimeTypeWrapperTest { .create(); String json = gson.toJson(new Container()); - assertEquals("{\"b\":{\"f\":\"test\"}}", json); + assertThat(json).isEqualTo("{\"b\":{\"f\":\"test\"}}"); } private static class CyclicBase { @@ -188,6 +188,6 @@ public class TypeAdapterRuntimeTypeWrapperTest { CyclicBase b = new CyclicBase(); b.f = new CyclicSub(2); String json = new Gson().toJson(b); - assertEquals("{\"f\":{\"i\":2}}", json); + assertThat(json).isEqualTo("{\"f\":{\"i\":2}}"); } } diff --git a/gson/src/test/java/com/google/gson/functional/TypeHierarchyAdapterTest.java b/gson/src/test/java/com/google/gson/functional/TypeHierarchyAdapterTest.java index e43fa5f7..0804bcfd 100644 --- a/gson/src/test/java/com/google/gson/functional/TypeHierarchyAdapterTest.java +++ b/gson/src/test/java/com/google/gson/functional/TypeHierarchyAdapterTest.java @@ -16,7 +16,7 @@ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -67,7 +67,7 @@ public final class TypeHierarchyAdapterTest { company.ceo = eric; String json = gson.toJson(company, Company.class); - assertEquals("{\n" + + assertThat(json).isEqualTo("{\n" + " \"ceo\": {\n" + " \"userid\": \"eric\",\n" + " \"startDate\": 2001,\n" + @@ -104,19 +104,17 @@ public final class TypeHierarchyAdapterTest { " \"startDate\": 2006\n" + " }\n" + " }\n" + - "}", json); + "}"); Company copied = gson.fromJson(json, Company.class); - assertEquals(json, gson.toJson(copied, Company.class)); - assertEquals(copied.ceo.userid, company.ceo.userid); - assertEquals(copied.ceo.assistant.userid, company.ceo.assistant.userid); - assertEquals(copied.ceo.minions[0].userid, company.ceo.minions[0].userid); - assertEquals(copied.ceo.minions[1].userid, company.ceo.minions[1].userid); - assertEquals(copied.ceo.minions[2].userid, company.ceo.minions[2].userid); - assertEquals(((Manager) copied.ceo.minions[2]).minions[0].userid, - ((Manager) company.ceo.minions[2]).minions[0].userid); - assertEquals(((Manager) copied.ceo.minions[2]).minions[1].userid, - ((Manager) company.ceo.minions[2]).minions[1].userid); + assertThat(gson.toJson(copied, Company.class)).isEqualTo(json); + assertThat(company.ceo.userid).isEqualTo(copied.ceo.userid); + assertThat(company.ceo.assistant.userid).isEqualTo(copied.ceo.assistant.userid); + assertThat(company.ceo.minions[0].userid).isEqualTo(copied.ceo.minions[0].userid); + assertThat(company.ceo.minions[1].userid).isEqualTo(copied.ceo.minions[1].userid); + assertThat(company.ceo.minions[2].userid).isEqualTo(copied.ceo.minions[2].userid); + assertThat(((Manager) company.ceo.minions[2]).minions[0].userid).isEqualTo(((Manager) copied.ceo.minions[2]).minions[0].userid); + assertThat(((Manager) company.ceo.minions[2]).minions[1].userid).isEqualTo(((Manager) copied.ceo.minions[2]).minions[1].userid); } @Test @@ -130,9 +128,9 @@ public final class TypeHierarchyAdapterTest { manager.userid = "inder"; String json = gson.toJson(manager, Manager.class); - assertEquals("\"inder\"", json); + assertThat(json).isEqualTo("\"inder\""); Manager copied = gson.fromJson(json, Manager.class); - assertEquals(manager.userid, copied.userid); + assertThat(copied.userid).isEqualTo(manager.userid); } /** This behaviour changed in Gson 2.1; it used to throw. */ diff --git a/gson/src/test/java/com/google/gson/functional/TypeVariableTest.java b/gson/src/test/java/com/google/gson/functional/TypeVariableTest.java index 88b2d19d..fdde72c8 100644 --- a/gson/src/test/java/com/google/gson/functional/TypeVariableTest.java +++ b/gson/src/test/java/com/google/gson/functional/TypeVariableTest.java @@ -15,7 +15,7 @@ */ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -36,7 +36,7 @@ import org.junit.Test; public class TypeVariableTest { @Test - public void testAdvancedTypeVariables() throws Exception { + public void testAdvancedTypeVariables() { Gson gson = new Gson(); Bar bar1 = new Bar("someString", 1, true); ArrayList arrayList = new ArrayList<>(); @@ -48,29 +48,29 @@ public class TypeVariableTest { String json = gson.toJson(bar1); Bar bar2 = gson.fromJson(json, Bar.class); - assertEquals(bar1, bar2); + assertThat(bar2).isEqualTo(bar1); } @Test - public void testTypeVariablesViaTypeParameter() throws Exception { + public void testTypeVariablesViaTypeParameter() { Gson gson = new Gson(); Foo original = new Foo<>("e", 5, false); original.map.put("f", Arrays.asList(6, 7)); Type type = new TypeToken>() {}.getType(); String json = gson.toJson(original, type); - assertEquals("{\"someSField\":\"e\",\"someTField\":5,\"map\":{\"f\":[6,7]},\"redField\":false}", - json); - assertEquals(original, gson.>fromJson(json, type)); + assertThat(json) + .isEqualTo("{\"someSField\":\"e\",\"someTField\":5,\"map\":{\"f\":[6,7]},\"redField\":false}"); + assertThat(gson.>fromJson(json, type)).isEqualTo(original); } @Test - public void testBasicTypeVariables() throws Exception { + public void testBasicTypeVariables() { Gson gson = new Gson(); Blue blue1 = new Blue(true); String json = gson.toJson(blue1); Blue blue2 = gson.fromJson(json, Blue.class); - assertEquals(blue1, blue2); + assertThat(blue2).isEqualTo(blue1); } @SuppressWarnings("overrides") // for missing hashCode() override diff --git a/gson/src/test/java/com/google/gson/functional/UncategorizedTest.java b/gson/src/test/java/com/google/gson/functional/UncategorizedTest.java index 58171de0..358fc5a9 100644 --- a/gson/src/test/java/com/google/gson/functional/UncategorizedTest.java +++ b/gson/src/test/java/com/google/gson/functional/UncategorizedTest.java @@ -15,9 +15,7 @@ */ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.Gson; @@ -64,18 +62,18 @@ public class UncategorizedTest { } @Test - public void testObjectEqualButNotSameSerialization() throws Exception { + public void testObjectEqualButNotSameSerialization() { ClassOverridingEquals objA = new ClassOverridingEquals(); ClassOverridingEquals objB = new ClassOverridingEquals(); objB.ref = objA; String json = gson.toJson(objB); - assertEquals(objB.getExpectedJson(), json); + assertThat(json).isEqualTo(objB.getExpectedJson()); } @Test public void testStaticFieldsAreNotSerialized() { BagOfPrimitives target = new BagOfPrimitives(); - assertFalse(gson.toJson(target).contains("DEFAULT_VALUE")); + assertThat(gson.toJson(target)).doesNotContain("DEFAULT_VALUE"); } @Test @@ -83,7 +81,7 @@ public class UncategorizedTest { BagOfPrimitives bag = new BagOfPrimitives(); String json = gson.toJson(bag); BagOfPrimitives deserialized = gson.fromJson(json, BagOfPrimitives.class); - assertEquals(bag, deserialized); + assertThat(deserialized).isEqualTo(bag); } /** @@ -96,13 +94,13 @@ public class UncategorizedTest { Gson gson = new GsonBuilder().registerTypeAdapter(Base.class, new BaseTypeAdapter()).create(); String json = "{\"opType\":\"OP1\"}"; Base base = gson.fromJson(json, Base.class); - assertTrue(base instanceof Derived1); - assertEquals(OperationType.OP1, base.opType); + assertThat(base).isInstanceOf(Derived1.class); + assertThat(base.opType).isEqualTo(OperationType.OP1); json = "{\"opType\":\"OP2\"}"; base = gson.fromJson(json, Base.class); - assertTrue(base instanceof Derived2); - assertEquals(OperationType.OP2, base.opType); + assertThat(base).isInstanceOf(Derived2.class); + assertThat(base.opType).isEqualTo(OperationType.OP2); } /** @@ -113,7 +111,7 @@ public class UncategorizedTest { public void testTrailingWhitespace() throws Exception { List integers = gson.fromJson("[1,2,3] \n\n ", new TypeToken>() {}.getType()); - assertEquals(Arrays.asList(1, 2, 3), integers); + assertThat(integers).containsExactly(1, 2, 3).inOrder(); } private enum OperationType { OP1, OP2 } diff --git a/gson/src/test/java/com/google/gson/functional/VersioningTest.java b/gson/src/test/java/com/google/gson/functional/VersioningTest.java index 49dabcab..c9f6621d 100644 --- a/gson/src/test/java/com/google/gson/functional/VersioningTest.java +++ b/gson/src/test/java/com/google/gson/functional/VersioningTest.java @@ -15,10 +15,7 @@ */ package com.google.gson.functional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -48,15 +45,15 @@ public class VersioningTest { Version1 target = new Version1(); Gson gson = gsonWithVersion(1.29); String json = gson.toJson(target); - assertTrue(json.contains("\"a\":" + A)); + assertThat(json).contains("\"a\":" + A); gson = gsonWithVersion(1.3); json = gson.toJson(target); - assertFalse(json.contains("\"a\":" + A)); + assertThat(json).doesNotContain("\"a\":" + A); gson = gsonWithVersion(1.31); json = gson.toJson(target); - assertFalse(json.contains("\"a\":" + A)); + assertThat(json).doesNotContain("\"a\":" + A); } @Test @@ -65,15 +62,15 @@ public class VersioningTest { Gson gson = gsonWithVersion(1.29); Version1 version1 = gson.fromJson(json, Version1.class); - assertEquals(3, version1.a); + assertThat(version1.a).isEqualTo(3); gson = gsonWithVersion(1.3); version1 = gson.fromJson(json, Version1.class); - assertEquals(A, version1.a); + assertThat(version1.a).isEqualTo(A); gson = gsonWithVersion(1.31); version1 = gson.fromJson(json, Version1.class); - assertEquals(A, version1.a); + assertThat(version1.a).isEqualTo(A); } @Test @@ -81,7 +78,7 @@ public class VersioningTest { Gson gson = gsonWithVersion(1.0); String json1 = gson.toJson(new Version1()); String json2 = gson.toJson(new Version1_1()); - assertEquals(json1, json2); + assertThat(json2).isEqualTo(json1); } @Test @@ -89,18 +86,18 @@ public class VersioningTest { Gson gson = gsonWithVersion(1.0); String json = "{\"a\":3,\"b\":4,\"c\":5}"; Version1 version1 = gson.fromJson(json, Version1.class); - assertEquals(3, version1.a); - assertEquals(4, version1.b); + assertThat(version1.a).isEqualTo(3); + assertThat(version1.b).isEqualTo(4); Version1_1 version1_1 = gson.fromJson(json, Version1_1.class); - assertEquals(3, version1_1.a); - assertEquals(4, version1_1.b); - assertEquals(C, version1_1.c); + assertThat(version1_1.a).isEqualTo(3); + assertThat(version1_1.b).isEqualTo(4); + assertThat(version1_1.c).isEqualTo(C); } @Test public void testIgnoreLaterVersionClassSerialization() { Gson gson = gsonWithVersion(1.0); - assertEquals("null", gson.toJson(new Version1_2())); + assertThat(gson.toJson(new Version1_2())).isEqualTo("null"); } @Test @@ -110,14 +107,14 @@ public class VersioningTest { Version1_2 version1_2 = gson.fromJson(json, Version1_2.class); // Since the class is versioned to be after 1.0, we expect null // This is the new behavior in Gson 2.0 - assertNull(version1_2); + assertThat(version1_2).isNull(); } @Test public void testVersionedGsonWithUnversionedClassesSerialization() { Gson gson = gsonWithVersion(1.0); BagOfPrimitives target = new BagOfPrimitives(10, 20, false, "stringValue"); - assertEquals(target.getExpectedJson(), gson.toJson(target)); + assertThat(gson.toJson(target)).isEqualTo(target.getExpectedJson()); } @Test @@ -130,7 +127,7 @@ public class VersioningTest { expected.intValue = 20; expected.booleanValue = false; BagOfPrimitives actual = gson.fromJson(json, BagOfPrimitives.class); - assertEquals(expected, actual); + assertThat(actual).isEqualTo(expected); } @Test @@ -138,19 +135,19 @@ public class VersioningTest { Gson gson = gsonWithVersion(1.0); SinceUntilMixing target = new SinceUntilMixing(); String json = gson.toJson(target); - assertFalse(json.contains("\"b\":" + B)); + assertThat(json).doesNotContain("\"b\":" + B); gson = gsonWithVersion(1.2); json = gson.toJson(target); - assertTrue(json.contains("\"b\":" + B)); + assertThat(json).contains("\"b\":" + B); gson = gsonWithVersion(1.3); json = gson.toJson(target); - assertFalse(json.contains("\"b\":" + B)); + assertThat(json).doesNotContain("\"b\":" + B); gson = gsonWithVersion(1.4); json = gson.toJson(target); - assertFalse(json.contains("\"b\":" + B)); + assertThat(json).doesNotContain("\"b\":" + B); } @Test @@ -158,23 +155,23 @@ public class VersioningTest { String json = "{\"a\":5,\"b\":6}"; Gson gson = gsonWithVersion(1.0); SinceUntilMixing result = gson.fromJson(json, SinceUntilMixing.class); - assertEquals(5, result.a); - assertEquals(B, result.b); + assertThat(result.a).isEqualTo(5); + assertThat(result.b).isEqualTo(B); gson = gsonWithVersion(1.2); result = gson.fromJson(json, SinceUntilMixing.class); - assertEquals(5, result.a); - assertEquals(6, result.b); + assertThat(result.a).isEqualTo(5); + assertThat(result.b).isEqualTo(6); gson = gsonWithVersion(1.3); result = gson.fromJson(json, SinceUntilMixing.class); - assertEquals(5, result.a); - assertEquals(B, result.b); + assertThat(result.a).isEqualTo(5); + assertThat(result.b).isEqualTo(B); gson = gsonWithVersion(1.4); result = gson.fromJson(json, SinceUntilMixing.class); - assertEquals(5, result.a); - assertEquals(B, result.b); + assertThat(result.a).isEqualTo(5); + assertThat(result.b).isEqualTo(B); } private static class Version1 { diff --git a/gson/src/test/java/com/google/gson/internal/ConstructorConstructorTest.java b/gson/src/test/java/com/google/gson/internal/ConstructorConstructorTest.java index ba3c339a..7ca2f899 100644 --- a/gson/src/test/java/com/google/gson/internal/ConstructorConstructorTest.java +++ b/gson/src/test/java/com/google/gson/internal/ConstructorConstructorTest.java @@ -1,6 +1,6 @@ package com.google.gson.internal; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.InstanceCreator; @@ -33,11 +33,9 @@ public class ConstructorConstructorTest { constructor.construct(); fail("Expected exception"); } catch (RuntimeException exception) { - assertEquals( - "Abstract classes can't be instantiated! Register an InstanceCreator or a TypeAdapter for this " - + "type. Class name: com.google.gson.internal.ConstructorConstructorTest$AbstractClass", - exception.getMessage() - ); + assertThat(exception).hasMessageThat().isEqualTo("Abstract classes can't be instantiated! " + + "Register an InstanceCreator or a TypeAdapter for this type. " + + "Class name: com.google.gson.internal.ConstructorConstructorTest$AbstractClass"); } } @@ -48,11 +46,9 @@ public class ConstructorConstructorTest { constructor.construct(); fail("Expected exception"); } catch (RuntimeException exception) { - assertEquals( - "Interfaces can't be instantiated! Register an InstanceCreator or a TypeAdapter for " - + "this type. Interface name: com.google.gson.internal.ConstructorConstructorTest$Interface", - exception.getMessage() - ); + assertThat(exception).hasMessageThat().isEqualTo("Interfaces can't be instantiated! " + + "Register an InstanceCreator or a TypeAdapter for this type. " + + "Interface name: com.google.gson.internal.ConstructorConstructorTest$Interface"); } } } diff --git a/gson/src/test/java/com/google/gson/internal/GsonBuildConfigTest.java b/gson/src/test/java/com/google/gson/internal/GsonBuildConfigTest.java index dc39bc02..a1af3a08 100644 --- a/gson/src/test/java/com/google/gson/internal/GsonBuildConfigTest.java +++ b/gson/src/test/java/com/google/gson/internal/GsonBuildConfigTest.java @@ -15,7 +15,7 @@ */ package com.google.gson.internal; -import static org.junit.Assert.assertFalse; +import static com.google.common.truth.Truth.assertThat; import org.junit.Test; @@ -28,6 +28,6 @@ public class GsonBuildConfigTest { @Test public void testEnsureGsonBuildConfigGetsUpdatedToMavenVersion() { - assertFalse("${project.version}".equals(GsonBuildConfig.VERSION)); + assertThat("${project.version}").isNotEqualTo(GsonBuildConfig.VERSION); } } diff --git a/gson/src/test/java/com/google/gson/internal/GsonTypesTest.java b/gson/src/test/java/com/google/gson/internal/GsonTypesTest.java index dd45e87f..af824975 100644 --- a/gson/src/test/java/com/google/gson/internal/GsonTypesTest.java +++ b/gson/src/test/java/com/google/gson/internal/GsonTypesTest.java @@ -16,8 +16,7 @@ package com.google.gson.internal; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import java.lang.reflect.ParameterizedType; @@ -31,11 +30,11 @@ public final class GsonTypesTest { public void testNewParameterizedTypeWithoutOwner() throws Exception { // List. List is a top-level class Type type = $Gson$Types.newParameterizedTypeWithOwner(null, List.class, A.class); - assertEquals(A.class, getFirstTypeArgument(type)); + assertThat(getFirstTypeArgument(type)).isEqualTo(A.class); // A. A is a static inner class. type = $Gson$Types.newParameterizedTypeWithOwner(null, A.class, B.class); - assertEquals(B.class, getFirstTypeArgument(type)); + assertThat(getFirstTypeArgument(type)).isEqualTo(B.class); final class D { } @@ -47,15 +46,15 @@ public final class GsonTypesTest { // A is allowed. type = $Gson$Types.newParameterizedTypeWithOwner(null, A.class, D.class); - assertEquals(D.class, getFirstTypeArgument(type)); + assertThat(getFirstTypeArgument(type)).isEqualTo(D.class); } @Test public void testGetFirstTypeArgument() throws Exception { - assertNull(getFirstTypeArgument(A.class)); + assertThat(getFirstTypeArgument(A.class)).isNull(); Type type = $Gson$Types.newParameterizedTypeWithOwner(null, A.class, B.class, C.class); - assertEquals(B.class, getFirstTypeArgument(type)); + assertThat(getFirstTypeArgument(type)).isEqualTo(B.class); } private static final class A { diff --git a/gson/src/test/java/com/google/gson/internal/JavaVersionTest.java b/gson/src/test/java/com/google/gson/internal/JavaVersionTest.java index 582d683a..e2e9ea6a 100644 --- a/gson/src/test/java/com/google/gson/internal/JavaVersionTest.java +++ b/gson/src/test/java/com/google/gson/internal/JavaVersionTest.java @@ -15,8 +15,7 @@ */ package com.google.gson.internal; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import org.junit.Test; @@ -30,51 +29,51 @@ public class JavaVersionTest { @Test public void testGetMajorJavaVersion() { - assertTrue(JavaVersion.getMajorJavaVersion() >= 7); // Gson currently requires at least Java 7 + assertThat(JavaVersion.getMajorJavaVersion() >= 7).isTrue(); // Gson currently requires at least Java 7 } @Test public void testJava6() { - assertEquals(6, JavaVersion.getMajorJavaVersion("1.6.0")); // http://www.oracle.com/technetwork/java/javase/version-6-141920.html + assertThat(JavaVersion.getMajorJavaVersion("1.6.0")).isEqualTo(6); // http://www.oracle.com/technetwork/java/javase/version-6-141920.html } @Test public void testJava7() { - assertEquals(7, JavaVersion.getMajorJavaVersion("1.7.0")); // http://www.oracle.com/technetwork/java/javase/jdk7-naming-418744.html + assertThat(JavaVersion.getMajorJavaVersion("1.7.0")).isEqualTo(7); // http://www.oracle.com/technetwork/java/javase/jdk7-naming-418744.html } @Test public void testJava8() { - assertEquals(8, JavaVersion.getMajorJavaVersion("1.8")); - assertEquals(8, JavaVersion.getMajorJavaVersion("1.8.0")); - assertEquals(8, JavaVersion.getMajorJavaVersion("1.8.0_131")); - assertEquals(8, JavaVersion.getMajorJavaVersion("1.8.0_60-ea")); - assertEquals(8, JavaVersion.getMajorJavaVersion("1.8.0_111-internal")); + assertThat(JavaVersion.getMajorJavaVersion("1.8")).isEqualTo(8); + assertThat(JavaVersion.getMajorJavaVersion("1.8.0")).isEqualTo(8); + assertThat(JavaVersion.getMajorJavaVersion("1.8.0_131")).isEqualTo(8); + assertThat(JavaVersion.getMajorJavaVersion("1.8.0_60-ea")).isEqualTo(8); + assertThat(JavaVersion.getMajorJavaVersion("1.8.0_111-internal")).isEqualTo(8); // openjdk8 per https://github.com/AdoptOpenJDK/openjdk-build/issues/93 - assertEquals(8, JavaVersion.getMajorJavaVersion("1.8.0-internal")); - assertEquals(8, JavaVersion.getMajorJavaVersion("1.8.0_131-adoptopenjdk")); + assertThat(JavaVersion.getMajorJavaVersion("1.8.0-internal")).isEqualTo(8); + assertThat(JavaVersion.getMajorJavaVersion("1.8.0_131-adoptopenjdk")).isEqualTo(8); } @Test public void testJava9() { // Legacy style - assertEquals(9, JavaVersion.getMajorJavaVersion("9.0.4")); // Oracle JDK 9 - assertEquals(9, JavaVersion.getMajorJavaVersion("9-Debian")); // Debian as reported in https://github.com/google/gson/issues/1310 + assertThat(JavaVersion.getMajorJavaVersion("9.0.4")).isEqualTo(9); // Oracle JDK 9 + assertThat(JavaVersion.getMajorJavaVersion("9-Debian")).isEqualTo(9); // Debian as reported in https://github.com/google/gson/issues/1310 // New style - assertEquals(9, JavaVersion.getMajorJavaVersion("9-ea+19")); - assertEquals(9, JavaVersion.getMajorJavaVersion("9+100")); - assertEquals(9, JavaVersion.getMajorJavaVersion("9.0.1+20")); - assertEquals(9, JavaVersion.getMajorJavaVersion("9.1.1+20")); + assertThat(JavaVersion.getMajorJavaVersion("9-ea+19")).isEqualTo(9); + assertThat(JavaVersion.getMajorJavaVersion("9+100")).isEqualTo(9); + assertThat(JavaVersion.getMajorJavaVersion("9.0.1+20")).isEqualTo(9); + assertThat(JavaVersion.getMajorJavaVersion("9.1.1+20")).isEqualTo(9); } @Test public void testJava10() { - assertEquals(10, JavaVersion.getMajorJavaVersion("10.0.1")); // Oracle JDK 10.0.1 + assertThat(JavaVersion.getMajorJavaVersion("10.0.1")).isEqualTo(10); // Oracle JDK 10.0.1 } @Test public void testUnknownVersionFormat() { - assertEquals(6, JavaVersion.getMajorJavaVersion("Java9")); // unknown format + assertThat(JavaVersion.getMajorJavaVersion("Java9")).isEqualTo(6); // unknown format } } diff --git a/gson/src/test/java/com/google/gson/internal/LazilyParsedNumberTest.java b/gson/src/test/java/com/google/gson/internal/LazilyParsedNumberTest.java index f4f207f2..e47f2ee0 100644 --- a/gson/src/test/java/com/google/gson/internal/LazilyParsedNumberTest.java +++ b/gson/src/test/java/com/google/gson/internal/LazilyParsedNumberTest.java @@ -15,8 +15,7 @@ */ package com.google.gson.internal; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -31,14 +30,14 @@ public class LazilyParsedNumberTest { public void testHashCode() { LazilyParsedNumber n1 = new LazilyParsedNumber("1"); LazilyParsedNumber n1Another = new LazilyParsedNumber("1"); - assertEquals(n1.hashCode(), n1Another.hashCode()); + assertThat(n1Another.hashCode()).isEqualTo(n1.hashCode()); } @Test public void testEquals() { LazilyParsedNumber n1 = new LazilyParsedNumber("1"); LazilyParsedNumber n1Another = new LazilyParsedNumber("1"); - assertTrue(n1.equals(n1Another)); + assertThat(n1.equals(n1Another)).isTrue(); } @Test @@ -50,6 +49,6 @@ public class LazilyParsedNumberTest { ObjectInputStream objIn = new ObjectInputStream(new ByteArrayInputStream(out.toByteArray())); Number deserialized = (Number) objIn.readObject(); - assertEquals(new BigDecimal("123"), deserialized); + assertThat(deserialized).isEqualTo(new BigDecimal("123")); } } diff --git a/gson/src/test/java/com/google/gson/internal/LinkedTreeMapTest.java b/gson/src/test/java/com/google/gson/internal/LinkedTreeMapTest.java index 89154ae4..c811e31b 100644 --- a/gson/src/test/java/com/google/gson/internal/LinkedTreeMapTest.java +++ b/gson/src/test/java/com/google/gson/internal/LinkedTreeMapTest.java @@ -16,10 +16,7 @@ package com.google.gson.internal; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.common.MoreAsserts; @@ -86,10 +83,11 @@ public final class LinkedTreeMapTest { public void testPutNullValue() { LinkedTreeMap map = new LinkedTreeMap<>(); map.put("a", null); - assertEquals(1, map.size()); - assertTrue(map.containsKey("a")); - assertTrue(map.containsValue(null)); - assertNull(map.get("a")); + + assertThat(map).hasSize(1); + assertThat(map.containsKey("a")).isTrue(); + assertThat(map.containsValue(null)).isTrue(); + assertThat(map.get("a")).isNull(); } @Test @@ -99,27 +97,27 @@ public final class LinkedTreeMapTest { map.put("a", null); fail(); } catch (NullPointerException e) { - assertEquals("value == null", e.getMessage()); + assertThat(e.getMessage()).isEqualTo("value == null"); } - assertEquals(0, map.size()); - assertFalse(map.containsKey("a")); - assertFalse(map.containsValue(null)); + assertThat(map).hasSize(0); + assertThat(map).doesNotContainKey("a"); + assertThat(map.containsValue(null)).isFalse(); } @Test public void testEntrySetValueNull() { LinkedTreeMap map = new LinkedTreeMap<>(); map.put("a", "1"); - assertEquals("1", map.get("a")); + assertThat(map.get("a")).isEqualTo("1"); Entry entry = map.entrySet().iterator().next(); - assertEquals("a", entry.getKey()); - assertEquals("1", entry.getValue()); + assertThat(entry.getKey()).isEqualTo("a"); + assertThat(entry.getValue()).isEqualTo("1"); entry.setValue(null); - assertNull(entry.getValue()); + assertThat(entry.getValue()).isNull(); - assertTrue(map.containsKey("a")); - assertTrue(map.containsValue(null)); - assertNull(map.get("a")); + assertThat(map.containsKey("a")).isTrue(); + assertThat(map.containsValue(null)).isTrue(); + assertThat(map.get("a")).isNull(); } @@ -132,47 +130,47 @@ public final class LinkedTreeMapTest { entry.setValue(null); fail(); } catch (NullPointerException e) { - assertEquals("value == null", e.getMessage()); + assertThat(e.getMessage()).isEqualTo("value == null"); } - assertEquals("1", entry.getValue()); - assertEquals("1", map.get("a")); - assertFalse(map.containsValue(null)); + assertThat(entry.getValue()).isEqualTo("1"); + assertThat(map.get("a")).isEqualTo("1"); + assertThat(map.containsValue(null)).isFalse(); } @Test public void testContainsNonComparableKeyReturnsFalse() { LinkedTreeMap map = new LinkedTreeMap<>(); map.put("a", "android"); - assertFalse(map.containsKey(new Object())); + assertThat(map).doesNotContainKey(new Object()); } @Test public void testContainsNullKeyIsAlwaysFalse() { LinkedTreeMap map = new LinkedTreeMap<>(); - assertFalse(map.containsKey(null)); + assertThat(map.containsKey(null)).isFalse(); map.put("a", "android"); - assertFalse(map.containsKey(null)); + assertThat(map.containsKey(null)).isFalse(); } @Test public void testPutOverrides() throws Exception { LinkedTreeMap map = new LinkedTreeMap<>(); - assertNull(map.put("d", "donut")); - assertNull(map.put("e", "eclair")); - assertNull(map.put("f", "froyo")); - assertEquals(3, map.size()); + assertThat(map.put("d", "donut")).isNull(); + assertThat(map.put("e", "eclair")).isNull(); + assertThat(map.put("f", "froyo")).isNull(); + assertThat(map).hasSize(3); - assertEquals("donut", map.get("d")); - assertEquals("donut", map.put("d", "done")); - assertEquals(3, map.size()); + assertThat(map.get("d")).isEqualTo("donut"); + assertThat(map.put("d", "done")).isEqualTo("donut"); + assertThat(map).hasSize(3); } @Test public void testEmptyStringValues() { LinkedTreeMap map = new LinkedTreeMap<>(); map.put("a", ""); - assertTrue(map.containsKey("a")); - assertEquals("", map.get("a")); + assertThat(map.containsKey("a")).isTrue(); + assertThat(map.get("a")).isEqualTo(""); } @Test @@ -187,8 +185,8 @@ public final class LinkedTreeMapTest { for (int i = 0; i < keys.length; i++) { String key = keys[i]; - assertTrue(map.containsKey(key)); - assertEquals("" + i, map.get(key)); + assertThat(map.containsKey(key)).isTrue(); + assertThat(map.get(key)).isEqualTo("" + i); } } @@ -200,7 +198,7 @@ public final class LinkedTreeMapTest { map.put("b", "bbq"); map.clear(); assertIterationOrder(map.keySet()); - assertEquals(0, map.size()); + assertThat(map).hasSize(0); } @Test @@ -232,7 +230,7 @@ public final class LinkedTreeMapTest { ObjectInputStream objIn = new ObjectInputStream(new ByteArrayInputStream(out.toByteArray())); @SuppressWarnings("unchecked") Map deserialized = (Map) objIn.readObject(); - assertEquals(Collections.singletonMap("a", 1), deserialized); + assertThat(deserialized).isEqualTo(Collections.singletonMap("a", 1)); } @SuppressWarnings("varargs") @@ -242,6 +240,6 @@ public final class LinkedTreeMapTest { for (T t : actual) { actualList.add(t); } - assertEquals(Arrays.asList(expected), actualList); + assertThat(actualList).isEqualTo(Arrays.asList(expected)); } } diff --git a/gson/src/test/java/com/google/gson/internal/StreamsTest.java b/gson/src/test/java/com/google/gson/internal/StreamsTest.java index d0cb90aa..61b42155 100644 --- a/gson/src/test/java/com/google/gson/internal/StreamsTest.java +++ b/gson/src/test/java/com/google/gson/internal/StreamsTest.java @@ -1,6 +1,6 @@ package com.google.gson.internal; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import java.io.IOException; @@ -57,12 +57,12 @@ public class StreamsTest { } String actualOutput = stringBuilder.toString(); - assertEquals("a\u1234testnullcdul,a\u1234\u1234,charsha,stringtr", actualOutput); + assertThat(actualOutput).isEqualTo("a\u1234testnullcdul,a\u1234\u1234,charsha,stringtr"); writer.flush(); writer.close(); // flush() and close() calls should have had no effect - assertEquals(actualOutput, stringBuilder.toString()); + assertThat(stringBuilder.toString()).isEqualTo(actualOutput); } } diff --git a/gson/src/test/java/com/google/gson/internal/UnsafeAllocatorInstantiationTest.java b/gson/src/test/java/com/google/gson/internal/UnsafeAllocatorInstantiationTest.java index b8ab177d..a80a4c3d 100644 --- a/gson/src/test/java/com/google/gson/internal/UnsafeAllocatorInstantiationTest.java +++ b/gson/src/test/java/com/google/gson/internal/UnsafeAllocatorInstantiationTest.java @@ -15,8 +15,7 @@ */ package com.google.gson.internal; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import org.junit.Test; @@ -46,7 +45,7 @@ public final class UnsafeAllocatorInstantiationTest { UnsafeAllocator.INSTANCE.newInstance(Interface.class); fail(); } catch (AssertionError e) { - assertTrue(e.getMessage().startsWith("UnsafeAllocator is used for non-instantiable type")); + assertThat(e).hasMessageThat().startsWith("UnsafeAllocator is used for non-instantiable type"); } } @@ -60,7 +59,7 @@ public final class UnsafeAllocatorInstantiationTest { UnsafeAllocator.INSTANCE.newInstance(AbstractClass.class); fail(); } catch (AssertionError e) { - assertTrue(e.getMessage().startsWith("UnsafeAllocator is used for non-instantiable type")); + assertThat(e).hasMessageThat().startsWith("UnsafeAllocator is used for non-instantiable type"); } } @@ -70,6 +69,6 @@ public final class UnsafeAllocatorInstantiationTest { @Test public void testConcreteClassInstantiation() throws Exception { ConcreteClass instance = UnsafeAllocator.INSTANCE.newInstance(ConcreteClass.class); - assertNotNull(instance); + assertThat(instance).isNotNull(); } } diff --git a/gson/src/test/java/com/google/gson/internal/bind/DefaultDateTypeAdapterTest.java b/gson/src/test/java/com/google/gson/internal/bind/DefaultDateTypeAdapterTest.java index d006eb09..99d69e03 100644 --- a/gson/src/test/java/com/google/gson/internal/bind/DefaultDateTypeAdapterTest.java +++ b/gson/src/test/java/com/google/gson/internal/bind/DefaultDateTypeAdapterTest.java @@ -16,9 +16,8 @@ package com.google.gson.internal.bind; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static com.google.common.truth.Truth.assertThat; +import static com.google.common.truth.Truth.assertWithMessage; import static org.junit.Assert.fail; import com.google.gson.Gson; @@ -171,29 +170,29 @@ public class DefaultDateTypeAdapterTest { } @Test - public void testDateSerialization() throws Exception { + public void testDateSerialization() { int dateStyle = DateFormat.LONG; TypeAdapter dateTypeAdapter = dateAdapter(DateType.DATE.createAdapterFactory(dateStyle)); DateFormat formatter = DateFormat.getDateInstance(dateStyle, Locale.US); Date currentDate = new Date(); String dateString = dateTypeAdapter.toJson(currentDate); - assertEquals(toLiteral(formatter.format(currentDate)), dateString); + assertThat(dateString).isEqualTo(toLiteral(formatter.format(currentDate))); } @Test - public void testDatePattern() throws Exception { + public void testDatePattern() { String pattern = "yyyy-MM-dd"; TypeAdapter dateTypeAdapter = dateAdapter(DateType.DATE.createAdapterFactory(pattern)); DateFormat formatter = new SimpleDateFormat(pattern); Date currentDate = new Date(); String dateString = dateTypeAdapter.toJson(currentDate); - assertEquals(toLiteral(formatter.format(currentDate)), dateString); + assertThat(dateString).isEqualTo(toLiteral(formatter.format(currentDate))); } @Test - public void testInvalidDatePattern() throws Exception { + public void testInvalidDatePattern() { try { DateType.DATE.createAdapterFactory("I am a bad Date pattern...."); fail("Invalid date pattern should fail."); @@ -203,8 +202,8 @@ public class DefaultDateTypeAdapterTest { @Test public void testNullValue() throws Exception { TypeAdapter adapter = dateAdapter(DateType.DATE.createDefaultsAdapterFactory()); - assertNull(adapter.fromJson("null")); - assertEquals("null", adapter.toJson(null)); + assertThat(adapter.fromJson("null")).isNull(); + assertThat(adapter.toJson(null)).isEqualTo("null"); } @Test @@ -218,19 +217,19 @@ public class DefaultDateTypeAdapterTest { private static TypeAdapter dateAdapter(TypeAdapterFactory adapterFactory) { TypeAdapter adapter = adapterFactory.create(new Gson(), TypeToken.get(Date.class)); - assertNotNull(adapter); + assertThat(adapter).isNotNull(); return adapter; } private static void assertFormatted(String formatted, TypeAdapterFactory adapterFactory) { TypeAdapter adapter = dateAdapter(adapterFactory); - assertEquals(toLiteral(formatted), adapter.toJson(new Date(0))); + assertThat(adapter.toJson(new Date(0))).isEqualTo(toLiteral(formatted)); } private static void assertParsed(String date, TypeAdapterFactory adapterFactory) throws IOException { TypeAdapter adapter = dateAdapter(adapterFactory); - assertEquals(date, new Date(0), adapter.fromJson(toLiteral(date))); - assertEquals("ISO 8601", new Date(0), adapter.fromJson(toLiteral("1970-01-01T00:00:00Z"))); + assertWithMessage(date).that(adapter.fromJson(toLiteral(date))).isEqualTo(new Date(0)); + assertWithMessage("ISO 8601").that(adapter.fromJson(toLiteral("1970-01-01T00:00:00Z"))).isEqualTo(new Date(0)); } private static String toLiteral(String s) { diff --git a/gson/src/test/java/com/google/gson/internal/bind/Java17ReflectiveTypeAdapterFactoryTest.java b/gson/src/test/java/com/google/gson/internal/bind/Java17ReflectiveTypeAdapterFactoryTest.java index 18984c7b..288d1a38 100644 --- a/gson/src/test/java/com/google/gson/internal/bind/Java17ReflectiveTypeAdapterFactoryTest.java +++ b/gson/src/test/java/com/google/gson/internal/bind/Java17ReflectiveTypeAdapterFactoryTest.java @@ -1,7 +1,6 @@ package com.google.gson.internal.bind; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -39,7 +38,7 @@ public class Java17ReflectiveTypeAdapterFactoryTest { Gson gson = new Gson(); TypeAdapter recordAdapter = gson.getAdapter(unixDomainPrincipalClass); TypeAdapter defaultReflectionAdapter = gson.getAdapter(DummyClass.class); - assertNotEquals(recordAdapter.getClass(), defaultReflectionAdapter.getClass()); + assertThat(defaultReflectionAdapter.getClass()).isNotEqualTo(recordAdapter.getClass()); } @Test @@ -59,8 +58,8 @@ public class Java17ReflectiveTypeAdapterFactoryTest { String serialized = gson.toJson(recordInstance); Object deserializedRecordInstance = gson.fromJson(serialized, unixDomainPrincipalClass); - assertEquals(recordInstance, deserializedRecordInstance); - assertEquals("{\"user\":\"user\",\"group\":\"group\"}", serialized); + assertThat(deserializedRecordInstance).isEqualTo(recordInstance); + assertThat(serialized).isEqualTo("{\"user\":\"user\",\"group\":\"group\"}"); } private static class PrincipalTypeAdapter extends TypeAdapter { diff --git a/gson/src/test/java/com/google/gson/internal/bind/JsonElementReaderTest.java b/gson/src/test/java/com/google/gson/internal/bind/JsonElementReaderTest.java index efdf7b63..b344e6f9 100644 --- a/gson/src/test/java/com/google/gson/internal/bind/JsonElementReaderTest.java +++ b/gson/src/test/java/com/google/gson/internal/bind/JsonElementReaderTest.java @@ -16,8 +16,7 @@ package com.google.gson.internal.bind; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.JsonElement; @@ -36,9 +35,9 @@ public final class JsonElementReaderTest { JsonElement element = JsonParser.parseString("[1, 2, 3]"); JsonTreeReader reader = new JsonTreeReader(element); reader.beginArray(); - assertEquals(1, reader.nextInt()); - assertEquals(2L, reader.nextLong()); - assertEquals(3.0, reader.nextDouble(), 0); + assertThat(reader.nextInt()).isEqualTo(1); + assertThat(reader.nextLong()).isEqualTo(2L); + assertThat(reader.nextDouble()).isEqualTo(3.0); reader.endArray(); } @@ -48,9 +47,9 @@ public final class JsonElementReaderTest { JsonTreeReader reader = new JsonTreeReader(element); reader.setLenient(true); reader.beginArray(); - assertTrue(Double.isNaN(reader.nextDouble())); - assertEquals(Double.NEGATIVE_INFINITY, reader.nextDouble(), 0); - assertEquals(Double.POSITIVE_INFINITY, reader.nextDouble(), 0); + assertThat(Double.isNaN(reader.nextDouble())).isTrue(); + assertThat(reader.nextDouble()).isEqualTo(Double.NEGATIVE_INFINITY); + assertThat(reader.nextDouble()).isEqualTo(Double.POSITIVE_INFINITY); reader.endArray(); } @@ -64,23 +63,23 @@ public final class JsonElementReaderTest { reader.nextDouble(); fail(); } catch (MalformedJsonException e) { - assertEquals("JSON forbids NaN and infinities: NaN", e.getMessage()); + assertThat(e.getMessage()).isEqualTo("JSON forbids NaN and infinities: NaN"); } - assertEquals("NaN", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("NaN"); try { reader.nextDouble(); fail(); } catch (MalformedJsonException e) { - assertEquals("JSON forbids NaN and infinities: -Infinity", e.getMessage()); + assertThat(e.getMessage()).isEqualTo("JSON forbids NaN and infinities: -Infinity"); } - assertEquals("-Infinity", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("-Infinity"); try { reader.nextDouble(); fail(); } catch (MalformedJsonException e) { - assertEquals("JSON forbids NaN and infinities: Infinity", e.getMessage()); + assertThat(e.getMessage()).isEqualTo("JSON forbids NaN and infinities: Infinity"); } - assertEquals("Infinity", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("Infinity"); reader.endArray(); } @@ -89,9 +88,9 @@ public final class JsonElementReaderTest { JsonElement element = JsonParser.parseString("[\"1\", \"2\", \"3\"]"); JsonTreeReader reader = new JsonTreeReader(element); reader.beginArray(); - assertEquals(1, reader.nextInt()); - assertEquals(2L, reader.nextLong()); - assertEquals(3.0, reader.nextDouble(), 0); + assertThat(reader.nextInt()).isEqualTo(1); + assertThat(reader.nextLong()).isEqualTo(2L); + assertThat(reader.nextDouble()).isEqualTo(3.0); reader.endArray(); } @@ -100,7 +99,7 @@ public final class JsonElementReaderTest { JsonElement element = JsonParser.parseString("[1]"); JsonTreeReader reader = new JsonTreeReader(element); reader.beginArray(); - assertEquals("1", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("1"); reader.endArray(); } @@ -109,8 +108,8 @@ public final class JsonElementReaderTest { JsonElement element = JsonParser.parseString("[true, false]"); JsonTreeReader reader = new JsonTreeReader(element); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); - assertEquals(false, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isEqualTo(true); + assertThat(reader.nextBoolean()).isEqualTo(false); reader.endArray(); } @@ -129,8 +128,8 @@ public final class JsonElementReaderTest { JsonElement element = JsonParser.parseString("[\"A\",\"B\"]"); JsonTreeReader reader = new JsonTreeReader(element); reader.beginArray(); - assertEquals("A", reader.nextString()); - assertEquals("B", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("A"); + assertThat(reader.nextString()).isEqualTo("B"); reader.endArray(); } @@ -138,36 +137,36 @@ public final class JsonElementReaderTest { public void testArray() throws IOException { JsonElement element = JsonParser.parseString("[1, 2, 3]"); JsonTreeReader reader = new JsonTreeReader(element); - assertEquals(JsonToken.BEGIN_ARRAY, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.BEGIN_ARRAY); reader.beginArray(); - assertEquals(JsonToken.NUMBER, reader.peek()); - assertEquals(1, reader.nextInt()); - assertEquals(JsonToken.NUMBER, reader.peek()); - assertEquals(2, reader.nextInt()); - assertEquals(JsonToken.NUMBER, reader.peek()); - assertEquals(3, reader.nextInt()); - assertEquals(JsonToken.END_ARRAY, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.NUMBER); + assertThat(reader.nextInt()).isEqualTo(1); + assertThat(reader.peek()).isEqualTo(JsonToken.NUMBER); + assertThat(reader.nextInt()).isEqualTo(2); + assertThat(reader.peek()).isEqualTo(JsonToken.NUMBER); + assertThat(reader.nextInt()).isEqualTo(3); + assertThat(reader.peek()).isEqualTo(JsonToken.END_ARRAY); reader.endArray(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test public void testObject() throws IOException { JsonElement element = JsonParser.parseString("{\"A\": 1, \"B\": 2}"); JsonTreeReader reader = new JsonTreeReader(element); - assertEquals(JsonToken.BEGIN_OBJECT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.BEGIN_OBJECT); reader.beginObject(); - assertEquals(JsonToken.NAME, reader.peek()); - assertEquals("A", reader.nextName()); - assertEquals(JsonToken.NUMBER, reader.peek()); - assertEquals(1, reader.nextInt()); - assertEquals(JsonToken.NAME, reader.peek()); - assertEquals("B", reader.nextName()); - assertEquals(JsonToken.NUMBER, reader.peek()); - assertEquals(2, reader.nextInt()); - assertEquals(JsonToken.END_OBJECT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.NAME); + assertThat(reader.nextName()).isEqualTo("A"); + assertThat(reader.peek()).isEqualTo(JsonToken.NUMBER); + assertThat(reader.nextInt()).isEqualTo(1); + assertThat(reader.peek()).isEqualTo(JsonToken.NAME); + assertThat(reader.nextName()).isEqualTo("B"); + assertThat(reader.peek()).isEqualTo(JsonToken.NUMBER); + assertThat(reader.nextInt()).isEqualTo(2); + assertThat(reader.peek()).isEqualTo(JsonToken.END_OBJECT); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -197,12 +196,12 @@ public final class JsonElementReaderTest { JsonElement element = JsonParser.parseString("{\"A\":{},\"B\":{\"C\":{}}}"); JsonTreeReader reader = new JsonTreeReader(element); reader.beginObject(); - assertEquals("A", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("A"); reader.beginObject(); reader.endObject(); - assertEquals("B", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("B"); reader.beginObject(); - assertEquals("C", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("C"); reader.beginObject(); reader.endObject(); reader.endObject(); @@ -222,11 +221,11 @@ public final class JsonElementReaderTest { JsonElement element = JsonParser.parseString("[\"A\",{\"B\":[[]]},\"C\",[[]],\"D\",null]"); JsonTreeReader reader = new JsonTreeReader(element); reader.beginArray(); - assertEquals("A", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("A"); reader.skipValue(); - assertEquals("C", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("C"); reader.skipValue(); - assertEquals("D", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("D"); reader.skipValue(); reader.endArray(); } @@ -319,7 +318,7 @@ public final class JsonElementReaderTest { fail(); } catch (IllegalStateException expected) { } - assertEquals("A", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("A"); reader.endArray(); } @@ -334,7 +333,7 @@ public final class JsonElementReaderTest { } catch (IllegalStateException expected) { } reader.nextName(); - assertEquals(reader.nextJsonElement(), new JsonPrimitive(1)); + assertThat(new JsonPrimitive(1)).isEqualTo(reader.nextJsonElement()); reader.nextName(); reader.beginObject(); try { diff --git a/gson/src/test/java/com/google/gson/internal/bind/JsonTreeReaderTest.java b/gson/src/test/java/com/google/gson/internal/bind/JsonTreeReaderTest.java index 0d17e7c5..5faa7180 100644 --- a/gson/src/test/java/com/google/gson/internal/bind/JsonTreeReaderTest.java +++ b/gson/src/test/java/com/google/gson/internal/bind/JsonTreeReaderTest.java @@ -15,8 +15,7 @@ */ package com.google.gson.internal.bind; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.JsonArray; @@ -39,8 +38,8 @@ public class JsonTreeReaderTest { public void testSkipValue_emptyJsonObject() throws IOException { JsonTreeReader in = new JsonTreeReader(new JsonObject()); in.skipValue(); - assertEquals(JsonToken.END_DOCUMENT, in.peek()); - assertEquals("$", in.getPath()); + assertThat(in.peek()).isEqualTo(JsonToken.END_DOCUMENT); + assertThat(in.getPath()).isEqualTo("$"); } @Test @@ -59,8 +58,8 @@ public class JsonTreeReaderTest { jsonObject.addProperty("s", "text"); JsonTreeReader in = new JsonTreeReader(jsonObject); in.skipValue(); - assertEquals(JsonToken.END_DOCUMENT, in.peek()); - assertEquals("$", in.getPath()); + assertThat(in.peek()).isEqualTo(JsonToken.END_DOCUMENT); + assertThat(in.getPath()).isEqualTo("$"); } @Test @@ -70,9 +69,9 @@ public class JsonTreeReaderTest { JsonTreeReader in = new JsonTreeReader(jsonObject); in.beginObject(); in.skipValue(); - assertEquals(JsonToken.STRING, in.peek()); - assertEquals("$.", in.getPath()); - assertEquals("value", in.nextString()); + assertThat(in.peek()).isEqualTo(JsonToken.STRING); + assertThat(in.getPath()).isEqualTo("$."); + assertThat(in.nextString()).isEqualTo("value"); } @Test @@ -80,12 +79,12 @@ public class JsonTreeReaderTest { JsonTreeReader reader = new JsonTreeReader(new JsonObject()); reader.beginObject(); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); - assertEquals("$", reader.getPath()); + assertThat(reader.getPath()).isEqualTo("$"); reader.skipValue(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); - assertEquals("$", reader.getPath()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); + assertThat(reader.getPath()).isEqualTo("$"); } @Test @@ -93,8 +92,8 @@ public class JsonTreeReaderTest { JsonTreeReader reader = new JsonTreeReader(new JsonArray()); reader.beginArray(); reader.skipValue(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); - assertEquals("$", reader.getPath()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); + assertThat(reader.getPath()).isEqualTo("$"); } @Test @@ -102,8 +101,8 @@ public class JsonTreeReaderTest { JsonTreeReader reader = new JsonTreeReader(new JsonObject()); reader.beginObject(); reader.skipValue(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); - assertEquals("$", reader.getPath()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); + assertThat(reader.getPath()).isEqualTo("$"); } @Test @@ -111,7 +110,7 @@ public class JsonTreeReaderTest { JsonTreeReader reader = new JsonTreeReader(new JsonObject()); reader.beginObject(); reader.endObject(); - assertFalse(reader.hasNext()); + assertThat(reader.hasNext()).isFalse(); } @Test @@ -134,8 +133,7 @@ public class JsonTreeReaderTest { reader.peek(); fail(); } catch (MalformedJsonException expected) { - assertEquals("Custom JsonElement subclass " + CustomSubclass.class.getName() + " is not supported", - expected.getMessage()); + assertThat(expected.getMessage()).isEqualTo("Custom JsonElement subclass " + CustomSubclass.class.getName() + " is not supported"); } } diff --git a/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java b/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java index 4e2ed240..3801033a 100644 --- a/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java +++ b/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java @@ -16,7 +16,7 @@ package com.google.gson.internal.bind; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.JsonElement; @@ -39,7 +39,7 @@ public final class JsonTreeWriterTest { writer.value(2); writer.value(3); writer.endArray(); - assertEquals("[1,2,3]", writer.get().toString()); + assertThat(writer.get().toString()).isEqualTo("[1,2,3]"); } @Test @@ -53,7 +53,7 @@ public final class JsonTreeWriterTest { writer.endArray(); writer.endArray(); writer.endArray(); - assertEquals("[[],[[]]]", writer.get().toString()); + assertThat(writer.get().toString()).isEqualTo("[[],[[]]]"); } @Test @@ -63,7 +63,7 @@ public final class JsonTreeWriterTest { writer.name("A").value(1); writer.name("B").value(2); writer.endObject(); - assertEquals("{\"A\":1,\"B\":2}", writer.get().toString()); + assertThat(writer.get().toString()).isEqualTo("{\"A\":1,\"B\":2}"); } @Test @@ -80,7 +80,7 @@ public final class JsonTreeWriterTest { writer.beginObject(); writer.endObject(); writer.endObject(); - assertEquals("{\"A\":{\"B\":{}},\"C\":{}}", writer.get().toString()); + assertThat(writer.get().toString()).isEqualTo("{\"A\":{\"B\":{}},\"C\":{}}"); } @Test @@ -118,7 +118,7 @@ public final class JsonTreeWriterTest { writer.name("A"); writer.nullValue(); writer.endObject(); - assertEquals("{}", writer.get().toString()); + assertThat(writer.get().toString()).isEqualTo("{}"); } @Test @@ -129,46 +129,46 @@ public final class JsonTreeWriterTest { writer.name("A"); writer.nullValue(); writer.endObject(); - assertEquals("{\"A\":null}", writer.get().toString()); + assertThat(writer.get().toString()).isEqualTo("{\"A\":null}"); } @Test public void testEmptyWriter() { JsonTreeWriter writer = new JsonTreeWriter(); - assertEquals(JsonNull.INSTANCE, writer.get()); + assertThat(writer.get()).isEqualTo(JsonNull.INSTANCE); } @Test public void testBeginArray() throws Exception { JsonTreeWriter writer = new JsonTreeWriter(); - assertEquals(writer, writer.beginArray()); + assertThat(writer.beginArray()).isEqualTo(writer); } @Test public void testBeginObject() throws Exception { JsonTreeWriter writer = new JsonTreeWriter(); - assertEquals(writer, writer.beginObject()); + assertThat(writer.beginObject()).isEqualTo(writer); } @Test public void testValueString() throws Exception { JsonTreeWriter writer = new JsonTreeWriter(); String n = "as"; - assertEquals(writer, writer.value(n)); + assertThat(writer.value(n)).isEqualTo(writer); } @Test public void testBoolValue() throws Exception { JsonTreeWriter writer = new JsonTreeWriter(); boolean bool = true; - assertEquals(writer, writer.value(bool)); + assertThat(writer.value(bool)).isEqualTo(writer); } @Test public void testBoolMaisValue() throws Exception { JsonTreeWriter writer = new JsonTreeWriter(); Boolean bool = true; - assertEquals(writer, writer.value(bool)); + assertThat(writer.value(bool)).isEqualTo(writer); } @Test @@ -183,7 +183,7 @@ public final class JsonTreeWriterTest { writer.value(Double.NEGATIVE_INFINITY); writer.value(Double.POSITIVE_INFINITY); writer.endArray(); - assertEquals("[NaN,-Infinity,Infinity,NaN,-Infinity,Infinity]", writer.get().toString()); + assertThat(writer.get().toString()).isEqualTo("[NaN,-Infinity,Infinity,NaN,-Infinity,Infinity]"); } @Test diff --git a/gson/src/test/java/com/google/gson/internal/bind/RecursiveTypesResolveTest.java b/gson/src/test/java/com/google/gson/internal/bind/RecursiveTypesResolveTest.java index 9959360d..5c0fe56c 100644 --- a/gson/src/test/java/com/google/gson/internal/bind/RecursiveTypesResolveTest.java +++ b/gson/src/test/java/com/google/gson/internal/bind/RecursiveTypesResolveTest.java @@ -16,8 +16,7 @@ package com.google.gson.internal.bind; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.TypeAdapter; @@ -51,7 +50,7 @@ public class RecursiveTypesResolveTest { public void testRecursiveResolveSimple() { @SuppressWarnings("rawtypes") TypeAdapter adapter = new Gson().getAdapter(Foo1.class); - assertNotNull(adapter); + assertThat(adapter).isNotNull(); } /** @@ -60,26 +59,26 @@ public class RecursiveTypesResolveTest { @Test public void testDoubleSupertype() { - assertEquals($Gson$Types.supertypeOf(Number.class), - $Gson$Types.supertypeOf($Gson$Types.supertypeOf(Number.class))); + assertThat($Gson$Types.supertypeOf($Gson$Types.supertypeOf(Number.class))) + .isEqualTo($Gson$Types.supertypeOf(Number.class)); } @Test public void testDoubleSubtype() { - assertEquals($Gson$Types.subtypeOf(Number.class), - $Gson$Types.subtypeOf($Gson$Types.subtypeOf(Number.class))); + assertThat($Gson$Types.subtypeOf($Gson$Types.subtypeOf(Number.class))) + .isEqualTo($Gson$Types.subtypeOf(Number.class)); } @Test public void testSuperSubtype() { - assertEquals($Gson$Types.subtypeOf(Object.class), - $Gson$Types.supertypeOf($Gson$Types.subtypeOf(Number.class))); + assertThat($Gson$Types.supertypeOf($Gson$Types.subtypeOf(Number.class))) + .isEqualTo($Gson$Types.subtypeOf(Object.class)); } @Test public void testSubSupertype() { - assertEquals($Gson$Types.subtypeOf(Object.class), - $Gson$Types.subtypeOf($Gson$Types.supertypeOf(Number.class))); + assertThat($Gson$Types.subtypeOf($Gson$Types.supertypeOf(Number.class))) + .isEqualTo($Gson$Types.subtypeOf(Object.class)); } /** @@ -97,16 +96,16 @@ public class RecursiveTypesResolveTest { } @Test - public void testRecursiveTypeVariablesResolve1() throws Exception { + public void testRecursiveTypeVariablesResolve1() { @SuppressWarnings("rawtypes") TypeAdapter adapter = new Gson().getAdapter(TestType.class); - assertNotNull(adapter); + assertThat(adapter).isNotNull(); } @Test - public void testRecursiveTypeVariablesResolve12() throws Exception { + public void testRecursiveTypeVariablesResolve12() { @SuppressWarnings("rawtypes") TypeAdapter adapter = new Gson().getAdapter(TestType2.class); - assertNotNull(adapter); + assertThat(adapter).isNotNull(); } } diff --git a/gson/src/test/java/com/google/gson/internal/bind/util/ISO8601UtilsTest.java b/gson/src/test/java/com/google/gson/internal/bind/util/ISO8601UtilsTest.java index 4c162946..4db58653 100644 --- a/gson/src/test/java/com/google/gson/internal/bind/util/ISO8601UtilsTest.java +++ b/gson/src/test/java/com/google/gson/internal/bind/util/ISO8601UtilsTest.java @@ -1,6 +1,6 @@ package com.google.gson.internal.bind.util; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertThrows; import static org.junit.Assert.fail; @@ -37,7 +37,7 @@ public class ISO8601UtilsTest { Date date = calendar.getTime(); String dateStr = ISO8601Utils.format(date); String expectedDate = "2018-06-25"; - assertEquals(expectedDate, dateStr.substring(0, expectedDate.length())); + assertThat(dateStr.substring(0, expectedDate.length())).isEqualTo(expectedDate); } @Test @@ -46,7 +46,7 @@ public class ISO8601UtilsTest { Date date = new Date(time); String dateStr = ISO8601Utils.format(date, true); String expectedDate = "2018-06-28T18:06:16.870Z"; - assertEquals(expectedDate, dateStr); + assertThat(dateStr).isEqualTo(expectedDate); } @Test @@ -55,7 +55,7 @@ public class ISO8601UtilsTest { Date date = new Date(time); String dateStr = ISO8601Utils.format(date, true, TimeZone.getTimeZone("Brazil/East")); String expectedDate = "2018-06-28T15:06:16.870-03:00"; - assertEquals(expectedDate, dateStr); + assertThat(dateStr).isEqualTo(expectedDate); } @Test @@ -63,7 +63,7 @@ public class ISO8601UtilsTest { String dateStr = "2018-06-25"; Date date = ISO8601Utils.parse(dateStr, new ParsePosition(0)); Date expectedDate = new GregorianCalendar(2018, Calendar.JUNE, 25).getTime(); - assertEquals(expectedDate, date); + assertThat(date).isEqualTo(expectedDate); } @Test @@ -93,7 +93,7 @@ public class ISO8601UtilsTest { GregorianCalendar calendar = createUtcCalendar(); calendar.set(2018, Calendar.JUNE, 25, 3, 0); Date expectedDate = calendar.getTime(); - assertEquals(expectedDate, date); + assertThat(date).isEqualTo(expectedDate); } @Test @@ -103,11 +103,11 @@ public class ISO8601UtilsTest { GregorianCalendar calendar = createUtcCalendar(); calendar.set(2018, Calendar.JUNE, 25, 3, 0); Date expectedDate = calendar.getTime(); - assertEquals(expectedDate, date); + assertThat(date).isEqualTo(expectedDate); } @Test - public void testDateParseInvalidTime() throws ParseException { + public void testDateParseInvalidTime() { final String dateStr = "2018-06-25T61:60:62-03:00"; assertThrows(ParseException.class, new ThrowingRunnable() { @Override diff --git a/gson/src/test/java/com/google/gson/internal/reflect/Java17ReflectionHelperTest.java b/gson/src/test/java/com/google/gson/internal/reflect/Java17ReflectionHelperTest.java index 4d4089e8..6d8a7015 100644 --- a/gson/src/test/java/com/google/gson/internal/reflect/Java17ReflectionHelperTest.java +++ b/gson/src/test/java/com/google/gson/internal/reflect/Java17ReflectionHelperTest.java @@ -1,9 +1,6 @@ package com.google.gson.internal.reflect; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import java.lang.reflect.Constructor; import java.lang.reflect.Field; @@ -18,18 +15,14 @@ public class Java17ReflectionHelperTest { public void testJava17Record() throws ClassNotFoundException { Class unixDomainPrincipalClass = Class.forName("jdk.net.UnixDomainPrincipal"); // UnixDomainPrincipal is a record - assertTrue(ReflectionHelper.isRecord(unixDomainPrincipalClass)); + assertThat(ReflectionHelper.isRecord(unixDomainPrincipalClass)).isTrue(); // with 2 components - assertArrayEquals( - new String[] {"user", "group"}, - ReflectionHelper.getRecordComponentNames(unixDomainPrincipalClass)); + assertThat(ReflectionHelper.getRecordComponentNames(unixDomainPrincipalClass)).isEqualTo(new String[] {"user", "group"}); // Check canonical constructor Constructor constructor = ReflectionHelper.getCanonicalRecordConstructor(unixDomainPrincipalClass); - assertNotNull(constructor); - assertArrayEquals( - new Class[] {UserPrincipal.class, GroupPrincipal.class}, - constructor.getParameterTypes()); + assertThat(constructor).isNotNull(); + assertThat(constructor.getParameterTypes()).isEqualTo(new Class[] {UserPrincipal.class, GroupPrincipal.class}); } @Test @@ -43,14 +36,14 @@ public class Java17ReflectionHelperTest { .newInstance(new PrincipalImpl("user"), new PrincipalImpl("group")); String[] componentNames = ReflectionHelper.getRecordComponentNames(unixDomainPrincipalClass); - assertTrue(componentNames.length > 0); + assertThat(componentNames.length > 0).isTrue(); for (String componentName : componentNames) { Field componentField = unixDomainPrincipalClass.getDeclaredField(componentName); Method accessor = ReflectionHelper.getAccessor(unixDomainPrincipalClass, componentField); Object principal = accessor.invoke(unixDomainPrincipal); - assertEquals(new PrincipalImpl(componentName), principal); + assertThat(principal).isEqualTo(new PrincipalImpl(componentName)); } } diff --git a/gson/src/test/java/com/google/gson/internal/sql/SqlTypesGsonTest.java b/gson/src/test/java/com/google/gson/internal/sql/SqlTypesGsonTest.java index 832e38ca..e685a48f 100644 --- a/gson/src/test/java/com/google/gson/internal/sql/SqlTypesGsonTest.java +++ b/gson/src/test/java/com/google/gson/internal/sql/SqlTypesGsonTest.java @@ -1,6 +1,6 @@ package com.google.gson.internal.sql; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -50,7 +50,7 @@ public class SqlTypesGsonTest { public void testDefaultSqlDateSerialization() { java.sql.Date instant = new java.sql.Date(1259875082000L); String json = gson.toJson(instant); - assertEquals("\"Dec 3, 2009\"", json); + assertThat(json).isEqualTo("\"Dec 3, 2009\""); } @Test @@ -71,8 +71,8 @@ public class SqlTypesGsonTest { java.sql.Date sqlDate = new java.sql.Date(0L); Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create(); String json = gson.toJson(sqlDate, Timestamp.class); - assertEquals("\"1970-01-01\"", json); - assertEquals(0, gson.fromJson("\"1970-01-01\"", java.sql.Date.class).getTime()); + assertThat(json).isEqualTo("\"1970-01-01\""); + assertThat(gson.fromJson("\"1970-01-01\"", java.sql.Date.class).getTime()).isEqualTo(0); } finally { TimeZone.setDefault(defaultTimeZone); Locale.setDefault(defaultLocale); @@ -83,7 +83,7 @@ public class SqlTypesGsonTest { public void testDefaultSqlTimeSerialization() { Time now = new Time(1259875082000L); String json = gson.toJson(now); - assertEquals("\"01:18:02 PM\"", json); + assertThat(json).isEqualTo("\"01:18:02 PM\""); } @Test @@ -98,9 +98,9 @@ public class SqlTypesGsonTest { Timestamp now = new java.sql.Timestamp(1259875082000L); String json = gson.toJson(now); if (JavaVersion.isJava9OrLater()) { - assertEquals("\"Dec 3, 2009, 1:18:02 PM\"", json); + assertThat(json).isEqualTo("\"Dec 3, 2009, 1:18:02 PM\""); } else { - assertEquals("\"Dec 3, 2009 1:18:02 PM\"", json); + assertThat(json).isEqualTo("\"Dec 3, 2009 1:18:02 PM\""); } } @@ -123,8 +123,8 @@ public class SqlTypesGsonTest { Timestamp timestamp = new Timestamp(0L); Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create(); String json = gson.toJson(timestamp, Timestamp.class); - assertEquals("\"1970-01-01\"", json); - assertEquals(0, gson.fromJson("\"1970-01-01\"", Timestamp.class).getTime()); + assertThat(json).isEqualTo("\"1970-01-01\""); + assertThat(gson.fromJson("\"1970-01-01\"", Timestamp.class).getTime()).isEqualTo(0); } finally { TimeZone.setDefault(defaultTimeZone); Locale.setDefault(defaultLocale); diff --git a/gson/src/test/java/com/google/gson/internal/sql/SqlTypesSupportTest.java b/gson/src/test/java/com/google/gson/internal/sql/SqlTypesSupportTest.java index 51244283..d912fd55 100644 --- a/gson/src/test/java/com/google/gson/internal/sql/SqlTypesSupportTest.java +++ b/gson/src/test/java/com/google/gson/internal/sql/SqlTypesSupportTest.java @@ -1,20 +1,19 @@ package com.google.gson.internal.sql; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import org.junit.Test; public class SqlTypesSupportTest { @Test public void testSupported() { - assertTrue(SqlTypesSupport.SUPPORTS_SQL_TYPES); + assertThat(SqlTypesSupport.SUPPORTS_SQL_TYPES).isTrue(); - assertNotNull(SqlTypesSupport.DATE_DATE_TYPE); - assertNotNull(SqlTypesSupport.TIMESTAMP_DATE_TYPE); + assertThat(SqlTypesSupport.DATE_DATE_TYPE).isNotNull(); + assertThat(SqlTypesSupport.TIMESTAMP_DATE_TYPE).isNotNull(); - assertNotNull(SqlTypesSupport.DATE_FACTORY); - assertNotNull(SqlTypesSupport.TIME_FACTORY); - assertNotNull(SqlTypesSupport.TIMESTAMP_FACTORY); + assertThat(SqlTypesSupport.DATE_FACTORY).isNotNull(); + assertThat(SqlTypesSupport.TIME_FACTORY).isNotNull(); + assertThat(SqlTypesSupport.TIMESTAMP_FACTORY).isNotNull(); } } diff --git a/gson/src/test/java/com/google/gson/metrics/PerformanceTest.java b/gson/src/test/java/com/google/gson/metrics/PerformanceTest.java index 5670506b..13f7b7f6 100644 --- a/gson/src/test/java/com/google/gson/metrics/PerformanceTest.java +++ b/gson/src/test/java/com/google/gson/metrics/PerformanceTest.java @@ -16,8 +16,7 @@ package com.google.gson.metrics; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.JsonParseException; @@ -78,8 +77,8 @@ public class PerformanceTest { private void parseLongJson(String json) throws JsonParseException { ExceptionHolder target = gson.fromJson(json, ExceptionHolder.class); - assertTrue(target.message.contains("Error")); - assertTrue(target.stackTrace.contains("Yippie")); + assertThat(target.message).contains("Error"); + assertThat(target.stackTrace).contains("Yippie"); } private static class ExceptionHolder { @@ -149,7 +148,7 @@ public class PerformanceTest { String json = sb.toString(); Type collectionType = new TypeToken>(){}.getType(); List list = gson.fromJson(json, collectionType); - assertEquals(count, list.size()); + assertThat(list).hasSize(count); } /** diff --git a/gson/src/test/java/com/google/gson/reflect/TypeTokenTest.java b/gson/src/test/java/com/google/gson/reflect/TypeTokenTest.java index 89c5c4c3..52b2988d 100644 --- a/gson/src/test/java/com/google/gson/reflect/TypeTokenTest.java +++ b/gson/src/test/java/com/google/gson/reflect/TypeTokenTest.java @@ -16,9 +16,7 @@ package com.google.gson.reflect; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import java.lang.reflect.GenericArrayType; @@ -45,10 +43,10 @@ public final class TypeTokenTest { @SuppressWarnings({"deprecation"}) @Test public void testIsAssignableFromRawTypes() { - assertTrue(TypeToken.get(Object.class).isAssignableFrom(String.class)); - assertFalse(TypeToken.get(String.class).isAssignableFrom(Object.class)); - assertTrue(TypeToken.get(RandomAccess.class).isAssignableFrom(ArrayList.class)); - assertFalse(TypeToken.get(ArrayList.class).isAssignableFrom(RandomAccess.class)); + assertThat(TypeToken.get(Object.class).isAssignableFrom(String.class)).isTrue(); + assertThat(TypeToken.get(String.class).isAssignableFrom(Object.class)).isFalse(); + assertThat(TypeToken.get(RandomAccess.class).isAssignableFrom(ArrayList.class)).isTrue(); + assertThat(TypeToken.get(ArrayList.class).isAssignableFrom(RandomAccess.class)).isFalse(); } @SuppressWarnings({"deprecation"}) @@ -56,13 +54,13 @@ public final class TypeTokenTest { public void testIsAssignableFromWithTypeParameters() throws Exception { Type a = getClass().getDeclaredField("listOfInteger").getGenericType(); Type b = getClass().getDeclaredField("listOfNumber").getGenericType(); - assertTrue(TypeToken.get(a).isAssignableFrom(a)); - assertTrue(TypeToken.get(b).isAssignableFrom(b)); + assertThat(TypeToken.get(a).isAssignableFrom(a)).isTrue(); + assertThat(TypeToken.get(b).isAssignableFrom(b)).isTrue(); // listOfInteger = listOfNumber; // doesn't compile; must be false - assertFalse(TypeToken.get(a).isAssignableFrom(b)); + assertThat(TypeToken.get(a).isAssignableFrom(b)).isFalse(); // listOfNumber = listOfInteger; // doesn't compile; must be false - assertFalse(TypeToken.get(b).isAssignableFrom(a)); + assertThat(TypeToken.get(b).isAssignableFrom(a)).isFalse(); } @SuppressWarnings({"deprecation"}) @@ -70,14 +68,14 @@ public final class TypeTokenTest { public void testIsAssignableFromWithBasicWildcards() throws Exception { Type a = getClass().getDeclaredField("listOfString").getGenericType(); Type b = getClass().getDeclaredField("listOfUnknown").getGenericType(); - assertTrue(TypeToken.get(a).isAssignableFrom(a)); - assertTrue(TypeToken.get(b).isAssignableFrom(b)); + assertThat(TypeToken.get(a).isAssignableFrom(a)).isTrue(); + assertThat(TypeToken.get(b).isAssignableFrom(b)).isTrue(); // listOfString = listOfUnknown // doesn't compile; must be false - assertFalse(TypeToken.get(a).isAssignableFrom(b)); + assertThat(TypeToken.get(a).isAssignableFrom(b)).isFalse(); listOfUnknown = listOfString; // compiles; must be true // The following assertion is too difficult to support reliably, so disabling - // assertTrue(TypeToken.get(b).isAssignableFrom(a)); + // assertThat(TypeToken.get(b).isAssignableFrom(a)).isTrue(); } @SuppressWarnings({"deprecation"}) @@ -85,23 +83,23 @@ public final class TypeTokenTest { public void testIsAssignableFromWithNestedWildcards() throws Exception { Type a = getClass().getDeclaredField("listOfSetOfString").getGenericType(); Type b = getClass().getDeclaredField("listOfSetOfUnknown").getGenericType(); - assertTrue(TypeToken.get(a).isAssignableFrom(a)); - assertTrue(TypeToken.get(b).isAssignableFrom(b)); + assertThat(TypeToken.get(a).isAssignableFrom(a)).isTrue(); + assertThat(TypeToken.get(b).isAssignableFrom(b)).isTrue(); // listOfSetOfString = listOfSetOfUnknown; // doesn't compile; must be false - assertFalse(TypeToken.get(a).isAssignableFrom(b)); + assertThat(TypeToken.get(a).isAssignableFrom(b)).isFalse(); // listOfSetOfUnknown = listOfSetOfString; // doesn't compile; must be false - assertFalse(TypeToken.get(b).isAssignableFrom(a)); + assertThat(TypeToken.get(b).isAssignableFrom(a)).isFalse(); } @Test public void testArrayFactory() { TypeToken expectedStringArray = new TypeToken() {}; - assertEquals(expectedStringArray, TypeToken.getArray(String.class)); + assertThat(TypeToken.getArray(String.class)).isEqualTo(expectedStringArray); TypeToken expectedListOfStringArray = new TypeToken[]>() {}; Type listOfString = new TypeToken>() {}.getType(); - assertEquals(expectedListOfStringArray, TypeToken.getArray(listOfString)); + assertThat(TypeToken.getArray(listOfString)).isEqualTo(expectedListOfStringArray); try { TypeToken.getArray(null); @@ -113,24 +111,24 @@ public final class TypeTokenTest { @Test public void testParameterizedFactory() { TypeToken expectedListOfString = new TypeToken>() {}; - assertEquals(expectedListOfString, TypeToken.getParameterized(List.class, String.class)); + assertThat(TypeToken.getParameterized(List.class, String.class)).isEqualTo(expectedListOfString); TypeToken expectedMapOfStringToString = new TypeToken>() {}; - assertEquals(expectedMapOfStringToString, TypeToken.getParameterized(Map.class, String.class, String.class)); + assertThat(TypeToken.getParameterized(Map.class, String.class, String.class)).isEqualTo(expectedMapOfStringToString); TypeToken expectedListOfListOfListOfString = new TypeToken>>>() {}; Type listOfString = TypeToken.getParameterized(List.class, String.class).getType(); Type listOfListOfString = TypeToken.getParameterized(List.class, listOfString).getType(); - assertEquals(expectedListOfListOfListOfString, TypeToken.getParameterized(List.class, listOfListOfString)); + assertThat(TypeToken.getParameterized(List.class, listOfListOfString)).isEqualTo(expectedListOfListOfListOfString); TypeToken expectedWithExactArg = new TypeToken>() {}; - assertEquals(expectedWithExactArg, TypeToken.getParameterized(GenericWithBound.class, Number.class)); + assertThat(TypeToken.getParameterized(GenericWithBound.class, Number.class)).isEqualTo(expectedWithExactArg); TypeToken expectedWithSubclassArg = new TypeToken>() {}; - assertEquals(expectedWithSubclassArg, TypeToken.getParameterized(GenericWithBound.class, Integer.class)); + assertThat(TypeToken.getParameterized(GenericWithBound.class, Integer.class)).isEqualTo(expectedWithSubclassArg); TypeToken expectedSatisfyingTwoBounds = new TypeToken>() {}; - assertEquals(expectedSatisfyingTwoBounds, TypeToken.getParameterized(GenericWithMultiBound.class, ClassSatisfyingBounds.class)); + assertThat(TypeToken.getParameterized(GenericWithMultiBound.class, ClassSatisfyingBounds.class)).isEqualTo(expectedSatisfyingTwoBounds); } @Test @@ -146,73 +144,68 @@ public final class TypeTokenTest { TypeToken.getParameterized(arrayType, new Type[0]); fail(); } catch (IllegalArgumentException e) { - assertEquals("rawType must be of type Class, but was java.lang.String[]", e.getMessage()); + assertThat(e).hasMessageThat().isEqualTo("rawType must be of type Class, but was java.lang.String[]"); } try { TypeToken.getParameterized(String.class, String.class); fail(); } catch (IllegalArgumentException e) { - assertEquals("java.lang.String requires 0 type arguments, but got 1", e.getMessage()); + assertThat(e).hasMessageThat().isEqualTo("java.lang.String requires 0 type arguments, but got 1"); } try { TypeToken.getParameterized(List.class, new Type[0]); fail(); } catch (IllegalArgumentException e) { - assertEquals("java.util.List requires 1 type arguments, but got 0", e.getMessage()); + assertThat(e).hasMessageThat().isEqualTo("java.util.List requires 1 type arguments, but got 0"); } try { TypeToken.getParameterized(List.class, String.class, String.class); fail(); } catch (IllegalArgumentException e) { - assertEquals("java.util.List requires 1 type arguments, but got 2", e.getMessage()); + assertThat(e).hasMessageThat().isEqualTo("java.util.List requires 1 type arguments, but got 2"); } try { TypeToken.getParameterized(GenericWithBound.class, String.class); fail(); } catch (IllegalArgumentException e) { - assertEquals("Type argument class java.lang.String does not satisfy bounds " - + "for type variable T declared by " + GenericWithBound.class, - e.getMessage()); + assertThat(e).hasMessageThat().isEqualTo("Type argument class java.lang.String does not satisfy bounds " + + "for type variable T declared by " + GenericWithBound.class); } try { TypeToken.getParameterized(GenericWithBound.class, Object.class); fail(); } catch (IllegalArgumentException e) { - assertEquals("Type argument class java.lang.Object does not satisfy bounds " - + "for type variable T declared by " + GenericWithBound.class, - e.getMessage()); + assertThat(e).hasMessageThat().isEqualTo("Type argument class java.lang.Object does not satisfy bounds " + + "for type variable T declared by " + GenericWithBound.class); } try { TypeToken.getParameterized(GenericWithMultiBound.class, Number.class); fail(); } catch (IllegalArgumentException e) { - assertEquals("Type argument class java.lang.Number does not satisfy bounds " - + "for type variable T declared by " + GenericWithMultiBound.class, - e.getMessage()); + assertThat(e).hasMessageThat().isEqualTo("Type argument class java.lang.Number does not satisfy bounds " + + "for type variable T declared by " + GenericWithMultiBound.class); } try { TypeToken.getParameterized(GenericWithMultiBound.class, CharSequence.class); fail(); } catch (IllegalArgumentException e) { - assertEquals("Type argument interface java.lang.CharSequence does not satisfy bounds " - + "for type variable T declared by " + GenericWithMultiBound.class, - e.getMessage()); + assertThat(e).hasMessageThat().isEqualTo("Type argument interface java.lang.CharSequence does not satisfy bounds " + + "for type variable T declared by " + GenericWithMultiBound.class); } try { TypeToken.getParameterized(GenericWithMultiBound.class, Object.class); fail(); } catch (IllegalArgumentException e) { - assertEquals("Type argument class java.lang.Object does not satisfy bounds " - + "for type variable T declared by " + GenericWithMultiBound.class, - e.getMessage()); + assertThat(e).hasMessageThat().isEqualTo("Type argument class java.lang.Object does not satisfy bounds " + + "for type variable T declared by " + GenericWithMultiBound.class); } } @@ -222,8 +215,8 @@ public final class TypeTokenTest { @Test public void testTypeTokenNonAnonymousSubclass() { TypeToken typeToken = new CustomTypeToken(); - assertEquals(String.class, typeToken.getRawType()); - assertEquals(String.class, typeToken.getType()); + assertThat(typeToken.getRawType()).isEqualTo(String.class); + assertThat(typeToken.getType()).isEqualTo(String.class); } /** @@ -240,21 +233,21 @@ public final class TypeTokenTest { new SubTypeToken() {}; fail(); } catch (IllegalStateException expected) { - assertEquals("Must only create direct subclasses of TypeToken", expected.getMessage()); + assertThat(expected.getMessage()).isEqualTo("Must only create direct subclasses of TypeToken"); } try { new SubSubTypeToken1(); fail(); } catch (IllegalStateException expected) { - assertEquals("Must only create direct subclasses of TypeToken", expected.getMessage()); + assertThat(expected.getMessage()).isEqualTo("Must only create direct subclasses of TypeToken"); } try { new SubSubTypeToken2(); fail(); } catch (IllegalStateException expected) { - assertEquals("Must only create direct subclasses of TypeToken", expected.getMessage()); + assertThat(expected.getMessage()).isEqualTo("Must only create direct subclasses of TypeToken"); } } @@ -265,9 +258,8 @@ public final class TypeTokenTest { new TypeToken() {}; fail(); } catch (IllegalStateException expected) { - assertEquals("TypeToken must be created with a type argument: new TypeToken<...>() {}; " - + "When using code shrinkers (ProGuard, R8, ...) make sure that generic signatures are preserved.", - expected.getMessage()); + assertThat(expected).hasMessageThat().isEqualTo("TypeToken must be created with a type argument: new TypeToken<...>() {}; " + + "When using code shrinkers (ProGuard, R8, ...) make sure that generic signatures are preserved."); } } } diff --git a/gson/src/test/java/com/google/gson/regression/JsonAdapterNullSafeTest.java b/gson/src/test/java/com/google/gson/regression/JsonAdapterNullSafeTest.java index a14faff3..354f2fd3 100644 --- a/gson/src/test/java/com/google/gson/regression/JsonAdapterNullSafeTest.java +++ b/gson/src/test/java/com/google/gson/regression/JsonAdapterNullSafeTest.java @@ -15,7 +15,7 @@ */ package com.google.gson.regression; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import com.google.gson.Gson; import com.google.gson.TypeAdapter; @@ -28,15 +28,15 @@ public class JsonAdapterNullSafeTest { private final Gson gson = new Gson(); @Test - public void testNullSafeBugSerialize() throws Exception { + public void testNullSafeBugSerialize() { Device device = new Device("ec57803e"); gson.toJson(device); } @Test - public void testNullSafeBugDeserialize() throws Exception { + public void testNullSafeBugDeserialize() { Device device = gson.fromJson("{'id':'ec57803e2'}", Device.class); - assertEquals("ec57803e2", device.id); + assertThat(device.id).isEqualTo("ec57803e2"); } @JsonAdapter(Device.JsonAdapterFactory.class) diff --git a/gson/src/test/java/com/google/gson/regression/OSGiTest.java b/gson/src/test/java/com/google/gson/regression/OSGiTest.java index 9512241c..000a6731 100644 --- a/gson/src/test/java/com/google/gson/regression/OSGiTest.java +++ b/gson/src/test/java/com/google/gson/regression/OSGiTest.java @@ -15,7 +15,7 @@ */ package com.google.gson.regression; -import static org.junit.Assert.assertNotNull; +import static com.google.common.truth.Truth.assertWithMessage; import static org.junit.Assert.fail; import java.io.IOException; @@ -32,7 +32,7 @@ public class OSGiTest { public void testComGoogleGsonAnnotationsPackage() throws Exception { Manifest mf = findManifest("com.google.gson"); String importPkg = mf.getMainAttributes().getValue("Import-Package"); - assertNotNull("Import-Package statement is there", importPkg); + assertWithMessage("Import-Package statement is there").that(importPkg).isNotNull(); assertSubstring("There should be com.google.gson.annotations dependency", importPkg, "com.google.gson.annotations"); } @@ -40,7 +40,7 @@ public class OSGiTest { public void testSunMiscImportPackage() throws Exception { Manifest mf = findManifest("com.google.gson"); String importPkg = mf.getMainAttributes().getValue("Import-Package"); - assertNotNull("Import-Package statement is there", importPkg); + assertWithMessage("Import-Package statement is there").that(importPkg).isNotNull(); for (String dep : importPkg.split(",")) { if (dep.contains("sun.misc")) { assertSubstring("sun.misc import is optional", dep, "resolution:=optional"); diff --git a/gson/src/test/java/com/google/gson/stream/JsonReaderPathTest.java b/gson/src/test/java/com/google/gson/stream/JsonReaderPathTest.java index a755bd83..ae6c3f43 100644 --- a/gson/src/test/java/com/google/gson/stream/JsonReaderPathTest.java +++ b/gson/src/test/java/com/google/gson/stream/JsonReaderPathTest.java @@ -16,7 +16,7 @@ package com.google.gson.stream; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assume.assumeTrue; import com.google.gson.JsonElement; @@ -46,155 +46,155 @@ public class JsonReaderPathTest { @Test public void path() throws IOException { JsonReader reader = factory.create("{\"a\":[2,true,false,null,\"b\",{\"c\":\"d\"},[3]]}"); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); reader.beginObject(); - assertEquals("$.", reader.getPreviousPath()); - assertEquals("$.", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$."); + assertThat(reader.getPath()).isEqualTo("$."); reader.nextName(); - assertEquals("$.a", reader.getPreviousPath()); - assertEquals("$.a", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a"); + assertThat(reader.getPath()).isEqualTo("$.a"); reader.beginArray(); - assertEquals("$.a[0]", reader.getPreviousPath()); - assertEquals("$.a[0]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[0]"); + assertThat(reader.getPath()).isEqualTo("$.a[0]"); reader.nextInt(); - assertEquals("$.a[0]", reader.getPreviousPath()); - assertEquals("$.a[1]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[0]"); + assertThat(reader.getPath()).isEqualTo("$.a[1]"); reader.nextBoolean(); - assertEquals("$.a[1]", reader.getPreviousPath()); - assertEquals("$.a[2]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[1]"); + assertThat(reader.getPath()).isEqualTo("$.a[2]"); reader.nextBoolean(); - assertEquals("$.a[2]", reader.getPreviousPath()); - assertEquals("$.a[3]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[2]"); + assertThat(reader.getPath()).isEqualTo("$.a[3]"); reader.nextNull(); - assertEquals("$.a[3]", reader.getPreviousPath()); - assertEquals("$.a[4]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[3]"); + assertThat(reader.getPath()).isEqualTo("$.a[4]"); reader.nextString(); - assertEquals("$.a[4]", reader.getPreviousPath()); - assertEquals("$.a[5]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[4]"); + assertThat(reader.getPath()).isEqualTo("$.a[5]"); reader.beginObject(); - assertEquals("$.a[5].", reader.getPreviousPath()); - assertEquals("$.a[5].", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[5]."); + assertThat(reader.getPath()).isEqualTo("$.a[5]."); reader.nextName(); - assertEquals("$.a[5].c", reader.getPreviousPath()); - assertEquals("$.a[5].c", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[5].c"); + assertThat(reader.getPath()).isEqualTo("$.a[5].c"); reader.nextString(); - assertEquals("$.a[5].c", reader.getPreviousPath()); - assertEquals("$.a[5].c", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[5].c"); + assertThat(reader.getPath()).isEqualTo("$.a[5].c"); reader.endObject(); - assertEquals("$.a[5]", reader.getPreviousPath()); - assertEquals("$.a[6]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[5]"); + assertThat(reader.getPath()).isEqualTo("$.a[6]"); reader.beginArray(); - assertEquals("$.a[6][0]", reader.getPreviousPath()); - assertEquals("$.a[6][0]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[6][0]"); + assertThat(reader.getPath()).isEqualTo("$.a[6][0]"); reader.nextInt(); - assertEquals("$.a[6][0]", reader.getPreviousPath()); - assertEquals("$.a[6][1]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[6][0]"); + assertThat(reader.getPath()).isEqualTo("$.a[6][1]"); reader.endArray(); - assertEquals("$.a[6]", reader.getPreviousPath()); - assertEquals("$.a[7]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a[6]"); + assertThat(reader.getPath()).isEqualTo("$.a[7]"); reader.endArray(); - assertEquals("$.a", reader.getPreviousPath()); - assertEquals("$.a", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a"); + assertThat(reader.getPath()).isEqualTo("$.a"); reader.endObject(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); } @Test public void objectPath() throws IOException { JsonReader reader = factory.create("{\"a\":1,\"b\":2}"); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); reader.peek(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); reader.beginObject(); - assertEquals("$.", reader.getPreviousPath()); - assertEquals("$.", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$."); + assertThat(reader.getPath()).isEqualTo("$."); reader.peek(); - assertEquals("$.", reader.getPreviousPath()); - assertEquals("$.", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$."); + assertThat(reader.getPath()).isEqualTo("$."); reader.nextName(); - assertEquals("$.a", reader.getPreviousPath()); - assertEquals("$.a", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a"); + assertThat(reader.getPath()).isEqualTo("$.a"); reader.peek(); - assertEquals("$.a", reader.getPreviousPath()); - assertEquals("$.a", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a"); + assertThat(reader.getPath()).isEqualTo("$.a"); reader.nextInt(); - assertEquals("$.a", reader.getPreviousPath()); - assertEquals("$.a", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a"); + assertThat(reader.getPath()).isEqualTo("$.a"); reader.peek(); - assertEquals("$.a", reader.getPreviousPath()); - assertEquals("$.a", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a"); + assertThat(reader.getPath()).isEqualTo("$.a"); reader.nextName(); - assertEquals("$.b", reader.getPreviousPath()); - assertEquals("$.b", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.b"); + assertThat(reader.getPath()).isEqualTo("$.b"); reader.peek(); - assertEquals("$.b", reader.getPreviousPath()); - assertEquals("$.b", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.b"); + assertThat(reader.getPath()).isEqualTo("$.b"); reader.nextInt(); - assertEquals("$.b", reader.getPreviousPath()); - assertEquals("$.b", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.b"); + assertThat(reader.getPath()).isEqualTo("$.b"); reader.peek(); - assertEquals("$.b", reader.getPreviousPath()); - assertEquals("$.b", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.b"); + assertThat(reader.getPath()).isEqualTo("$.b"); reader.endObject(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); reader.peek(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); reader.close(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); } @Test public void arrayPath() throws IOException { JsonReader reader = factory.create("[1,2]"); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); reader.peek(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); reader.beginArray(); - assertEquals("$[0]", reader.getPreviousPath()); - assertEquals("$[0]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0]"); + assertThat(reader.getPath()).isEqualTo("$[0]"); reader.peek(); - assertEquals("$[0]", reader.getPreviousPath()); - assertEquals("$[0]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0]"); + assertThat(reader.getPath()).isEqualTo("$[0]"); reader.nextInt(); - assertEquals("$[0]", reader.getPreviousPath()); - assertEquals("$[1]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0]"); + assertThat(reader.getPath()).isEqualTo("$[1]"); reader.peek(); - assertEquals("$[0]", reader.getPreviousPath()); - assertEquals("$[1]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0]"); + assertThat(reader.getPath()).isEqualTo("$[1]"); reader.nextInt(); - assertEquals("$[1]", reader.getPreviousPath()); - assertEquals("$[2]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[1]"); + assertThat(reader.getPath()).isEqualTo("$[2]"); reader.peek(); - assertEquals("$[1]", reader.getPreviousPath()); - assertEquals("$[2]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[1]"); + assertThat(reader.getPath()).isEqualTo("$[2]"); reader.endArray(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); reader.peek(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); reader.close(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); } @Test public void multipleTopLevelValuesInOneDocument() throws IOException { @@ -204,12 +204,12 @@ public class JsonReaderPathTest { reader.setLenient(true); reader.beginArray(); reader.endArray(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); reader.beginArray(); reader.endArray(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); } @Test public void skipArrayElements() throws IOException { @@ -217,45 +217,45 @@ public class JsonReaderPathTest { reader.beginArray(); reader.skipValue(); reader.skipValue(); - assertEquals("$[1]", reader.getPreviousPath()); - assertEquals("$[2]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[1]"); + assertThat(reader.getPath()).isEqualTo("$[2]"); } @Test public void skipArrayEnd() throws IOException { JsonReader reader = factory.create("[[],1]"); reader.beginArray(); reader.beginArray(); - assertEquals("$[0][0]", reader.getPreviousPath()); - assertEquals("$[0][0]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0][0]"); + assertThat(reader.getPath()).isEqualTo("$[0][0]"); reader.skipValue(); // skip end of array - assertEquals("$[0]", reader.getPreviousPath()); - assertEquals("$[1]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0]"); + assertThat(reader.getPath()).isEqualTo("$[1]"); } @Test public void skipObjectNames() throws IOException { JsonReader reader = factory.create("{\"a\":[]}"); reader.beginObject(); reader.skipValue(); - assertEquals("$.", reader.getPreviousPath()); - assertEquals("$.", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$."); + assertThat(reader.getPath()).isEqualTo("$."); reader.beginArray(); - assertEquals("$.[0]", reader.getPreviousPath()); - assertEquals("$.[0]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.[0]"); + assertThat(reader.getPath()).isEqualTo("$.[0]"); } @Test public void skipObjectValues() throws IOException { JsonReader reader = factory.create("{\"a\":1,\"b\":2}"); reader.beginObject(); - assertEquals("$.", reader.getPreviousPath()); - assertEquals("$.", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$."); + assertThat(reader.getPath()).isEqualTo("$."); reader.nextName(); reader.skipValue(); - assertEquals("$.a", reader.getPreviousPath()); - assertEquals("$.a", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a"); + assertThat(reader.getPath()).isEqualTo("$.a"); reader.nextName(); - assertEquals("$.b", reader.getPreviousPath()); - assertEquals("$.b", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.b"); + assertThat(reader.getPath()).isEqualTo("$.b"); } @Test public void skipObjectEnd() throws IOException { @@ -263,135 +263,135 @@ public class JsonReaderPathTest { reader.beginObject(); reader.nextName(); reader.beginObject(); - assertEquals("$.a.", reader.getPreviousPath()); - assertEquals("$.a.", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a."); + assertThat(reader.getPath()).isEqualTo("$.a."); reader.skipValue(); // skip end of object - assertEquals("$.a", reader.getPreviousPath()); - assertEquals("$.a", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a"); + assertThat(reader.getPath()).isEqualTo("$.a"); } @Test public void skipNestedStructures() throws IOException { JsonReader reader = factory.create("[[1,2,3],4]"); reader.beginArray(); reader.skipValue(); - assertEquals("$[0]", reader.getPreviousPath()); - assertEquals("$[1]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0]"); + assertThat(reader.getPath()).isEqualTo("$[1]"); } @Test public void skipEndOfDocument() throws IOException { JsonReader reader = factory.create("[]"); reader.beginArray(); reader.endArray(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); reader.skipValue(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); reader.skipValue(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); } @Test public void arrayOfObjects() throws IOException { JsonReader reader = factory.create("[{},{},{}]"); reader.beginArray(); - assertEquals("$[0]", reader.getPreviousPath()); - assertEquals("$[0]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0]"); + assertThat(reader.getPath()).isEqualTo("$[0]"); reader.beginObject(); - assertEquals("$[0].", reader.getPreviousPath()); - assertEquals("$[0].", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0]."); + assertThat(reader.getPath()).isEqualTo("$[0]."); reader.endObject(); - assertEquals("$[0]", reader.getPreviousPath()); - assertEquals("$[1]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0]"); + assertThat(reader.getPath()).isEqualTo("$[1]"); reader.beginObject(); - assertEquals("$[1].", reader.getPreviousPath()); - assertEquals("$[1].", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[1]."); + assertThat(reader.getPath()).isEqualTo("$[1]."); reader.endObject(); - assertEquals("$[1]", reader.getPreviousPath()); - assertEquals("$[2]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[1]"); + assertThat(reader.getPath()).isEqualTo("$[2]"); reader.beginObject(); - assertEquals("$[2].", reader.getPreviousPath()); - assertEquals("$[2].", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[2]."); + assertThat(reader.getPath()).isEqualTo("$[2]."); reader.endObject(); - assertEquals("$[2]", reader.getPreviousPath()); - assertEquals("$[3]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[2]"); + assertThat(reader.getPath()).isEqualTo("$[3]"); reader.endArray(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); } @Test public void arrayOfArrays() throws IOException { JsonReader reader = factory.create("[[],[],[]]"); reader.beginArray(); - assertEquals("$[0]", reader.getPreviousPath()); - assertEquals("$[0]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0]"); + assertThat(reader.getPath()).isEqualTo("$[0]"); reader.beginArray(); - assertEquals("$[0][0]", reader.getPreviousPath()); - assertEquals("$[0][0]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0][0]"); + assertThat(reader.getPath()).isEqualTo("$[0][0]"); reader.endArray(); - assertEquals("$[0]", reader.getPreviousPath()); - assertEquals("$[1]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[0]"); + assertThat(reader.getPath()).isEqualTo("$[1]"); reader.beginArray(); - assertEquals("$[1][0]", reader.getPreviousPath()); - assertEquals("$[1][0]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[1][0]"); + assertThat(reader.getPath()).isEqualTo("$[1][0]"); reader.endArray(); - assertEquals("$[1]", reader.getPreviousPath()); - assertEquals("$[2]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[1]"); + assertThat(reader.getPath()).isEqualTo("$[2]"); reader.beginArray(); - assertEquals("$[2][0]", reader.getPreviousPath()); - assertEquals("$[2][0]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[2][0]"); + assertThat(reader.getPath()).isEqualTo("$[2][0]"); reader.endArray(); - assertEquals("$[2]", reader.getPreviousPath()); - assertEquals("$[3]", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$[2]"); + assertThat(reader.getPath()).isEqualTo("$[3]"); reader.endArray(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); } @Test public void objectOfObjects() throws IOException { JsonReader reader = factory.create("{\"a\":{\"a1\":1,\"a2\":2},\"b\":{\"b1\":1}}"); reader.beginObject(); - assertEquals("$.", reader.getPreviousPath()); - assertEquals("$.", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$."); + assertThat(reader.getPath()).isEqualTo("$."); reader.nextName(); - assertEquals("$.a", reader.getPreviousPath()); - assertEquals("$.a", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a"); + assertThat(reader.getPath()).isEqualTo("$.a"); reader.beginObject(); - assertEquals("$.a.", reader.getPreviousPath()); - assertEquals("$.a.", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a."); + assertThat(reader.getPath()).isEqualTo("$.a."); reader.nextName(); - assertEquals("$.a.a1", reader.getPreviousPath()); - assertEquals("$.a.a1", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a.a1"); + assertThat(reader.getPath()).isEqualTo("$.a.a1"); reader.nextInt(); - assertEquals("$.a.a1", reader.getPreviousPath()); - assertEquals("$.a.a1", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a.a1"); + assertThat(reader.getPath()).isEqualTo("$.a.a1"); reader.nextName(); - assertEquals("$.a.a2", reader.getPreviousPath()); - assertEquals("$.a.a2", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a.a2"); + assertThat(reader.getPath()).isEqualTo("$.a.a2"); reader.nextInt(); - assertEquals("$.a.a2", reader.getPreviousPath()); - assertEquals("$.a.a2", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a.a2"); + assertThat(reader.getPath()).isEqualTo("$.a.a2"); reader.endObject(); - assertEquals("$.a", reader.getPreviousPath()); - assertEquals("$.a", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.a"); + assertThat(reader.getPath()).isEqualTo("$.a"); reader.nextName(); - assertEquals("$.b", reader.getPreviousPath()); - assertEquals("$.b", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.b"); + assertThat(reader.getPath()).isEqualTo("$.b"); reader.beginObject(); - assertEquals("$.b.", reader.getPreviousPath()); - assertEquals("$.b.", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.b."); + assertThat(reader.getPath()).isEqualTo("$.b."); reader.nextName(); - assertEquals("$.b.b1", reader.getPreviousPath()); - assertEquals("$.b.b1", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.b.b1"); + assertThat(reader.getPath()).isEqualTo("$.b.b1"); reader.nextInt(); - assertEquals("$.b.b1", reader.getPreviousPath()); - assertEquals("$.b.b1", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.b.b1"); + assertThat(reader.getPath()).isEqualTo("$.b.b1"); reader.endObject(); - assertEquals("$.b", reader.getPreviousPath()); - assertEquals("$.b", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$.b"); + assertThat(reader.getPath()).isEqualTo("$.b"); reader.endObject(); - assertEquals("$", reader.getPreviousPath()); - assertEquals("$", reader.getPath()); + assertThat(reader.getPreviousPath()).isEqualTo("$"); + assertThat(reader.getPath()).isEqualTo("$"); } public enum Factory { diff --git a/gson/src/test/java/com/google/gson/stream/JsonReaderTest.java b/gson/src/test/java/com/google/gson/stream/JsonReaderTest.java index e4ce428a..92af5bd1 100644 --- a/gson/src/test/java/com/google/gson/stream/JsonReaderTest.java +++ b/gson/src/test/java/com/google/gson/stream/JsonReaderTest.java @@ -25,9 +25,7 @@ import static com.google.gson.stream.JsonToken.NAME; import static com.google.gson.stream.JsonToken.NULL; import static com.google.gson.stream.JsonToken.NUMBER; import static com.google.gson.stream.JsonToken.STRING; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import java.io.EOFException; @@ -44,19 +42,19 @@ public final class JsonReaderTest { public void testReadArray() throws IOException { JsonReader reader = new JsonReader(reader("[true, true]")); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); + assertThat(reader.nextBoolean()).isTrue(); reader.endArray(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test public void testReadEmptyArray() throws IOException { JsonReader reader = new JsonReader(reader("[]")); reader.beginArray(); - assertFalse(reader.hasNext()); + assertThat(reader.hasNext()).isFalse(); reader.endArray(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -64,21 +62,21 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader( "{\"a\": \"android\", \"b\": \"banana\"}")); reader.beginObject(); - assertEquals("a", reader.nextName()); - assertEquals("android", reader.nextString()); - assertEquals("b", reader.nextName()); - assertEquals("banana", reader.nextString()); + assertThat(reader.nextName()).isEqualTo("a"); + assertThat(reader.nextString()).isEqualTo("android"); + assertThat(reader.nextName()).isEqualTo("b"); + assertThat(reader.nextString()).isEqualTo("banana"); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test public void testReadEmptyObject() throws IOException { JsonReader reader = new JsonReader(reader("{}")); reader.beginObject(); - assertFalse(reader.hasNext()); + assertThat(reader.hasNext()).isFalse(); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -86,7 +84,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("{}")); reader.beginObject(); reader.endObject(); - assertFalse(reader.hasNext()); + assertThat(reader.hasNext()).isFalse(); } @Test @@ -94,12 +92,12 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader( "{\"a\": [\"one\", \"two\", \"three\"], \"b\": 123}")); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); reader.skipValue(); - assertEquals("b", reader.nextName()); - assertEquals(123, reader.nextInt()); + assertThat(reader.nextName()).isEqualTo("b"); + assertThat(reader.nextInt()).isEqualTo(123); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -107,13 +105,13 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader( "{\"a\": [\"one\", \"two\", \"three\"], \"b\": 123}")); reader.beginObject(); - assertEquals("a", reader.nextName()); - assertEquals(BEGIN_ARRAY, reader.peek()); + assertThat(reader.nextName()).isEqualTo("a"); + assertThat(reader.peek()).isEqualTo(BEGIN_ARRAY); reader.skipValue(); - assertEquals("b", reader.nextName()); - assertEquals(123, reader.nextInt()); + assertThat(reader.nextName()).isEqualTo("b"); + assertThat(reader.nextInt()).isEqualTo(123); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -121,7 +119,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader( "{\"a\": [\"one\", \"two\", \"three\"], \"b\": 123}")); reader.skipValue(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -129,12 +127,12 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader( "{\"a\": { \"c\": [], \"d\": [true, true, {}] }, \"b\": \"banana\"}")); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); reader.skipValue(); - assertEquals("b", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("b"); reader.skipValue(); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -143,16 +141,16 @@ public final class JsonReaderTest { + ", \"two\": { \"num\": 2 }" + ", \"three\": { \"num\": 3 }" + "}"; JsonReader reader = new JsonReader(reader(json)); reader.beginObject(); - assertEquals("one", reader.nextName()); - assertEquals(BEGIN_OBJECT, reader.peek()); + assertThat(reader.nextName()).isEqualTo("one"); + assertThat(reader.peek()).isEqualTo(BEGIN_OBJECT); reader.skipValue(); - assertEquals("two", reader.nextName()); - assertEquals(BEGIN_OBJECT, reader.peek()); + assertThat(reader.nextName()).isEqualTo("two"); + assertThat(reader.peek()).isEqualTo(BEGIN_OBJECT); reader.skipValue(); - assertEquals("three", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("three"); reader.skipValue(); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -160,9 +158,9 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("{\"a\": 1}")); reader.beginObject(); reader.skipValue(); - assertEquals(JsonToken.NUMBER, reader.peek()); - assertEquals("$.", reader.getPath()); - assertEquals(1, reader.nextInt()); + assertThat(reader.peek()).isEqualTo(JsonToken.NUMBER); + assertThat(reader.getPath()).isEqualTo("$."); + assertThat(reader.nextInt()).isEqualTo(1); } @Test @@ -171,9 +169,9 @@ public final class JsonReaderTest { reader.setLenient(true); reader.beginObject(); reader.skipValue(); - assertEquals(JsonToken.NUMBER, reader.peek()); - assertEquals("$.", reader.getPath()); - assertEquals(1, reader.nextInt()); + assertThat(reader.peek()).isEqualTo(JsonToken.NUMBER); + assertThat(reader.getPath()).isEqualTo("$."); + assertThat(reader.nextInt()).isEqualTo(1); } @Test @@ -182,9 +180,9 @@ public final class JsonReaderTest { reader.setLenient(true); reader.beginObject(); reader.skipValue(); - assertEquals(JsonToken.NUMBER, reader.peek()); - assertEquals("$.", reader.getPath()); - assertEquals(1, reader.nextInt()); + assertThat(reader.peek()).isEqualTo(JsonToken.NUMBER); + assertThat(reader.getPath()).isEqualTo("$."); + assertThat(reader.nextInt()).isEqualTo(1); } @Test @@ -192,12 +190,12 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader( "{\"a\":123456789,\"b\":-123456789}")); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); reader.skipValue(); - assertEquals("b", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("b"); reader.skipValue(); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -205,12 +203,12 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader( "{\"a\":-123.456e-789,\"b\":123456789.0}")); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); reader.skipValue(); - assertEquals("b", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("b"); reader.skipValue(); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -218,12 +216,12 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("{}")); reader.beginObject(); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); - assertEquals("$", reader.getPath()); + assertThat(reader.getPath()).isEqualTo("$"); reader.skipValue(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); - assertEquals("$", reader.getPath()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); + assertThat(reader.getPath()).isEqualTo("$"); } @Test @@ -231,8 +229,8 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[]")); reader.beginArray(); reader.skipValue(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); - assertEquals("$", reader.getPath()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); + assertThat(reader.getPath()).isEqualTo("$"); } @Test @@ -240,8 +238,8 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("{}")); reader.beginObject(); reader.skipValue(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); - assertEquals("$", reader.getPath()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); + assertThat(reader.getPath()).isEqualTo("$"); } @Test @@ -252,14 +250,14 @@ public final class JsonReaderTest { "}"; JsonReader reader = new JsonReader(reader(json)); reader.beginObject(); - assertEquals("hello", reader.nextName()); - assertEquals(true, reader.nextBoolean()); - assertEquals("foo", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("hello"); + assertThat(reader.nextBoolean()).isTrue(); + assertThat(reader.nextName()).isEqualTo("foo"); reader.beginArray(); - assertEquals("world", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("world"); reader.endArray(); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -326,27 +324,27 @@ public final class JsonReaderTest { + "]"; JsonReader reader = new JsonReader(reader(json)); reader.beginArray(); - assertEquals("a", reader.nextString()); - assertEquals("a\"", reader.nextString()); - assertEquals("\"", reader.nextString()); - assertEquals(":", reader.nextString()); - assertEquals(",", reader.nextString()); - assertEquals("\b", reader.nextString()); - assertEquals("\f", reader.nextString()); - assertEquals("\n", reader.nextString()); - assertEquals("\r", reader.nextString()); - assertEquals("\t", reader.nextString()); - assertEquals(" ", reader.nextString()); - assertEquals("\\", reader.nextString()); - assertEquals("{", reader.nextString()); - assertEquals("}", reader.nextString()); - assertEquals("[", reader.nextString()); - assertEquals("]", reader.nextString()); - assertEquals("\0", reader.nextString()); - assertEquals("\u0019", reader.nextString()); - assertEquals("\u20AC", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("a"); + assertThat(reader.nextString()).isEqualTo("a\""); + assertThat(reader.nextString()).isEqualTo("\""); + assertThat(reader.nextString()).isEqualTo(":"); + assertThat(reader.nextString()).isEqualTo(","); + assertThat(reader.nextString()).isEqualTo("\b"); + assertThat(reader.nextString()).isEqualTo("\f"); + assertThat(reader.nextString()).isEqualTo("\n"); + assertThat(reader.nextString()).isEqualTo("\r"); + assertThat(reader.nextString()).isEqualTo("\t"); + assertThat(reader.nextString()).isEqualTo(" "); + assertThat(reader.nextString()).isEqualTo("\\"); + assertThat(reader.nextString()).isEqualTo("{"); + assertThat(reader.nextString()).isEqualTo("}"); + assertThat(reader.nextString()).isEqualTo("["); + assertThat(reader.nextString()).isEqualTo("]"); + assertThat(reader.nextString()).isEqualTo("\0"); + assertThat(reader.nextString()).isEqualTo("\u0019"); + assertThat(reader.nextString()).isEqualTo("\u20AC"); reader.endArray(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -389,9 +387,9 @@ public final class JsonReaderTest { public void testIntegersWithFractionalPartSpecified() throws IOException { JsonReader reader = new JsonReader(reader("[1.0,1.0,1.0]")); reader.beginArray(); - assertEquals(1.0, reader.nextDouble(), 0); - assertEquals(1, reader.nextInt()); - assertEquals(1L, reader.nextLong()); + assertThat(reader.nextDouble()).isEqualTo(1.0); + assertThat(reader.nextInt()).isEqualTo(1); + assertThat(reader.nextLong()).isEqualTo(1L); } @Test @@ -416,26 +414,26 @@ public final class JsonReaderTest { + "1e+1]"; JsonReader reader = new JsonReader(reader(json)); reader.beginArray(); - assertEquals(-0.0, reader.nextDouble(), 0); - assertEquals(1.0, reader.nextDouble(), 0); - assertEquals(1.7976931348623157E308, reader.nextDouble(), 0); - assertEquals(4.9E-324, reader.nextDouble(), 0); - assertEquals(0.0, reader.nextDouble(), 0); - assertEquals(0.0, reader.nextDouble(), 0); - assertEquals(-0.5, reader.nextDouble(), 0); - assertEquals(2.2250738585072014E-308, reader.nextDouble(), 0); - assertEquals(3.141592653589793, reader.nextDouble(), 0); - assertEquals(2.718281828459045, reader.nextDouble(), 0); - assertEquals(0.0, reader.nextDouble(), 0); - assertEquals(0.01, reader.nextDouble(), 0); - assertEquals(0.0, reader.nextDouble(), 0); - assertEquals(1.0, reader.nextDouble(), 0); - assertEquals(1.0, reader.nextDouble(), 0); - assertEquals(1.0, reader.nextDouble(), 0); - assertEquals(10.0, reader.nextDouble(), 0); - assertEquals(10.0, reader.nextDouble(), 0); + assertThat(reader.nextDouble()).isEqualTo(-0.0); + assertThat(reader.nextDouble()).isEqualTo(1.0); + assertThat(reader.nextDouble()).isEqualTo(1.7976931348623157E308); + assertThat(reader.nextDouble()).isEqualTo(4.9E-324); + assertThat(reader.nextDouble()).isEqualTo(0.0); + assertThat(reader.nextDouble()).isEqualTo(0.0); + assertThat(reader.nextDouble()).isEqualTo(-0.5); + assertThat(reader.nextDouble()).isEqualTo(2.2250738585072014E-308); + assertThat(reader.nextDouble()).isEqualTo(3.141592653589793); + assertThat(reader.nextDouble()).isEqualTo(2.718281828459045); + assertThat(reader.nextDouble()).isEqualTo(0.0); + assertThat(reader.nextDouble()).isEqualTo(0.01); + assertThat(reader.nextDouble()).isEqualTo(0.0); + assertThat(reader.nextDouble()).isEqualTo(1.0); + assertThat(reader.nextDouble()).isEqualTo(1.0); + assertThat(reader.nextDouble()).isEqualTo(1.0); + assertThat(reader.nextDouble()).isEqualTo(10.0); + assertThat(reader.nextDouble()).isEqualTo(10.0); reader.endArray(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -468,9 +466,9 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader(json)); reader.setLenient(true); reader.beginArray(); - assertTrue(Double.isNaN(reader.nextDouble())); - assertEquals(Double.NEGATIVE_INFINITY, reader.nextDouble(), 0); - assertEquals(Double.POSITIVE_INFINITY, reader.nextDouble(), 0); + assertThat(Double.isNaN(reader.nextDouble())).isTrue(); + assertThat(reader.nextDouble()).isEqualTo(Double.NEGATIVE_INFINITY); + assertThat(reader.nextDouble()).isEqualTo(Double.POSITIVE_INFINITY); reader.endArray(); } @@ -480,9 +478,9 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader(json)); reader.setLenient(true); reader.beginArray(); - assertTrue(Double.isNaN(reader.nextDouble())); - assertEquals(Double.NEGATIVE_INFINITY, reader.nextDouble(), 0); - assertEquals(Double.POSITIVE_INFINITY, reader.nextDouble(), 0); + assertThat(Double.isNaN(reader.nextDouble())).isTrue(); + assertThat(reader.nextDouble()).isEqualTo(Double.NEGATIVE_INFINITY); + assertThat(reader.nextDouble()).isEqualTo(Double.POSITIVE_INFINITY); reader.endArray(); } @@ -507,29 +505,29 @@ public final class JsonReaderTest { + "9223372036854775807]"; JsonReader reader = new JsonReader(reader(json)); reader.beginArray(); - assertEquals(0L, reader.nextLong()); - assertEquals(0, reader.nextInt()); - assertEquals(0.0, reader.nextDouble(), 0); - assertEquals(1L, reader.nextLong()); - assertEquals(1, reader.nextInt()); - assertEquals(1.0, reader.nextDouble(), 0); - assertEquals(-1L, reader.nextLong()); - assertEquals(-1, reader.nextInt()); - assertEquals(-1.0, reader.nextDouble(), 0); + assertThat(reader.nextLong()).isEqualTo(0L); + assertThat(reader.nextInt()).isEqualTo(0); + assertThat(reader.nextDouble()).isEqualTo(0.0); + assertThat(reader.nextLong()).isEqualTo(1L); + assertThat(reader.nextInt()).isEqualTo(1); + assertThat(reader.nextDouble()).isEqualTo(1.0); + assertThat(reader.nextLong()).isEqualTo(-1L); + assertThat(reader.nextInt()).isEqualTo(-1); + assertThat(reader.nextDouble()).isEqualTo(-1.0); try { reader.nextInt(); fail(); } catch (NumberFormatException expected) { } - assertEquals(Long.MIN_VALUE, reader.nextLong()); + assertThat(reader.nextLong()).isEqualTo(Long.MIN_VALUE); try { reader.nextInt(); fail(); } catch (NumberFormatException expected) { } - assertEquals(Long.MAX_VALUE, reader.nextLong()); + assertThat(reader.nextLong()).isEqualTo(Long.MAX_VALUE); reader.endArray(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -558,19 +556,19 @@ public final class JsonReaderTest { fail(); } catch (MalformedJsonException expected) { } - assertEquals("01", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("01"); reader.endArray(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test public void testBooleans() throws IOException { JsonReader reader = new JsonReader(reader("[true,false]")); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); - assertEquals(false, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); + assertThat(reader.nextBoolean()).isFalse(); reader.endArray(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -578,13 +576,13 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[truey]")); reader.setLenient(true); reader.beginArray(); - assertEquals(STRING, reader.peek()); + assertThat(reader.peek()).isEqualTo(STRING); try { reader.nextBoolean(); fail(); } catch (IllegalStateException expected) { } - assertEquals("truey", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("truey"); reader.endArray(); } @@ -636,8 +634,8 @@ public final class JsonReaderTest { private void assertNotANumber(String s) throws IOException { JsonReader reader = new JsonReader(reader(s)); reader.setLenient(true); - assertEquals(JsonToken.STRING, reader.peek()); - assertEquals(s, reader.nextString()); + assertThat(reader.peek()).isEqualTo(JsonToken.STRING); + assertThat(reader.nextString()).isEqualTo(s); JsonReader strictReader = new JsonReader(reader(s)); try { @@ -652,13 +650,13 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[12.34e5x]")); reader.setLenient(true); reader.beginArray(); - assertEquals(STRING, reader.peek()); + assertThat(reader.peek()).isEqualTo(STRING); try { reader.nextInt(); fail(); } catch (NumberFormatException expected) { } - assertEquals("12.34e5x", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("12.34e5x"); } @Test @@ -666,8 +664,8 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[-9223372036854775808]")); reader.setLenient(true); reader.beginArray(); - assertEquals(NUMBER, reader.peek()); - assertEquals(-9223372036854775808L, reader.nextLong()); + assertThat(reader.peek()).isEqualTo(NUMBER); + assertThat(reader.nextLong()).isEqualTo(-9223372036854775808L); } @Test @@ -675,8 +673,8 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[9223372036854775807]")); reader.setLenient(true); reader.beginArray(); - assertEquals(NUMBER, reader.peek()); - assertEquals(9223372036854775807L, reader.nextLong()); + assertThat(reader.peek()).isEqualTo(NUMBER); + assertThat(reader.nextLong()).isEqualTo(9223372036854775807L); } @Test @@ -684,7 +682,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[22233720368547758070]")); reader.setLenient(true); reader.beginArray(); - assertEquals(NUMBER, reader.peek()); + assertThat(reader.peek()).isEqualTo(NUMBER); try { reader.nextLong(); fail(); @@ -697,7 +695,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[-22233720368547758070]")); reader.setLenient(true); reader.beginArray(); - assertEquals(NUMBER, reader.peek()); + assertThat(reader.peek()).isEqualTo(NUMBER); try { reader.nextLong(); fail(); @@ -714,8 +712,8 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[-0]")); reader.setLenient(false); reader.beginArray(); - assertEquals(NUMBER, reader.peek()); - assertEquals("-0", reader.nextString()); + assertThat(reader.peek()).isEqualTo(NUMBER); + assertThat(reader.nextString()).isEqualTo("-0"); } /** @@ -728,7 +726,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[9223372036854775808]")); reader.setLenient(true); reader.beginArray(); - assertEquals(NUMBER, reader.peek()); + assertThat(reader.peek()).isEqualTo(NUMBER); try { reader.nextLong(); fail(); @@ -746,13 +744,13 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[-9223372036854775809]")); reader.setLenient(true); reader.beginArray(); - assertEquals(NUMBER, reader.peek()); + assertThat(reader.peek()).isEqualTo(NUMBER); try { reader.nextLong(); fail(); } catch (NumberFormatException expected) { } - assertEquals(-9223372036854775809d, reader.nextDouble(), 0); + assertThat(reader.nextDouble()).isEqualTo(-9223372036854775809d); } /** @@ -765,7 +763,7 @@ public final class JsonReaderTest { String json = "[9223372036854775806.000]"; JsonReader reader = new JsonReader(reader(json)); reader.beginArray(); - assertEquals(9223372036854775806L, reader.nextLong()); + assertThat(reader.nextLong()).isEqualTo(9223372036854775806L); reader.endArray(); } @@ -774,13 +772,13 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[-92233720368547758080]")); reader.setLenient(true); reader.beginArray(); - assertEquals(NUMBER, reader.peek()); + assertThat(reader.peek()).isEqualTo(NUMBER); try { reader.nextLong(); fail(); } catch (NumberFormatException expected) { } - assertEquals(-92233720368547758080d, reader.nextDouble(), 0); + assertThat(reader.nextDouble()).isEqualTo(-92233720368547758080d); } @Test @@ -788,29 +786,29 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[\"12\u00334\"]")); reader.setLenient(true); reader.beginArray(); - assertEquals(STRING, reader.peek()); - assertEquals(1234, reader.nextInt()); + assertThat(reader.peek()).isEqualTo(STRING); + assertThat(reader.nextInt()).isEqualTo(1234); } @Test public void testMixedCaseLiterals() throws IOException { JsonReader reader = new JsonReader(reader("[True,TruE,False,FALSE,NULL,nulL]")); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); - assertEquals(true, reader.nextBoolean()); - assertEquals(false, reader.nextBoolean()); - assertEquals(false, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); + assertThat(reader.nextBoolean()).isTrue(); + assertThat(reader.nextBoolean()).isFalse(); + assertThat(reader.nextBoolean()).isFalse(); reader.nextNull(); reader.nextNull(); reader.endArray(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test public void testMissingValue() throws IOException { JsonReader reader = new JsonReader(reader("{\"a\":}")); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); try { reader.nextString(); fail(); @@ -822,8 +820,8 @@ public final class JsonReaderTest { public void testPrematureEndOfInput() throws IOException { JsonReader reader = new JsonReader(reader("{\"a\":true,")); reader.beginObject(); - assertEquals("a", reader.nextName()); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextName()).isEqualTo("a"); + assertThat(reader.nextBoolean()).isTrue(); try { reader.nextName(); fail(); @@ -871,7 +869,7 @@ public final class JsonReaderTest { fail(); } catch (IllegalStateException expected) { } - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); try { reader.nextName(); fail(); @@ -897,7 +895,7 @@ public final class JsonReaderTest { fail(); } catch (IllegalStateException expected) { } - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); try { reader.nextString(); fail(); @@ -919,7 +917,7 @@ public final class JsonReaderTest { } catch (IllegalStateException expected) { } reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); reader.close(); } @@ -932,7 +930,7 @@ public final class JsonReaderTest { fail(); } catch (NumberFormatException expected) { } - assertEquals(1.5d, reader.nextDouble(), 0); + assertThat(reader.nextDouble()).isEqualTo(1.5d); reader.endArray(); } @@ -962,7 +960,7 @@ public final class JsonReaderTest { public void testStrictNameValueSeparator() throws IOException { JsonReader reader = new JsonReader(reader("{\"a\"=true}")); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); try { reader.nextBoolean(); fail(); @@ -971,7 +969,7 @@ public final class JsonReaderTest { reader = new JsonReader(reader("{\"a\"=>true}")); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); try { reader.nextBoolean(); fail(); @@ -984,21 +982,21 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("{\"a\"=true}")); reader.setLenient(true); reader.beginObject(); - assertEquals("a", reader.nextName()); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextName()).isEqualTo("a"); + assertThat(reader.nextBoolean()).isTrue(); reader = new JsonReader(reader("{\"a\"=>true}")); reader.setLenient(true); reader.beginObject(); - assertEquals("a", reader.nextName()); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextName()).isEqualTo("a"); + assertThat(reader.nextBoolean()).isTrue(); } @Test public void testStrictNameValueSeparatorWithSkipValue() throws IOException { JsonReader reader = new JsonReader(reader("{\"a\"=true}")); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); try { reader.skipValue(); fail(); @@ -1007,7 +1005,7 @@ public final class JsonReaderTest { reader = new JsonReader(reader("{\"a\"=>true}")); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); try { reader.skipValue(); fail(); @@ -1019,19 +1017,19 @@ public final class JsonReaderTest { public void testCommentsInStringValue() throws Exception { JsonReader reader = new JsonReader(reader("[\"// comment\"]")); reader.beginArray(); - assertEquals("// comment", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("// comment"); reader.endArray(); reader = new JsonReader(reader("{\"a\":\"#someComment\"}")); reader.beginObject(); - assertEquals("a", reader.nextName()); - assertEquals("#someComment", reader.nextString()); + assertThat(reader.nextName()).isEqualTo("a"); + assertThat(reader.nextString()).isEqualTo("#someComment"); reader.endObject(); reader = new JsonReader(reader("{\"#//a\":\"#some //Comment\"}")); reader.beginObject(); - assertEquals("#//a", reader.nextName()); - assertEquals("#some //Comment", reader.nextString()); + assertThat(reader.nextName()).isEqualTo("#//a"); + assertThat(reader.nextString()).isEqualTo("#some //Comment"); reader.endObject(); } @@ -1067,17 +1065,17 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[// comment \n true]")); reader.setLenient(true); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); reader = new JsonReader(reader("[# comment \n true]")); reader.setLenient(true); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); reader = new JsonReader(reader("[/* comment */ true]")); reader.setLenient(true); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); } @Test @@ -1123,7 +1121,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("{a:true}")); reader.setLenient(true); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); } @Test @@ -1153,7 +1151,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("{'a':true}")); reader.setLenient(true); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); } @Test @@ -1194,7 +1192,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[a]")); reader.setLenient(true); reader.beginArray(); - assertEquals("a", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("a"); } @Test @@ -1213,7 +1211,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("['a']")); reader.setLenient(true); reader.beginArray(); - assertEquals("a", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("a"); } @Test @@ -1244,8 +1242,8 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[true;true]")); reader.setLenient(true); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); + assertThat(reader.nextBoolean()).isTrue(); } @Test @@ -1264,7 +1262,7 @@ public final class JsonReaderTest { public void testStrictSemicolonDelimitedNameValuePair() throws IOException { JsonReader reader = new JsonReader(reader("{\"a\":true;\"b\":true}")); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); try { reader.nextBoolean(); reader.nextName(); @@ -1278,16 +1276,16 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("{\"a\":true;\"b\":true}")); reader.setLenient(true); reader.beginObject(); - assertEquals("a", reader.nextName()); - assertEquals(true, reader.nextBoolean()); - assertEquals("b", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); + assertThat(reader.nextBoolean()).isTrue(); + assertThat(reader.nextName()).isEqualTo("b"); } @Test public void testStrictSemicolonDelimitedNameValuePairWithSkipValue() throws IOException { JsonReader reader = new JsonReader(reader("{\"a\":true;\"b\":true}")); reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); try { reader.skipValue(); reader.skipValue(); @@ -1300,7 +1298,7 @@ public final class JsonReaderTest { public void testStrictUnnecessaryArraySeparators() throws IOException { JsonReader reader = new JsonReader(reader("[true,,true]")); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); try { reader.nextNull(); fail(); @@ -1317,7 +1315,7 @@ public final class JsonReaderTest { reader = new JsonReader(reader("[true,]")); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); try { reader.nextNull(); fail(); @@ -1338,22 +1336,22 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[true,,true]")); reader.setLenient(true); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); reader.nextNull(); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); reader.endArray(); reader = new JsonReader(reader("[,true]")); reader.setLenient(true); reader.beginArray(); reader.nextNull(); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); reader.endArray(); reader = new JsonReader(reader("[true,]")); reader.setLenient(true); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); reader.nextNull(); reader.endArray(); @@ -1369,7 +1367,7 @@ public final class JsonReaderTest { public void testStrictUnnecessaryArraySeparatorsWithSkipValue() throws IOException { JsonReader reader = new JsonReader(reader("[true,,true]")); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); try { reader.skipValue(); fail(); @@ -1386,7 +1384,7 @@ public final class JsonReaderTest { reader = new JsonReader(reader("[true,]")); reader.beginArray(); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); try { reader.skipValue(); fail(); @@ -1420,10 +1418,10 @@ public final class JsonReaderTest { reader.setLenient(true); reader.beginArray(); reader.endArray(); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isTrue(); reader.beginObject(); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -1441,36 +1439,36 @@ public final class JsonReaderTest { @Test public void testTopLevelValueTypes() throws IOException { JsonReader reader1 = new JsonReader(reader("true")); - assertTrue(reader1.nextBoolean()); - assertEquals(JsonToken.END_DOCUMENT, reader1.peek()); + assertThat(reader1.nextBoolean()).isTrue(); + assertThat(reader1.peek()).isEqualTo(JsonToken.END_DOCUMENT); JsonReader reader2 = new JsonReader(reader("false")); - assertFalse(reader2.nextBoolean()); - assertEquals(JsonToken.END_DOCUMENT, reader2.peek()); + assertThat(reader2.nextBoolean()).isFalse(); + assertThat(reader2.peek()).isEqualTo(JsonToken.END_DOCUMENT); JsonReader reader3 = new JsonReader(reader("null")); - assertEquals(JsonToken.NULL, reader3.peek()); + assertThat(reader3.peek()).isEqualTo(JsonToken.NULL); reader3.nextNull(); - assertEquals(JsonToken.END_DOCUMENT, reader3.peek()); + assertThat(reader3.peek()).isEqualTo(JsonToken.END_DOCUMENT); JsonReader reader4 = new JsonReader(reader("123")); - assertEquals(123, reader4.nextInt()); - assertEquals(JsonToken.END_DOCUMENT, reader4.peek()); + assertThat(reader4.nextInt()).isEqualTo(123); + assertThat(reader4.peek()).isEqualTo(JsonToken.END_DOCUMENT); JsonReader reader5 = new JsonReader(reader("123.4")); - assertEquals(123.4, reader5.nextDouble(), 0); - assertEquals(JsonToken.END_DOCUMENT, reader5.peek()); + assertThat(reader5.nextDouble()).isEqualTo(123.4); + assertThat(reader5.peek()).isEqualTo(JsonToken.END_DOCUMENT); JsonReader reader6 = new JsonReader(reader("\"a\"")); - assertEquals("a", reader6.nextString()); - assertEquals(JsonToken.END_DOCUMENT, reader6.peek()); + assertThat(reader6.nextString()).isEqualTo("a"); + assertThat(reader6.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test public void testTopLevelValueTypeWithSkipValue() throws IOException { JsonReader reader = new JsonReader(reader("true")); reader.skipValue(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -1499,7 +1497,7 @@ public final class JsonReaderTest { reader.setLenient(true); reader.beginArray(); reader.endArray(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -1508,7 +1506,7 @@ public final class JsonReaderTest { reader.setLenient(true); reader.beginArray(); reader.endArray(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -1516,7 +1514,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader(")]}' []")); reader.setLenient(true); try { - assertEquals(")", reader.nextString()); + assertThat(reader.nextString()).isEqualTo(")"); reader.nextString(); fail(); } catch (IOException expected) { @@ -1604,7 +1602,7 @@ public final class JsonReaderTest { reader1.peek(); fail(); } catch (IOException expected) { - assertEquals(message, expected.getMessage()); + assertThat(expected.getMessage()).isEqualTo(message); } // Also validate that it works when skipping. @@ -1616,7 +1614,7 @@ public final class JsonReaderTest { reader2.peek(); fail(); } catch (IOException expected) { - assertEquals(message, expected.getMessage()); + assertThat(expected.getMessage()).isEqualTo(message); } } @@ -1634,7 +1632,7 @@ public final class JsonReaderTest { reader.peek(); fail(); } catch (IOException expected) { - assertEquals("Expected value at line 1 column 14 path $[1].a[2]", expected.getMessage()); + assertThat(expected.getMessage()).isEqualTo("Expected value at line 1 column 14 path $[1].a[2]"); } } @@ -1643,7 +1641,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[0." + repeat('9', 8192) + "]")); reader.beginArray(); try { - assertEquals(1d, reader.nextDouble(), 0); + assertThat(reader.nextDouble()).isEqualTo(1d); fail(); } catch (MalformedJsonException expected) { } @@ -1654,10 +1652,10 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[0." + repeat('9', 8192) + "]")); reader.setLenient(true); reader.beginArray(); - assertEquals(JsonToken.STRING, reader.peek()); - assertEquals(1d, reader.nextDouble(), 0); + assertThat(reader.peek()).isEqualTo(JsonToken.STRING); + assertThat(reader.nextDouble()).isEqualTo(1d); reader.endArray(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -1666,7 +1664,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[" + literal + "]")); reader.setLenient(true); reader.beginArray(); - assertEquals(literal, reader.nextString()); + assertThat(reader.nextString()).isEqualTo(literal); reader.endArray(); } @@ -1678,12 +1676,12 @@ public final class JsonReaderTest { for (int i = 0; i < 40; i++) { reader.beginArray(); } - assertEquals("$[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]" - + "[0][0][0][0][0][0][0][0][0][0][0][0][0][0]", reader.getPath()); + assertThat(reader.getPath()).isEqualTo("$[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]" + + "[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]"); for (int i = 0; i < 40; i++) { reader.endArray(); } - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -1698,15 +1696,14 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader(json)); for (int i = 0; i < 40; i++) { reader.beginObject(); - assertEquals("a", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("a"); } - assertEquals("$.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a" - + ".a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a", reader.getPath()); - assertEquals(true, reader.nextBoolean()); + assertThat(reader.getPath()); + assertThat(reader.nextBoolean()).isTrue(); for (int i = 0; i < 40; i++) { reader.endObject(); } - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } // http://code.google.com/p/google-gson/issues/detail?id=409 @@ -1748,8 +1745,8 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("{\"a\":\"android\"x")); reader.setLenient(true); reader.beginObject(); - assertEquals("a", reader.nextName()); - assertEquals("android", reader.nextString()); + assertThat(reader.nextName()).isEqualTo("a"); + assertThat(reader.nextString()).isEqualTo("android"); try { reader.peek(); fail(); @@ -1765,7 +1762,7 @@ public final class JsonReaderTest { String json = "[\"" + string + "\"]"; JsonReader reader = new JsonReader(reader(json)); reader.beginArray(); - assertEquals(string, reader.nextString()); + assertThat(reader.nextString()).isEqualTo(string); reader.endArray(); } @@ -1778,7 +1775,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader(json)); reader.setLenient(true); reader.beginArray(); - assertEquals(string, reader.nextString()); + assertThat(reader.nextString()).isEqualTo(string); reader.endArray(); } @@ -1791,7 +1788,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader(json)); reader.setLenient(true); reader.beginArray(); - assertEquals(string, reader.nextString()); + assertThat(reader.nextString()).isEqualTo(string); try { reader.peek(); fail(); @@ -1813,7 +1810,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader(repeat('x', 8192))); reader.setLenient(true); reader.skipValue(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -1829,7 +1826,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("\"" + repeat('x', 8192) + "\"")); reader.setLenient(true); reader.skipValue(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test @@ -1837,7 +1834,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[123e]")); reader.setLenient(true); reader.beginArray(); - assertEquals(STRING, reader.peek()); + assertThat(reader.peek()).isEqualTo(STRING); } @Test @@ -1845,7 +1842,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[123e4b]")); reader.setLenient(true); reader.beginArray(); - assertEquals(STRING, reader.peek()); + assertThat(reader.peek()).isEqualTo(STRING); } @Test @@ -1853,30 +1850,30 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[123eb]")); reader.setLenient(true); reader.beginArray(); - assertEquals(STRING, reader.peek()); + assertThat(reader.peek()).isEqualTo(STRING); } @Test public void testEmptyStringName() throws IOException { JsonReader reader = new JsonReader(reader("{\"\":true}")); reader.setLenient(true); - assertEquals(BEGIN_OBJECT, reader.peek()); + assertThat(reader.peek()).isEqualTo(BEGIN_OBJECT); reader.beginObject(); - assertEquals(NAME, reader.peek()); - assertEquals("", reader.nextName()); - assertEquals(JsonToken.BOOLEAN, reader.peek()); - assertEquals(true, reader.nextBoolean()); - assertEquals(JsonToken.END_OBJECT, reader.peek()); + assertThat(reader.peek()).isEqualTo(NAME); + assertThat(reader.nextName()).isEqualTo(""); + assertThat(reader.peek()).isEqualTo(JsonToken.BOOLEAN); + assertThat(reader.nextBoolean()).isTrue(); + assertThat(reader.peek()).isEqualTo(JsonToken.END_OBJECT); reader.endObject(); - assertEquals(JsonToken.END_DOCUMENT, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.END_DOCUMENT); } @Test public void testStrictExtraCommasInMaps() throws IOException { JsonReader reader = new JsonReader(reader("{\"a\":\"b\",}")); reader.beginObject(); - assertEquals("a", reader.nextName()); - assertEquals("b", reader.nextString()); + assertThat(reader.nextName()).isEqualTo("a"); + assertThat(reader.nextString()).isEqualTo("b"); try { reader.peek(); fail(); @@ -1889,8 +1886,8 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("{\"a\":\"b\",}")); reader.setLenient(true); reader.beginObject(); - assertEquals("a", reader.nextName()); - assertEquals("b", reader.nextString()); + assertThat(reader.nextName()).isEqualTo("a"); + assertThat(reader.nextString()).isEqualTo("b"); try { reader.peek(); fail(); @@ -1956,7 +1953,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader("[\"string")); reader.setLenient(true); reader.beginArray(); - assertEquals(JsonToken.STRING, reader.peek()); + assertThat(reader.peek()).isEqualTo(JsonToken.STRING); try { reader.nextString(); fail(); @@ -1977,7 +1974,7 @@ public final class JsonReaderTest { JsonReader reader = new JsonReader(reader(sb.toString())); reader.setLenient(true); JsonToken token = reader.peek(); - assertEquals(JsonToken.NUMBER, token); + assertThat(token).isEqualTo(JsonToken.NUMBER); } private void assertDocument(String document, Object... expectations) throws IOException { @@ -1993,13 +1990,13 @@ public final class JsonReaderTest { } else if (expectation == END_ARRAY) { reader.endArray(); } else if (expectation == NAME) { - assertEquals("name", reader.nextName()); + assertThat(reader.nextName()).isEqualTo("name"); } else if (expectation == BOOLEAN) { - assertEquals(false, reader.nextBoolean()); + assertThat(reader.nextBoolean()).isFalse(); } else if (expectation == STRING) { - assertEquals("string", reader.nextString()); + assertThat(reader.nextString()).isEqualTo("string"); } else if (expectation == NUMBER) { - assertEquals(123, reader.nextInt()); + assertThat(reader.nextInt()).isEqualTo(123); } else if (expectation == NULL) { reader.nextNull(); } else if (expectation == IOException.class) { diff --git a/gson/src/test/java/com/google/gson/stream/JsonWriterTest.java b/gson/src/test/java/com/google/gson/stream/JsonWriterTest.java index 20c4558c..a0896676 100644 --- a/gson/src/test/java/com/google/gson/stream/JsonWriterTest.java +++ b/gson/src/test/java/com/google/gson/stream/JsonWriterTest.java @@ -16,7 +16,7 @@ package com.google.gson.stream; -import static org.junit.Assert.assertEquals; +import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; import com.google.gson.internal.LazilyParsedNumber; @@ -35,31 +35,31 @@ public final class JsonWriterTest { JsonWriter writer1 = new JsonWriter(string1); writer1.value(true); writer1.close(); - assertEquals("true", string1.toString()); + assertThat(string1.toString()).isEqualTo("true"); StringWriter string2 = new StringWriter(); JsonWriter writer2 = new JsonWriter(string2); writer2.nullValue(); writer2.close(); - assertEquals("null", string2.toString()); + assertThat(string2.toString()).isEqualTo("null"); StringWriter string3 = new StringWriter(); JsonWriter writer3 = new JsonWriter(string3); writer3.value(123); writer3.close(); - assertEquals("123", string3.toString()); + assertThat(string3.toString()).isEqualTo("123"); StringWriter string4 = new StringWriter(); JsonWriter writer4 = new JsonWriter(string4); writer4.value(123.4); writer4.close(); - assertEquals("123.4", string4.toString()); + assertThat(string4.toString()).isEqualTo("123.4"); StringWriter string5 = new StringWriter(); JsonWriter writert = new JsonWriter(string5); writert.value("a"); writert.close(); - assertEquals("\"a\"", string5.toString()); + assertThat(string5.toString()).isEqualTo("\"a\""); } @Test @@ -170,7 +170,7 @@ public final class JsonWriterTest { jsonWriter.name("a"); jsonWriter.value((String) null); jsonWriter.endObject(); - assertEquals("{\"a\":null}", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("{\"a\":null}"); } @Test @@ -183,7 +183,7 @@ public final class JsonWriterTest { jsonWriter.name("c"); jsonWriter.value(1); jsonWriter.endObject(); - assertEquals("{\"a\":{\"b\":true},\"c\":1}", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("{\"a\":{\"b\":true},\"c\":1}"); } @Test @@ -195,19 +195,19 @@ public final class JsonWriterTest { jsonWriter.value(Float.NaN); fail(); } catch (IllegalArgumentException expected) { - assertEquals("Numeric values must be finite, but was NaN", expected.getMessage()); + assertThat(expected).hasMessageThat().isEqualTo("Numeric values must be finite, but was NaN"); } try { jsonWriter.value(Float.NEGATIVE_INFINITY); fail(); } catch (IllegalArgumentException expected) { - assertEquals("Numeric values must be finite, but was -Infinity", expected.getMessage()); + assertThat(expected).hasMessageThat().isEqualTo("Numeric values must be finite, but was -Infinity"); } try { jsonWriter.value(Float.POSITIVE_INFINITY); fail(); } catch (IllegalArgumentException expected) { - assertEquals("Numeric values must be finite, but was Infinity", expected.getMessage()); + assertThat(expected).hasMessageThat().isEqualTo("Numeric values must be finite, but was Infinity"); } } @@ -220,19 +220,19 @@ public final class JsonWriterTest { jsonWriter.value(Double.NaN); fail(); } catch (IllegalArgumentException expected) { - assertEquals("Numeric values must be finite, but was NaN", expected.getMessage()); + assertThat(expected).hasMessageThat().isEqualTo("Numeric values must be finite, but was NaN"); } try { jsonWriter.value(Double.NEGATIVE_INFINITY); fail(); } catch (IllegalArgumentException expected) { - assertEquals("Numeric values must be finite, but was -Infinity", expected.getMessage()); + assertThat(expected).hasMessageThat().isEqualTo("Numeric values must be finite, but was -Infinity"); } try { jsonWriter.value(Double.POSITIVE_INFINITY); fail(); } catch (IllegalArgumentException expected) { - assertEquals("Numeric values must be finite, but was Infinity", expected.getMessage()); + assertThat(expected).hasMessageThat().isEqualTo("Numeric values must be finite, but was Infinity"); } } @@ -245,25 +245,25 @@ public final class JsonWriterTest { jsonWriter.value(Double.valueOf(Double.NaN)); fail(); } catch (IllegalArgumentException expected) { - assertEquals("Numeric values must be finite, but was NaN", expected.getMessage()); + assertThat(expected).hasMessageThat().isEqualTo("Numeric values must be finite, but was NaN"); } try { jsonWriter.value(Double.valueOf(Double.NEGATIVE_INFINITY)); fail(); } catch (IllegalArgumentException expected) { - assertEquals("Numeric values must be finite, but was -Infinity", expected.getMessage()); + assertThat(expected).hasMessageThat().isEqualTo("Numeric values must be finite, but was -Infinity"); } try { jsonWriter.value(Double.valueOf(Double.POSITIVE_INFINITY)); fail(); } catch (IllegalArgumentException expected) { - assertEquals("Numeric values must be finite, but was Infinity", expected.getMessage()); + assertThat(expected).hasMessageThat().isEqualTo("Numeric values must be finite, but was Infinity"); } try { jsonWriter.value(new LazilyParsedNumber("Infinity")); fail(); } catch (IllegalArgumentException expected) { - assertEquals("Numeric values must be finite, but was Infinity", expected.getMessage()); + assertThat(expected).hasMessageThat().isEqualTo("Numeric values must be finite, but was Infinity"); } } @@ -277,7 +277,7 @@ public final class JsonWriterTest { jsonWriter.value(Float.NEGATIVE_INFINITY); jsonWriter.value(Float.POSITIVE_INFINITY); jsonWriter.endArray(); - assertEquals("[NaN,-Infinity,Infinity]", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("[NaN,-Infinity,Infinity]"); } @Test @@ -290,7 +290,7 @@ public final class JsonWriterTest { jsonWriter.value(Double.NEGATIVE_INFINITY); jsonWriter.value(Double.POSITIVE_INFINITY); jsonWriter.endArray(); - assertEquals("[NaN,-Infinity,Infinity]", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("[NaN,-Infinity,Infinity]"); } @Test @@ -304,7 +304,7 @@ public final class JsonWriterTest { jsonWriter.value(Double.valueOf(Double.POSITIVE_INFINITY)); jsonWriter.value(new LazilyParsedNumber("Infinity")); jsonWriter.endArray(); - assertEquals("[NaN,-Infinity,Infinity,Infinity]", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("[NaN,-Infinity,Infinity,Infinity]"); } @Test @@ -324,18 +324,16 @@ public final class JsonWriterTest { jsonWriter.value((float) Math.E); jsonWriter.endArray(); jsonWriter.close(); - assertEquals( - "[-0.0," - + "1.0," - + "3.4028235E38," - + "1.4E-45," - + "0.0," - + "-0.5," - + "2.2250739E-38," - + "3.723379," - + "3.1415927," - + "2.7182817]", - stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("[-0.0," + + "1.0," + + "3.4028235E38," + + "1.4E-45," + + "0.0," + + "-0.5," + + "2.2250739E-38," + + "3.723379," + + "3.1415927," + + "2.7182817]"); } @Test @@ -354,7 +352,7 @@ public final class JsonWriterTest { jsonWriter.value(Math.E); jsonWriter.endArray(); jsonWriter.close(); - assertEquals("[-0.0," + assertThat(stringWriter.toString()).isEqualTo("[-0.0," + "1.0," + "1.7976931348623157E308," + "4.9E-324," @@ -362,7 +360,7 @@ public final class JsonWriterTest { + "-0.5," + "2.2250738585072014E-308," + "3.141592653589793," - + "2.718281828459045]", stringWriter.toString()); + + "2.718281828459045]"); } @Test @@ -377,11 +375,11 @@ public final class JsonWriterTest { jsonWriter.value(Long.MAX_VALUE); jsonWriter.endArray(); jsonWriter.close(); - assertEquals("[0," + assertThat(stringWriter.toString()).isEqualTo("[0," + "1," + "-1," + "-9223372036854775808," - + "9223372036854775807]", stringWriter.toString()); + + "9223372036854775807]"); } @Test @@ -395,10 +393,10 @@ public final class JsonWriterTest { jsonWriter.value(new BigDecimal("3.141592653589793238462643383")); jsonWriter.endArray(); jsonWriter.close(); - assertEquals("[0," + assertThat(stringWriter.toString()).isEqualTo("[0," + "9223372036854775808," + "-9223372036854775809," - + "3.141592653589793238462643383]", stringWriter.toString()); + + "3.141592653589793238462643383]"); } /** @@ -434,7 +432,7 @@ public final class JsonWriterTest { jsonWriter.value(new LazilyParsedNumber(validNumber)); jsonWriter.close(); - assertEquals(validNumber, stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo(validNumber); } } @@ -473,7 +471,7 @@ public final class JsonWriterTest { jsonWriter.value(new LazilyParsedNumber(malformedNumber)); fail("Should have failed writing malformed number: " + malformedNumber); } catch (IllegalArgumentException e) { - assertEquals("String created by class com.google.gson.internal.LazilyParsedNumber is not a valid JSON number: " + malformedNumber, e.getMessage()); + assertThat(e.getMessage()).isEqualTo("String created by class com.google.gson.internal.LazilyParsedNumber is not a valid JSON number: " + malformedNumber); } } } @@ -486,7 +484,7 @@ public final class JsonWriterTest { jsonWriter.value(true); jsonWriter.value(false); jsonWriter.endArray(); - assertEquals("[true,false]", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("[true,false]"); } @Test @@ -498,7 +496,7 @@ public final class JsonWriterTest { jsonWriter.value((Boolean) false); jsonWriter.value((Boolean) null); jsonWriter.endArray(); - assertEquals("[true,false,null]", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("[true,false,null]"); } @Test @@ -508,7 +506,7 @@ public final class JsonWriterTest { jsonWriter.beginArray(); jsonWriter.nullValue(); jsonWriter.endArray(); - assertEquals("[null]", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("[null]"); } @Test @@ -535,7 +533,7 @@ public final class JsonWriterTest { jsonWriter.value("\0"); jsonWriter.value("\u0019"); jsonWriter.endArray(); - assertEquals("[\"a\"," + assertThat(stringWriter.toString()).isEqualTo("[\"a\"," + "\"a\\\"\"," + "\"\\\"\"," + "\":\"," @@ -552,7 +550,7 @@ public final class JsonWriterTest { + "\"[\"," + "\"]\"," + "\"\\u0000\"," - + "\"\\u0019\"]", stringWriter.toString()); + + "\"\\u0019\"]"); } @Test @@ -562,7 +560,7 @@ public final class JsonWriterTest { jsonWriter.beginArray(); jsonWriter.value("\u2028 \u2029"); jsonWriter.endArray(); - assertEquals("[\"\\u2028 \\u2029\"]", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("[\"\\u2028 \\u2029\"]"); } @Test @@ -571,7 +569,7 @@ public final class JsonWriterTest { JsonWriter jsonWriter = new JsonWriter(stringWriter); jsonWriter.beginArray(); jsonWriter.endArray(); - assertEquals("[]", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("[]"); } @Test @@ -580,7 +578,7 @@ public final class JsonWriterTest { JsonWriter jsonWriter = new JsonWriter(stringWriter); jsonWriter.beginObject(); jsonWriter.endObject(); - assertEquals("{}", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("{}"); } @Test @@ -597,8 +595,8 @@ public final class JsonWriterTest { jsonWriter.name("d").value(true); jsonWriter.endObject(); jsonWriter.endArray(); - assertEquals("[{\"a\":5,\"b\":false}," - + "{\"c\":6,\"d\":true}]", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("[{\"a\":5,\"b\":false}," + + "{\"c\":6,\"d\":true}]"); } @Test @@ -617,8 +615,8 @@ public final class JsonWriterTest { jsonWriter.value(true); jsonWriter.endArray(); jsonWriter.endObject(); - assertEquals("{\"a\":[5,false]," - + "\"b\":[6,true]}", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("{\"a\":[5,false]," + + "\"b\":[6,true]}"); } @Test @@ -631,7 +629,7 @@ public final class JsonWriterTest { for (int i = 0; i < 20; i++) { jsonWriter.endArray(); } - assertEquals("[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]"); } @Test @@ -647,9 +645,9 @@ public final class JsonWriterTest { jsonWriter.endObject(); } jsonWriter.endObject(); - assertEquals("{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":" + assertThat(stringWriter.toString()).isEqualTo("{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":" + "{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{" - + "}}}}}}}}}}}}}}}}}}}}}", stringWriter.toString()); + + "}}}}}}}}}}}}}}}}}}}}}"); } @Test @@ -661,7 +659,7 @@ public final class JsonWriterTest { jsonWriter.name("a").value(false); jsonWriter.endObject(); // JsonWriter doesn't attempt to detect duplicate names - assertEquals("{\"a\":true,\"a\":false}", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("{\"a\":true,\"a\":false}"); } @Test @@ -699,7 +697,7 @@ public final class JsonWriterTest { + " \"i\": 9.0\n" + " }\n" + "}"; - assertEquals(expected, stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo(expected); } @Test @@ -737,7 +735,7 @@ public final class JsonWriterTest { + " 9.0\n" + " ]\n" + "]"; - assertEquals(expected, stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo(expected); } @Test @@ -750,7 +748,7 @@ public final class JsonWriterTest { writer.beginArray(); writer.endArray(); writer.close(); - assertEquals("[][]", stringWriter.toString()); + assertThat(stringWriter.toString()).isEqualTo("[][]"); } @Test From 0d22e5d2051112dd59dbae516c7a71f2e5c372fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89amonn=20McManus?= Date: Tue, 31 Jan 2023 14:05:12 -0800 Subject: [PATCH 03/11] Add copyright notices to files that were missing them. (#2307) In each case the copyright year is the year in which the file was first added. --- extras/pom.xml | 16 ++++++++++++++++ .../gson/interceptors/InterceptorFactory.java | 16 ++++++++++++++++ gson/pom.xml | 16 ++++++++++++++++ .../google/gson/ReflectionAccessFilter.java | 16 ++++++++++++++++ .../google/gson/annotations/package-info.java | 18 +++++++++++++++++- .../internal/NonNullElementWrapperList.java | 16 ++++++++++++++++ .../internal/ReflectionAccessFilterHelper.java | 16 ++++++++++++++++ .../SerializationDelegatingTypeAdapter.java | 16 ++++++++++++++++ .../gson/internal/bind/util/ISO8601Utils.java | 16 ++++++++++++++++ .../com/google/gson/internal/package-info.java | 18 +++++++++++++++++- .../internal/reflect/ReflectionHelper.java | 16 ++++++++++++++++ .../internal/sql/SqlTimestampTypeAdapter.java | 16 ++++++++++++++++ .../gson/internal/sql/SqlTypesSupport.java | 16 ++++++++++++++++ .../java/com/google/gson/package-info.java | 18 +++++++++++++++++- .../com/google/gson/reflect/package-info.java | 18 +++++++++++++++++- .../com/google/gson/stream/package-info.java | 16 ++++++++++++++++ gson/src/main/java/module-info.java | 16 ++++++++++++++++ .../com/google/gson/FieldNamingPolicyTest.java | 16 ++++++++++++++++ .../com/google/gson/JsonArrayAsListTest.java | 16 ++++++++++++++++ .../com/google/gson/JsonObjectAsMapTest.java | 16 ++++++++++++++++ .../gson/JsonParserParameterizedTest.java | 16 ++++++++++++++++ .../ObjectTypeAdapterParameterizedTest.java | 16 ++++++++++++++++ .../java/com/google/gson/TypeAdapterTest.java | 16 ++++++++++++++++ .../google/gson/functional/JsonTreeTest.java | 16 ++++++++++++++++ .../functional/ReflectionAccessFilterTest.java | 16 ++++++++++++++++ .../gson/functional/ReflectionAccessTest.java | 16 ++++++++++++++++ .../ReusedTypeVariablesFullyResolveTest.java | 16 ++++++++++++++++ .../com/google/gson/functional/StringTest.java | 16 ++++++++++++++++ .../TypeAdapterRuntimeTypeWrapperTest.java | 16 ++++++++++++++++ .../internal/ConstructorConstructorTest.java | 16 ++++++++++++++++ .../com/google/gson/internal/StreamsTest.java | 16 ++++++++++++++++ ...Java17ReflectiveTypeAdapterFactoryTest.java | 16 ++++++++++++++++ .../internal/bind/util/ISO8601UtilsTest.java | 16 ++++++++++++++++ .../reflect/Java17ReflectionHelperTest.java | 16 ++++++++++++++++ .../gson/internal/sql/SqlTypesGsonTest.java | 16 ++++++++++++++++ .../gson/internal/sql/SqlTypesSupportTest.java | 16 ++++++++++++++++ metrics/pom.xml | 16 ++++++++++++++++ .../metrics/NonUploadingCaliperRunner.java | 16 ++++++++++++++++ pom.xml | 14 ++++++++++++++ proto/pom.xml | 14 ++++++++++++++ 40 files changed, 640 insertions(+), 4 deletions(-) diff --git a/extras/pom.xml b/extras/pom.xml index 9077eea4..86005477 100644 --- a/extras/pom.xml +++ b/extras/pom.xml @@ -1,3 +1,19 @@ + + 4.0.0 diff --git a/extras/src/main/java/com/google/gson/interceptors/InterceptorFactory.java b/extras/src/main/java/com/google/gson/interceptors/InterceptorFactory.java index 51916c22..69bed0e8 100644 --- a/extras/src/main/java/com/google/gson/interceptors/InterceptorFactory.java +++ b/extras/src/main/java/com/google/gson/interceptors/InterceptorFactory.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2012 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.interceptors; import com.google.gson.Gson; diff --git a/gson/pom.xml b/gson/pom.xml index bfaad784..b7ee60b9 100644 --- a/gson/pom.xml +++ b/gson/pom.xml @@ -1,3 +1,19 @@ + + 4.0.0 diff --git a/gson/src/main/java/com/google/gson/ReflectionAccessFilter.java b/gson/src/main/java/com/google/gson/ReflectionAccessFilter.java index 254d2e5d..7736ec7a 100644 --- a/gson/src/main/java/com/google/gson/ReflectionAccessFilter.java +++ b/gson/src/main/java/com/google/gson/ReflectionAccessFilter.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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; import com.google.gson.internal.ReflectionAccessFilterHelper; diff --git a/gson/src/main/java/com/google/gson/annotations/package-info.java b/gson/src/main/java/com/google/gson/annotations/package-info.java index 1c461fd6..8e272c0a 100644 --- a/gson/src/main/java/com/google/gson/annotations/package-info.java +++ b/gson/src/main/java/com/google/gson/annotations/package-info.java @@ -1,6 +1,22 @@ +/* + * 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. + */ + /** * This package provides annotations that can be used with {@link com.google.gson.Gson}. * * @author Inderjeet Singh, Joel Leitch */ -package com.google.gson.annotations; \ No newline at end of file +package com.google.gson.annotations; diff --git a/gson/src/main/java/com/google/gson/internal/NonNullElementWrapperList.java b/gson/src/main/java/com/google/gson/internal/NonNullElementWrapperList.java index b3017430..d7429503 100644 --- a/gson/src/main/java/com/google/gson/internal/NonNullElementWrapperList.java +++ b/gson/src/main/java/com/google/gson/internal/NonNullElementWrapperList.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2018 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.internal; import java.util.AbstractList; diff --git a/gson/src/main/java/com/google/gson/internal/ReflectionAccessFilterHelper.java b/gson/src/main/java/com/google/gson/internal/ReflectionAccessFilterHelper.java index a07b2c73..89e6b9a9 100644 --- a/gson/src/main/java/com/google/gson/internal/ReflectionAccessFilterHelper.java +++ b/gson/src/main/java/com/google/gson/internal/ReflectionAccessFilterHelper.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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.internal; import java.lang.reflect.AccessibleObject; diff --git a/gson/src/main/java/com/google/gson/internal/bind/SerializationDelegatingTypeAdapter.java b/gson/src/main/java/com/google/gson/internal/bind/SerializationDelegatingTypeAdapter.java index dad4ff11..25dd3b85 100644 --- a/gson/src/main/java/com/google/gson/internal/bind/SerializationDelegatingTypeAdapter.java +++ b/gson/src/main/java/com/google/gson/internal/bind/SerializationDelegatingTypeAdapter.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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.internal.bind; import com.google.gson.TypeAdapter; diff --git a/gson/src/main/java/com/google/gson/internal/bind/util/ISO8601Utils.java b/gson/src/main/java/com/google/gson/internal/bind/util/ISO8601Utils.java index 02454fe3..a120690d 100644 --- a/gson/src/main/java/com/google/gson/internal/bind/util/ISO8601Utils.java +++ b/gson/src/main/java/com/google/gson/internal/bind/util/ISO8601Utils.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2015 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.internal.bind.util; import java.text.ParseException; diff --git a/gson/src/main/java/com/google/gson/internal/package-info.java b/gson/src/main/java/com/google/gson/internal/package-info.java index b5139b6d..e4387cb0 100644 --- a/gson/src/main/java/com/google/gson/internal/package-info.java +++ b/gson/src/main/java/com/google/gson/internal/package-info.java @@ -1,7 +1,23 @@ +/* + * Copyright (C) 2011 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. + */ + /** * Do NOT use any class in this package as they are meant for internal use in Gson. * These classes will very likely change incompatibly in future versions. You have been warned. * * @author Inderjeet Singh, Joel Leitch, Jesse Wilson */ -package com.google.gson.internal; \ No newline at end of file +package com.google.gson.internal; diff --git a/gson/src/main/java/com/google/gson/internal/reflect/ReflectionHelper.java b/gson/src/main/java/com/google/gson/internal/reflect/ReflectionHelper.java index 737bb5d4..41dd4cf3 100644 --- a/gson/src/main/java/com/google/gson/internal/reflect/ReflectionHelper.java +++ b/gson/src/main/java/com/google/gson/internal/reflect/ReflectionHelper.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2021 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.internal.reflect; import com.google.gson.JsonIOException; diff --git a/gson/src/main/java/com/google/gson/internal/sql/SqlTimestampTypeAdapter.java b/gson/src/main/java/com/google/gson/internal/sql/SqlTimestampTypeAdapter.java index 06688c57..5c77f839 100644 --- a/gson/src/main/java/com/google/gson/internal/sql/SqlTimestampTypeAdapter.java +++ b/gson/src/main/java/com/google/gson/internal/sql/SqlTimestampTypeAdapter.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2020 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.internal.sql; import com.google.gson.Gson; diff --git a/gson/src/main/java/com/google/gson/internal/sql/SqlTypesSupport.java b/gson/src/main/java/com/google/gson/internal/sql/SqlTypesSupport.java index 92bdfd3f..b82ace74 100644 --- a/gson/src/main/java/com/google/gson/internal/sql/SqlTypesSupport.java +++ b/gson/src/main/java/com/google/gson/internal/sql/SqlTypesSupport.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2020 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.internal.sql; import java.sql.Timestamp; diff --git a/gson/src/main/java/com/google/gson/package-info.java b/gson/src/main/java/com/google/gson/package-info.java index 428e280c..42783703 100644 --- a/gson/src/main/java/com/google/gson/package-info.java +++ b/gson/src/main/java/com/google/gson/package-info.java @@ -1,3 +1,19 @@ +/* + * 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. + */ + /** * This package provides the {@link com.google.gson.Gson} class to convert Json to Java and * vice-versa. @@ -8,4 +24,4 @@ * * @author Inderjeet Singh, Joel Leitch */ -package com.google.gson; \ No newline at end of file +package com.google.gson; diff --git a/gson/src/main/java/com/google/gson/reflect/package-info.java b/gson/src/main/java/com/google/gson/reflect/package-info.java index 5e43ee9f..cf51ffc7 100644 --- a/gson/src/main/java/com/google/gson/reflect/package-info.java +++ b/gson/src/main/java/com/google/gson/reflect/package-info.java @@ -1,6 +1,22 @@ +/* + * 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. + */ + /** * This package provides utility classes for finding type information for generic types. * * @author Inderjeet Singh, Joel Leitch */ -package com.google.gson.reflect; \ No newline at end of file +package com.google.gson.reflect; diff --git a/gson/src/main/java/com/google/gson/stream/package-info.java b/gson/src/main/java/com/google/gson/stream/package-info.java index bed6c629..4a8687e2 100644 --- a/gson/src/main/java/com/google/gson/stream/package-info.java +++ b/gson/src/main/java/com/google/gson/stream/package-info.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2021 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. + */ + /** * This package provides classes for processing JSON in an efficient streaming way. */ diff --git a/gson/src/main/java/module-info.java b/gson/src/main/java/module-info.java index 0134c9dc..cddfb571 100644 --- a/gson/src/main/java/module-info.java +++ b/gson/src/main/java/module-info.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2018 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. + */ + /** * Defines the Gson serialization/deserialization API. * @since 2.8.6 diff --git a/gson/src/test/java/com/google/gson/FieldNamingPolicyTest.java b/gson/src/test/java/com/google/gson/FieldNamingPolicyTest.java index ebb7f0aa..f72a8317 100644 --- a/gson/src/test/java/com/google/gson/FieldNamingPolicyTest.java +++ b/gson/src/test/java/com/google/gson/FieldNamingPolicyTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2021 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; import static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/JsonArrayAsListTest.java b/gson/src/test/java/com/google/gson/JsonArrayAsListTest.java index 0fb17b56..49987379 100644 --- a/gson/src/test/java/com/google/gson/JsonArrayAsListTest.java +++ b/gson/src/test/java/com/google/gson/JsonArrayAsListTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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; import static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/JsonObjectAsMapTest.java b/gson/src/test/java/com/google/gson/JsonObjectAsMapTest.java index 0e4de073..40fc317a 100644 --- a/gson/src/test/java/com/google/gson/JsonObjectAsMapTest.java +++ b/gson/src/test/java/com/google/gson/JsonObjectAsMapTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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; import static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/JsonParserParameterizedTest.java b/gson/src/test/java/com/google/gson/JsonParserParameterizedTest.java index 936a678f..159a8c01 100644 --- a/gson/src/test/java/com/google/gson/JsonParserParameterizedTest.java +++ b/gson/src/test/java/com/google/gson/JsonParserParameterizedTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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; import static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/ObjectTypeAdapterParameterizedTest.java b/gson/src/test/java/com/google/gson/ObjectTypeAdapterParameterizedTest.java index fe2aa9f9..a211ff91 100644 --- a/gson/src/test/java/com/google/gson/ObjectTypeAdapterParameterizedTest.java +++ b/gson/src/test/java/com/google/gson/ObjectTypeAdapterParameterizedTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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; import static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/TypeAdapterTest.java b/gson/src/test/java/com/google/gson/TypeAdapterTest.java index 97aaedfb..18af4c4b 100644 --- a/gson/src/test/java/com/google/gson/TypeAdapterTest.java +++ b/gson/src/test/java/com/google/gson/TypeAdapterTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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; import static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/functional/JsonTreeTest.java b/gson/src/test/java/com/google/gson/functional/JsonTreeTest.java index 3ffd55a8..87015789 100644 --- a/gson/src/test/java/com/google/gson/functional/JsonTreeTest.java +++ b/gson/src/test/java/com/google/gson/functional/JsonTreeTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2009 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 static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/functional/ReflectionAccessFilterTest.java b/gson/src/test/java/com/google/gson/functional/ReflectionAccessFilterTest.java index 1d79b38e..67b60e2b 100644 --- a/gson/src/test/java/com/google/gson/functional/ReflectionAccessFilterTest.java +++ b/gson/src/test/java/com/google/gson/functional/ReflectionAccessFilterTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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 static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/functional/ReflectionAccessTest.java b/gson/src/test/java/com/google/gson/functional/ReflectionAccessTest.java index 30c0a2ff..f552a5fc 100644 --- a/gson/src/test/java/com/google/gson/functional/ReflectionAccessTest.java +++ b/gson/src/test/java/com/google/gson/functional/ReflectionAccessTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2021 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 static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/functional/ReusedTypeVariablesFullyResolveTest.java b/gson/src/test/java/com/google/gson/functional/ReusedTypeVariablesFullyResolveTest.java index f65113fc..6ee01d73 100644 --- a/gson/src/test/java/com/google/gson/functional/ReusedTypeVariablesFullyResolveTest.java +++ b/gson/src/test/java/com/google/gson/functional/ReusedTypeVariablesFullyResolveTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2018 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 static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/functional/StringTest.java b/gson/src/test/java/com/google/gson/functional/StringTest.java index b66a01c5..e92b2da9 100644 --- a/gson/src/test/java/com/google/gson/functional/StringTest.java +++ b/gson/src/test/java/com/google/gson/functional/StringTest.java @@ -1,3 +1,19 @@ +/* + * 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 static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/functional/TypeAdapterRuntimeTypeWrapperTest.java b/gson/src/test/java/com/google/gson/functional/TypeAdapterRuntimeTypeWrapperTest.java index d7551135..dffdda37 100644 --- a/gson/src/test/java/com/google/gson/functional/TypeAdapterRuntimeTypeWrapperTest.java +++ b/gson/src/test/java/com/google/gson/functional/TypeAdapterRuntimeTypeWrapperTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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 static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/internal/ConstructorConstructorTest.java b/gson/src/test/java/com/google/gson/internal/ConstructorConstructorTest.java index 7ca2f899..602ba074 100644 --- a/gson/src/test/java/com/google/gson/internal/ConstructorConstructorTest.java +++ b/gson/src/test/java/com/google/gson/internal/ConstructorConstructorTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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.internal; import static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/internal/StreamsTest.java b/gson/src/test/java/com/google/gson/internal/StreamsTest.java index 61b42155..0aeb4fdf 100644 --- a/gson/src/test/java/com/google/gson/internal/StreamsTest.java +++ b/gson/src/test/java/com/google/gson/internal/StreamsTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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.internal; import static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/internal/bind/Java17ReflectiveTypeAdapterFactoryTest.java b/gson/src/test/java/com/google/gson/internal/bind/Java17ReflectiveTypeAdapterFactoryTest.java index 288d1a38..deca2b08 100644 --- a/gson/src/test/java/com/google/gson/internal/bind/Java17ReflectiveTypeAdapterFactoryTest.java +++ b/gson/src/test/java/com/google/gson/internal/bind/Java17ReflectiveTypeAdapterFactoryTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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.internal.bind; import static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/internal/bind/util/ISO8601UtilsTest.java b/gson/src/test/java/com/google/gson/internal/bind/util/ISO8601UtilsTest.java index 4db58653..c96ae643 100644 --- a/gson/src/test/java/com/google/gson/internal/bind/util/ISO8601UtilsTest.java +++ b/gson/src/test/java/com/google/gson/internal/bind/util/ISO8601UtilsTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2020 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.internal.bind.util; import static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/internal/reflect/Java17ReflectionHelperTest.java b/gson/src/test/java/com/google/gson/internal/reflect/Java17ReflectionHelperTest.java index 6d8a7015..d720d55c 100644 --- a/gson/src/test/java/com/google/gson/internal/reflect/Java17ReflectionHelperTest.java +++ b/gson/src/test/java/com/google/gson/internal/reflect/Java17ReflectionHelperTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2022 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.internal.reflect; import static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/internal/sql/SqlTypesGsonTest.java b/gson/src/test/java/com/google/gson/internal/sql/SqlTypesGsonTest.java index e685a48f..b04c56ab 100644 --- a/gson/src/test/java/com/google/gson/internal/sql/SqlTypesGsonTest.java +++ b/gson/src/test/java/com/google/gson/internal/sql/SqlTypesGsonTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2020 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.internal.sql; import static com.google.common.truth.Truth.assertThat; diff --git a/gson/src/test/java/com/google/gson/internal/sql/SqlTypesSupportTest.java b/gson/src/test/java/com/google/gson/internal/sql/SqlTypesSupportTest.java index d912fd55..23778079 100644 --- a/gson/src/test/java/com/google/gson/internal/sql/SqlTypesSupportTest.java +++ b/gson/src/test/java/com/google/gson/internal/sql/SqlTypesSupportTest.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2020 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.internal.sql; import static com.google.common.truth.Truth.assertThat; diff --git a/metrics/pom.xml b/metrics/pom.xml index 8d9d90f0..45475c14 100644 --- a/metrics/pom.xml +++ b/metrics/pom.xml @@ -1,3 +1,19 @@ + + 4.0.0 diff --git a/metrics/src/main/java/com/google/gson/metrics/NonUploadingCaliperRunner.java b/metrics/src/main/java/com/google/gson/metrics/NonUploadingCaliperRunner.java index 80633e14..eb6753b4 100644 --- a/metrics/src/main/java/com/google/gson/metrics/NonUploadingCaliperRunner.java +++ b/metrics/src/main/java/com/google/gson/metrics/NonUploadingCaliperRunner.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2021 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.metrics; import com.google.caliper.runner.CaliperMain; diff --git a/pom.xml b/pom.xml index 9cfa8d11..256fd54f 100644 --- a/pom.xml +++ b/pom.xml @@ -1,5 +1,19 @@ + 4.0.0 diff --git a/proto/pom.xml b/proto/pom.xml index 513c8cbb..9225ff22 100644 --- a/proto/pom.xml +++ b/proto/pom.xml @@ -1,5 +1,19 @@ + 4.0.0 From 9f26679e7a96f0bb9952c326b2d9f79ef03ea9f5 Mon Sep 17 00:00:00 2001 From: Maicol <79454487+MaicolAntali@users.noreply.github.com> Date: Mon, 6 Feb 2023 15:13:28 +0100 Subject: [PATCH 04/11] Adds Error Prone to the `maven-compiler-plugin` (#2308) * Adds Error Prone to the `pom.xml` * Adds Error Prone annotations to avoid compiling errors * Adds profile to run Error Prone in JDK8 * Revert "Adds profile to run Error Prone in JDK8" This reverts commit 61771d0da55003ea5bc8c6f086d925aec583c9a2. * Fix Error Prone warn * Add comment to `pom.xml` * Fix the `@SuppressWarnings("GetClassOnClass")` * Replace the Error Prone link in the `pom.xml` * Disable Error Prone with jdk-15` * Remove a new-line in `pom.xml` --- .../PostConstructAdapterFactoryTest.java | 6 +-- .../java/com/google/gson/JsonArrayTest.java | 1 + .../java/com/google/gson/JsonObjectTest.java | 1 + .../com/google/gson/common/TestTypes.java | 3 +- .../functional/DefaultTypeAdaptersTest.java | 2 +- .../gson/functional/InstanceCreatorTest.java | 4 +- .../ReflectionAccessFilterTest.java | 2 +- .../gson/functional/TypeVariableTest.java | 5 ++- .../google/gson/stream/JsonReaderTest.java | 3 +- pom.xml | 42 ++++++++++++++++++- 10 files changed, 57 insertions(+), 12 deletions(-) diff --git a/extras/src/test/java/com/google/gson/typeadapters/PostConstructAdapterFactoryTest.java b/extras/src/test/java/com/google/gson/typeadapters/PostConstructAdapterFactoryTest.java index 65053bac..a4b9d04e 100644 --- a/extras/src/test/java/com/google/gson/typeadapters/PostConstructAdapterFactoryTest.java +++ b/extras/src/test/java/com/google/gson/typeadapters/PostConstructAdapterFactoryTest.java @@ -57,8 +57,8 @@ public class PostConstructAdapterFactoryTest { assertEquals(sandwiches, sandwichesFromJson); } - @SuppressWarnings("overrides") // for missing hashCode() override - static class Sandwich { + @SuppressWarnings({"overrides", "EqualsHashCode"}) // for missing hashCode() override + static class Sandwich { public String bread; public String cheese; @@ -92,7 +92,7 @@ public class PostConstructAdapterFactoryTest { } } - @SuppressWarnings("overrides") // for missing hashCode() override + @SuppressWarnings({"overrides", "EqualsHashCode"}) // for missing hashCode() override static class MultipleSandwiches { public List sandwiches; diff --git a/gson/src/test/java/com/google/gson/JsonArrayTest.java b/gson/src/test/java/com/google/gson/JsonArrayTest.java index 21deb729..bb531117 100644 --- a/gson/src/test/java/com/google/gson/JsonArrayTest.java +++ b/gson/src/test/java/com/google/gson/JsonArrayTest.java @@ -35,6 +35,7 @@ public final class JsonArrayTest { } @Test + @SuppressWarnings("TruthSelfEquals") public void testEqualsNonEmptyArray() { JsonArray a = new JsonArray(); JsonArray b = new JsonArray(); diff --git a/gson/src/test/java/com/google/gson/JsonObjectTest.java b/gson/src/test/java/com/google/gson/JsonObjectTest.java index d0da6abb..9b37823d 100644 --- a/gson/src/test/java/com/google/gson/JsonObjectTest.java +++ b/gson/src/test/java/com/google/gson/JsonObjectTest.java @@ -163,6 +163,7 @@ public class JsonObjectTest { } @Test + @SuppressWarnings("TruthSelfEquals") public void testEqualsNonEmptyObject() { JsonObject a = new JsonObject(); JsonObject b = new JsonObject(); diff --git a/gson/src/test/java/com/google/gson/common/TestTypes.java b/gson/src/test/java/com/google/gson/common/TestTypes.java index 13807637..9df4a73d 100644 --- a/gson/src/test/java/com/google/gson/common/TestTypes.java +++ b/gson/src/test/java/com/google/gson/common/TestTypes.java @@ -227,7 +227,8 @@ public class TestTypes { } } - @SuppressWarnings("overrides") // for missing hashCode() override + // for missing hashCode() override + @SuppressWarnings({"overrides", "EqualsHashCode"}) public static class ClassWithNoFields { // Nothing here.. @Override diff --git a/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java b/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java index 33ebc682..ee15bfc4 100644 --- a/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java +++ b/gson/src/test/java/com/google/gson/functional/DefaultTypeAdaptersTest.java @@ -103,7 +103,7 @@ public class DefaultTypeAdaptersTest { @Test public void testClassDeserialization() { try { - gson.fromJson("String.class", String.class.getClass()); + gson.fromJson("String.class", Class.class); fail(); } catch (UnsupportedOperationException expected) { } diff --git a/gson/src/test/java/com/google/gson/functional/InstanceCreatorTest.java b/gson/src/test/java/com/google/gson/functional/InstanceCreatorTest.java index 930a18d5..ea3f9799 100644 --- a/gson/src/test/java/com/google/gson/functional/InstanceCreatorTest.java +++ b/gson/src/test/java/com/google/gson/functional/InstanceCreatorTest.java @@ -122,11 +122,11 @@ public class InstanceCreatorTest { Type sortedSetType = new TypeToken>() {}.getType(); SortedSet set = gson.fromJson("[\"a\"]", sortedSetType); - assertThat("a").isEqualTo(set.first()); + assertThat(set.first()).isEqualTo("a"); assertThat(set.getClass()).isEqualTo(SubTreeSet.class); set = gson.fromJson("[\"b\"]", SortedSet.class); - assertThat("b").isEqualTo(set.first()); + assertThat(set.first()).isEqualTo("b"); assertThat(set.getClass()).isEqualTo(SubTreeSet.class); } } diff --git a/gson/src/test/java/com/google/gson/functional/ReflectionAccessFilterTest.java b/gson/src/test/java/com/google/gson/functional/ReflectionAccessFilterTest.java index 67b60e2b..dc58d024 100644 --- a/gson/src/test/java/com/google/gson/functional/ReflectionAccessFilterTest.java +++ b/gson/src/test/java/com/google/gson/functional/ReflectionAccessFilterTest.java @@ -18,7 +18,7 @@ package com.google.gson.functional; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; -import static org.junit.Assume.assumeNotNull;; +import static org.junit.Assume.assumeNotNull; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/gson/src/test/java/com/google/gson/functional/TypeVariableTest.java b/gson/src/test/java/com/google/gson/functional/TypeVariableTest.java index fdde72c8..c788febe 100644 --- a/gson/src/test/java/com/google/gson/functional/TypeVariableTest.java +++ b/gson/src/test/java/com/google/gson/functional/TypeVariableTest.java @@ -73,7 +73,8 @@ public class TypeVariableTest { assertThat(blue2).isEqualTo(blue1); } - @SuppressWarnings("overrides") // for missing hashCode() override + // for missing hashCode() override + @SuppressWarnings({"overrides", "EqualsHashCode"}) public static class Blue extends Red { public Blue() { super(false); @@ -103,7 +104,7 @@ public class TypeVariableTest { } } - @SuppressWarnings("overrides") // for missing hashCode() override + @SuppressWarnings({"overrides", "EqualsHashCode"}) // for missing hashCode() override public static class Foo extends Red { private S someSField; private T someTField; diff --git a/gson/src/test/java/com/google/gson/stream/JsonReaderTest.java b/gson/src/test/java/com/google/gson/stream/JsonReaderTest.java index 92af5bd1..09c07470 100644 --- a/gson/src/test/java/com/google/gson/stream/JsonReaderTest.java +++ b/gson/src/test/java/com/google/gson/stream/JsonReaderTest.java @@ -1698,7 +1698,8 @@ public final class JsonReaderTest { reader.beginObject(); assertThat(reader.nextName()).isEqualTo("a"); } - assertThat(reader.getPath()); + assertThat(reader.getPath()).isEqualTo("$.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a" + + ".a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a"); assertThat(reader.nextBoolean()).isTrue(); for (int i = 0; i < 40; i++) { reader.endObject(); diff --git a/pom.xml b/pom.xml index 256fd54f..babfbc24 100644 --- a/pom.xml +++ b/pom.xml @@ -94,12 +94,32 @@ true true - true + true + + -XDcompilePolicy=simple + -Xplugin:ErrorProne + -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED + -J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED -Xlint:all,-options + + + com.google.errorprone + error_prone_core + 2.18.0 + + [11,) @@ -271,6 +291,26 @@ + + + jdk15 + + 15 + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + -Xlint:all,-options + + + + + + release From af2179843601c73aa96062208d8f324a45243e47 Mon Sep 17 00:00:00 2001 From: Maicol <79454487+MaicolAntali@users.noreply.github.com> Date: Mon, 6 Feb 2023 18:40:11 +0100 Subject: [PATCH 05/11] Fix the `equals` method of `JsonPrimitive` to work with `BigInteger` (#2311) * Fix the `equals` method of `JsonPrimitive` to work with BigInteger * Improve the `equals` & `getAsBigInteger` methods in `JsonPrimitive` --- gson/src/main/java/com/google/gson/JsonPrimitive.java | 11 ++++++++--- .../test/java/com/google/gson/JsonPrimitiveTest.java | 6 ++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/gson/src/main/java/com/google/gson/JsonPrimitive.java b/gson/src/main/java/com/google/gson/JsonPrimitive.java index 66dacfe5..fce9093f 100644 --- a/gson/src/main/java/com/google/gson/JsonPrimitive.java +++ b/gson/src/main/java/com/google/gson/JsonPrimitive.java @@ -180,8 +180,11 @@ public final class JsonPrimitive extends JsonElement { */ @Override public BigInteger getAsBigInteger() { - return value instanceof BigInteger ? - (BigInteger) value : new BigInteger(getAsString()); + return value instanceof BigInteger + ? (BigInteger) value + : isIntegral(this) + ? BigInteger.valueOf(this.getAsNumber().longValue()) + : new BigInteger(this.getAsString()); } /** @@ -282,7 +285,9 @@ public final class JsonPrimitive extends JsonElement { return other.value == null; } if (isIntegral(this) && isIntegral(other)) { - return getAsNumber().longValue() == other.getAsNumber().longValue(); + return this.value instanceof BigInteger || other.value instanceof BigInteger + ? this.getAsBigInteger().equals(other.getAsBigInteger()) + : this.getAsNumber().longValue() == other.getAsNumber().longValue(); } if (value instanceof Number && other.value instanceof Number) { double a = getAsNumber().doubleValue(); diff --git a/gson/src/test/java/com/google/gson/JsonPrimitiveTest.java b/gson/src/test/java/com/google/gson/JsonPrimitiveTest.java index b5b96638..24947012 100644 --- a/gson/src/test/java/com/google/gson/JsonPrimitiveTest.java +++ b/gson/src/test/java/com/google/gson/JsonPrimitiveTest.java @@ -300,10 +300,8 @@ public class JsonPrimitiveTest { @Test public void testEqualsIntegerAndBigInteger() { JsonPrimitive a = new JsonPrimitive(5L); - JsonPrimitive b = new JsonPrimitive(new BigInteger("18446744073709551621")); // 2^64 + 5 - // Ideally, the following assertion should have failed but the price is too much to pay - // assertFalse(a + " equals " + b, a.equals(b)); - assertWithMessage("%s equals %s", a, b).that(a.equals(b)).isTrue(); + JsonPrimitive b = new JsonPrimitive(new BigInteger("18446744073709551621")); + assertWithMessage("%s not equals %s", a, b).that(a.equals(b)).isFalse(); } @Test From 19f54ee6ed33b7517c729c801bc57c8c0478be7d Mon Sep 17 00:00:00 2001 From: Mihai Nita Date: Sun, 12 Feb 2023 08:20:02 -0800 Subject: [PATCH 06/11] Fixes #776: Add settings for the kind of newline to use (#2231) * Add settings for kind of newline to use * Fix amp in javadoc * Fixing link in javadoc * Doc: use JSON instead of Json Co-authored-by: Marcono1234 * PR Feedback: Objects.requireNonNull Co-authored-by: Marcono1234 * PR Feedback: $next-version$, don't hardcode Co-authored-by: Marcono1234 * s/testNewlineLF/testNewlineLf/ Co-authored-by: Marcono1234 * Implement PR feedback * Round two of review * Restore copyright year, no reason to update * Rename OS named enum values to CR and LF * Add javadoc to NewlineStyle.getValue() * Implement PR feedback, round 2 * Fix typo Co-authored-by: Marcono1234 * No need for line break Co-authored-by: Marcono1234 * Shorter, cleaner doc Co-authored-by: Marcono1234 * Using a FormattingStyle for pretty print * Fix Junit4 and Truth after merge from master * Implement review feedback * Double backslash in message --------- Co-authored-by: Marcono1234 --- .../java/com/google/gson/FormattingStyle.java | 98 +++++++++++ gson/src/main/java/com/google/gson/Gson.java | 31 ++-- .../java/com/google/gson/GsonBuilder.java | 27 +++- .../java/com/google/gson/JsonPrimitive.java | 2 +- .../com/google/gson/stream/JsonWriter.java | 47 +++++- gson/src/main/java/module-info.java | 16 +- .../test/java/com/google/gson/GsonTest.java | 6 +- .../gson/functional/FormattingStyleTest.java | 152 ++++++++++++++++++ .../internal/bind/JsonTreeWriterTest.java | 8 +- .../google/gson/stream/JsonWriterTest.java | 27 ++++ 10 files changed, 371 insertions(+), 43 deletions(-) create mode 100644 gson/src/main/java/com/google/gson/FormattingStyle.java create mode 100644 gson/src/test/java/com/google/gson/functional/FormattingStyleTest.java diff --git a/gson/src/main/java/com/google/gson/FormattingStyle.java b/gson/src/main/java/com/google/gson/FormattingStyle.java new file mode 100644 index 00000000..19b307aa --- /dev/null +++ b/gson/src/main/java/com/google/gson/FormattingStyle.java @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2022 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; + +import java.util.Objects; + +/** + * A class used to control what the serialization looks like. + * + *

It currently defines the kind of newline to use, and the indent, but + * might add more in the future.

+ * + * @see
Wikipedia Newline article + * + * @since $next-version$ + */ +public class FormattingStyle { + private final String newline; + private final String indent; + + static public final FormattingStyle DEFAULT = + new FormattingStyle("\n", " "); + + private FormattingStyle(String newline, String indent) { + Objects.requireNonNull(newline, "newline == null"); + Objects.requireNonNull(indent, "indent == null"); + if (!newline.matches("[\r\n]*")) { + throw new IllegalArgumentException( + "Only combinations of \\n and \\r are allowed in newline."); + } + if (!indent.matches("[ \t]*")) { + throw new IllegalArgumentException( + "Only combinations of spaces and tabs allowed in indent."); + } + this.newline = newline; + this.indent = indent; + } + + /** + * Creates a {@link FormattingStyle} with the specified newline setting. + * + *

It can be used to accommodate certain OS convention, for example + * hardcode {@code "\r"} for Linux and macos, {@code "\r\n"} for Windows, or + * call {@link java.lang.System#lineSeparator()} to match the current OS.

+ * + *

Only combinations of {@code \n} and {@code \r} are allowed.

+ * + * @param newline the string value that will be used as newline. + * @return a newly created {@link FormattingStyle} + */ + public FormattingStyle withNewline(String newline) { + return new FormattingStyle(newline, this.indent); + } + + /** + * Creates a {@link FormattingStyle} with the specified indent string. + * + *

Only combinations of spaces and tabs allowed in indent.

+ * + * @param indent the string value that will be used as indent. + * @return a newly created {@link FormattingStyle} + */ + public FormattingStyle withIndent(String indent) { + return new FormattingStyle(this.newline, indent); + } + + /** + * The string value that will be used as a newline. + * + * @return the newline value. + */ + public String getNewline() { + return this.newline; + } + + /** + * The string value that will be used as indent. + * + * @return the indent value. + */ + public String getIndent() { + return this.indent; + } +} diff --git a/gson/src/main/java/com/google/gson/Gson.java b/gson/src/main/java/com/google/gson/Gson.java index 0339d569..34f92fab 100644 --- a/gson/src/main/java/com/google/gson/Gson.java +++ b/gson/src/main/java/com/google/gson/Gson.java @@ -69,8 +69,8 @@ import java.util.concurrent.atomic.AtomicLongArray; * *

You can create a Gson instance by invoking {@code new Gson()} if the default configuration * is all you need. You can also use {@link GsonBuilder} to build a Gson instance with various - * configuration options such as versioning support, pretty printing, custom - * {@link JsonSerializer}s, {@link JsonDeserializer}s, and {@link InstanceCreator}s.

+ * configuration options such as versioning support, pretty printing, custom newline, custom indent, + * custom {@link JsonSerializer}s, {@link JsonDeserializer}s, and {@link InstanceCreator}s.

* *

Here is an example of how Gson is used for a simple Class: * @@ -141,7 +141,7 @@ import java.util.concurrent.atomic.AtomicLongArray; public final class Gson { static final boolean DEFAULT_JSON_NON_EXECUTABLE = false; static final boolean DEFAULT_LENIENT = false; - static final boolean DEFAULT_PRETTY_PRINT = false; + static final FormattingStyle DEFAULT_FORMATTING_STYLE = null; static final boolean DEFAULT_ESCAPE_HTML = true; static final boolean DEFAULT_SERIALIZE_NULLS = false; static final boolean DEFAULT_COMPLEX_MAP_KEYS = false; @@ -182,7 +182,7 @@ public final class Gson { final boolean complexMapKeySerialization; final boolean generateNonExecutableJson; final boolean htmlSafe; - final boolean prettyPrinting; + final FormattingStyle formattingStyle; final boolean lenient; final boolean serializeSpecialFloatingPointValues; final boolean useJdkUnsafe; @@ -202,7 +202,9 @@ public final class Gson { *

    *
  • The JSON generated by toJson methods is in compact representation. This * means that all the unneeded white-space is removed. You can change this behavior with - * {@link GsonBuilder#setPrettyPrinting()}.
  • + * {@link GsonBuilder#setPrettyPrinting()}. + *
  • When the JSON generated contains more than one line, the kind of newline and indent to + * use can be configured with {@link GsonBuilder#setPrettyPrinting(FormattingStyle)}.
  • *
  • The generated JSON omits all the fields that are null. Note that nulls in arrays are * kept as is since an array is an ordered list. Moreover, if a field is not null, but its * generated JSON is empty, the field is kept. You can configure Gson to serialize null values @@ -234,7 +236,7 @@ public final class Gson { this(Excluder.DEFAULT, DEFAULT_FIELD_NAMING_STRATEGY, Collections.>emptyMap(), DEFAULT_SERIALIZE_NULLS, DEFAULT_COMPLEX_MAP_KEYS, DEFAULT_JSON_NON_EXECUTABLE, DEFAULT_ESCAPE_HTML, - DEFAULT_PRETTY_PRINT, DEFAULT_LENIENT, DEFAULT_SPECIALIZE_FLOAT_VALUES, + DEFAULT_FORMATTING_STYLE, DEFAULT_LENIENT, DEFAULT_SPECIALIZE_FLOAT_VALUES, DEFAULT_USE_JDK_UNSAFE, LongSerializationPolicy.DEFAULT, DEFAULT_DATE_PATTERN, DateFormat.DEFAULT, DateFormat.DEFAULT, Collections.emptyList(), Collections.emptyList(), @@ -245,7 +247,7 @@ public final class Gson { Gson(Excluder excluder, FieldNamingStrategy fieldNamingStrategy, Map> instanceCreators, boolean serializeNulls, boolean complexMapKeySerialization, boolean generateNonExecutableGson, boolean htmlSafe, - boolean prettyPrinting, boolean lenient, boolean serializeSpecialFloatingPointValues, + FormattingStyle formattingStyle, boolean lenient, boolean serializeSpecialFloatingPointValues, boolean useJdkUnsafe, LongSerializationPolicy longSerializationPolicy, String datePattern, int dateStyle, int timeStyle, List builderFactories, @@ -261,7 +263,7 @@ public final class Gson { this.complexMapKeySerialization = complexMapKeySerialization; this.generateNonExecutableJson = generateNonExecutableGson; this.htmlSafe = htmlSafe; - this.prettyPrinting = prettyPrinting; + this.formattingStyle = formattingStyle; this.lenient = lenient; this.serializeSpecialFloatingPointValues = serializeSpecialFloatingPointValues; this.useJdkUnsafe = useJdkUnsafe; @@ -702,7 +704,7 @@ public final class Gson { *
        * Type typeOfSrc = new TypeToken<Collection<Foo>>(){}.getType();
        * 
    - * @return Json representation of {@code src} + * @return JSON representation of {@code src}. * @since 1.4 * * @see #toJsonTree(Object) @@ -724,7 +726,7 @@ public final class Gson { * {@link Writer}, use {@link #toJson(Object, Appendable)} instead. * * @param src the object for which JSON representation is to be created - * @return Json representation of {@code src}. + * @return JSON representation of {@code src}. * * @see #toJson(Object, Appendable) * @see #toJson(Object, Type) @@ -749,7 +751,7 @@ public final class Gson { *
        * Type typeOfSrc = new TypeToken<Collection<Foo>>(){}.getType();
        * 
    - * @return JSON representation of {@code src} + * @return JSON representation of {@code src}. * * @see #toJson(Object, Type, Appendable) * @see #toJson(Object) @@ -855,7 +857,7 @@ public final class Gson { * Converts a tree of {@link JsonElement}s into its equivalent JSON representation. * * @param jsonElement root of a tree of {@link JsonElement}s - * @return JSON String representation of the tree + * @return JSON String representation of the tree. * @since 1.4 */ public String toJson(JsonElement jsonElement) { @@ -891,6 +893,7 @@ public final class Gson { *
  • {@link GsonBuilder#serializeNulls()}
  • *
  • {@link GsonBuilder#setLenient()}
  • *
  • {@link GsonBuilder#setPrettyPrinting()}
  • + *
  • {@link GsonBuilder#setPrettyPrinting(FormattingStyle)}
  • *
*/ public JsonWriter newJsonWriter(Writer writer) throws IOException { @@ -898,9 +901,7 @@ public final class Gson { writer.write(JSON_NON_EXECUTABLE_PREFIX); } JsonWriter jsonWriter = new JsonWriter(writer); - if (prettyPrinting) { - jsonWriter.setIndent(" "); - } + jsonWriter.setFormattingStyle(formattingStyle); jsonWriter.setHtmlSafe(htmlSafe); jsonWriter.setLenient(lenient); jsonWriter.setSerializeNulls(serializeNulls); diff --git a/gson/src/main/java/com/google/gson/GsonBuilder.java b/gson/src/main/java/com/google/gson/GsonBuilder.java index 8b04430f..63c7f047 100644 --- a/gson/src/main/java/com/google/gson/GsonBuilder.java +++ b/gson/src/main/java/com/google/gson/GsonBuilder.java @@ -23,7 +23,7 @@ import static com.google.gson.Gson.DEFAULT_JSON_NON_EXECUTABLE; import static com.google.gson.Gson.DEFAULT_LENIENT; import static com.google.gson.Gson.DEFAULT_NUMBER_TO_NUMBER_STRATEGY; import static com.google.gson.Gson.DEFAULT_OBJECT_TO_NUMBER_STRATEGY; -import static com.google.gson.Gson.DEFAULT_PRETTY_PRINT; +import static com.google.gson.Gson.DEFAULT_FORMATTING_STYLE; import static com.google.gson.Gson.DEFAULT_SERIALIZE_NULLS; import static com.google.gson.Gson.DEFAULT_SPECIALIZE_FLOAT_VALUES; import static com.google.gson.Gson.DEFAULT_USE_JDK_UNSAFE; @@ -98,7 +98,7 @@ public final class GsonBuilder { private boolean complexMapKeySerialization = DEFAULT_COMPLEX_MAP_KEYS; private boolean serializeSpecialFloatingPointValues = DEFAULT_SPECIALIZE_FLOAT_VALUES; private boolean escapeHtmlChars = DEFAULT_ESCAPE_HTML; - private boolean prettyPrinting = DEFAULT_PRETTY_PRINT; + private FormattingStyle formattingStyle = DEFAULT_FORMATTING_STYLE; private boolean generateNonExecutableJson = DEFAULT_JSON_NON_EXECUTABLE; private boolean lenient = DEFAULT_LENIENT; private boolean useJdkUnsafe = DEFAULT_USE_JDK_UNSAFE; @@ -129,7 +129,7 @@ public final class GsonBuilder { this.complexMapKeySerialization = gson.complexMapKeySerialization; this.generateNonExecutableJson = gson.generateNonExecutableJson; this.escapeHtmlChars = gson.htmlSafe; - this.prettyPrinting = gson.prettyPrinting; + this.formattingStyle = gson.formattingStyle; this.lenient = gson.lenient; this.serializeSpecialFloatingPointValues = gson.serializeSpecialFloatingPointValues; this.longSerializationPolicy = gson.longSerializationPolicy; @@ -478,13 +478,26 @@ public final class GsonBuilder { } /** - * Configures Gson to output Json that fits in a page for pretty printing. This option only - * affects Json serialization. + * Configures Gson to output JSON that fits in a page for pretty printing. This option only + * affects JSON serialization. * * @return a reference to this {@code GsonBuilder} object to fulfill the "Builder" pattern */ public GsonBuilder setPrettyPrinting() { - prettyPrinting = true; + return setPrettyPrinting(FormattingStyle.DEFAULT); + } + + /** + * Configures Gson to output JSON that uses a certain kind of formatting stile (for example newline and indent). + * This option only affects JSON serialization. + * + *

Has no effect if the serialized format is a single line.

+ * + * @return a reference to this {@code GsonBuilder} object to fulfill the "Builder" pattern + * @since $next-version$ + */ + public GsonBuilder setPrettyPrinting(FormattingStyle formattingStyle) { + this.formattingStyle = formattingStyle; return this; } @@ -761,7 +774,7 @@ public final class GsonBuilder { return new Gson(excluder, fieldNamingPolicy, new HashMap<>(instanceCreators), serializeNulls, complexMapKeySerialization, - generateNonExecutableJson, escapeHtmlChars, prettyPrinting, lenient, + generateNonExecutableJson, escapeHtmlChars, formattingStyle, lenient, serializeSpecialFloatingPointValues, useJdkUnsafe, longSerializationPolicy, datePattern, dateStyle, timeStyle, new ArrayList<>(this.factories), new ArrayList<>(this.hierarchyFactories), factories, diff --git a/gson/src/main/java/com/google/gson/JsonPrimitive.java b/gson/src/main/java/com/google/gson/JsonPrimitive.java index fce9093f..827de959 100644 --- a/gson/src/main/java/com/google/gson/JsonPrimitive.java +++ b/gson/src/main/java/com/google/gson/JsonPrimitive.java @@ -106,7 +106,7 @@ public final class JsonPrimitive extends JsonElement { if (isBoolean()) { return (Boolean) value; } - // Check to see if the value as a String is "true" in any case. + // Check to see if the value as a String is "true" in any case. return Boolean.parseBoolean(getAsString()); } diff --git a/gson/src/main/java/com/google/gson/stream/JsonWriter.java b/gson/src/main/java/com/google/gson/stream/JsonWriter.java index 90e3529c..5afa228e 100644 --- a/gson/src/main/java/com/google/gson/stream/JsonWriter.java +++ b/gson/src/main/java/com/google/gson/stream/JsonWriter.java @@ -36,6 +36,8 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.regex.Pattern; +import com.google.gson.FormattingStyle; + /** * Writes a JSON (RFC 7159) * encoded value to a stream, one token at a time. The stream includes both @@ -180,10 +182,9 @@ public class JsonWriter implements Closeable, Flushable { } /** - * A string containing a full set of spaces for a single level of - * indentation, or null for no pretty printing. + * The settings used for pretty printing, or null for no pretty printing. */ - private String indent; + private FormattingStyle formattingStyle; /** * The name/value separator; either ":" or ": ". @@ -217,14 +218,44 @@ public class JsonWriter implements Closeable, Flushable { */ public final void setIndent(String indent) { if (indent.length() == 0) { - this.indent = null; + setFormattingStyle(null); + } else { + setFormattingStyle(FormattingStyle.DEFAULT.withIndent(indent)); + } + } + + /** + * Sets the pretty printing style to be used in the encoded document. + * No pretty printing if null. + * + *

Sets the various attributes to be used in the encoded document. + * For example the indentation string to be repeated for each level of indentation. + * Or the newline style, to accommodate various OS styles.

+ * + *

Has no effect if the serialized format is a single line.

+ * + * @param formattingStyle the style used for pretty printing, no pretty printing if null. + * @since $next-version$ + */ + public final void setFormattingStyle(FormattingStyle formattingStyle) { + this.formattingStyle = formattingStyle; + if (formattingStyle == null) { this.separator = ":"; } else { - this.indent = indent; this.separator = ": "; } } + /** + * Returns the pretty printing style used by this writer. + * + * @return the FormattingStyle that will be used. + * @since $next-version$ + */ + public final FormattingStyle getFormattingStyle() { + return formattingStyle; + } + /** * Configure this writer to relax its syntax rules. By default, this writer * only emits well-formed JSON as specified by >(), true, false, true, false, - true, true, false, true, LongSerializationPolicy.DEFAULT, null, DateFormat.DEFAULT, + FormattingStyle.DEFAULT, true, false, true, + LongSerializationPolicy.DEFAULT, null, DateFormat.DEFAULT, DateFormat.DEFAULT, new ArrayList(), new ArrayList(), new ArrayList(), CUSTOM_OBJECT_TO_NUMBER_STRATEGY, CUSTOM_NUMBER_TO_NUMBER_STRATEGY, @@ -79,7 +80,8 @@ public final class GsonTest { public void testClonedTypeAdapterFactoryListsAreIndependent() { Gson original = new Gson(CUSTOM_EXCLUDER, CUSTOM_FIELD_NAMING_STRATEGY, new HashMap>(), true, false, true, false, - true, true, false, true, LongSerializationPolicy.DEFAULT, null, DateFormat.DEFAULT, + FormattingStyle.DEFAULT, true, false, true, + LongSerializationPolicy.DEFAULT, null, DateFormat.DEFAULT, DateFormat.DEFAULT, new ArrayList(), new ArrayList(), new ArrayList(), CUSTOM_OBJECT_TO_NUMBER_STRATEGY, CUSTOM_NUMBER_TO_NUMBER_STRATEGY, diff --git a/gson/src/test/java/com/google/gson/functional/FormattingStyleTest.java b/gson/src/test/java/com/google/gson/functional/FormattingStyleTest.java new file mode 100644 index 00000000..4bdbb95f --- /dev/null +++ b/gson/src/test/java/com/google/gson/functional/FormattingStyleTest.java @@ -0,0 +1,152 @@ +/* + * Copyright (C) 2022 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 static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import com.google.gson.FormattingStyle; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** + * Functional tests for formatting styles. + * + * @author Mihai Nita + */ +@RunWith(JUnit4.class) +public class FormattingStyleTest { + + private static final String[] INPUT = {"v1", "v2"}; + private static final String EXPECTED = "[\"v1\",\"v2\"]"; + private static final String EXPECTED_OS = buildExpected(System.lineSeparator(), " "); + private static final String EXPECTED_CR = buildExpected("\r", " "); + private static final String EXPECTED_LF = buildExpected("\n", " "); + private static final String EXPECTED_CRLF = buildExpected("\r\n", " "); + + // Various valid strings that can be used for newline and indent + private static final String[] TEST_NEWLINES = { + "", "\r", "\n", "\r\n", "\n\r\r\n", System.lineSeparator() + }; + private static final String[] TEST_INDENTS = { + "", " ", " ", " ", "\t", " \t \t" + }; + + @Test + public void testDefault() { + Gson gson = new GsonBuilder().setPrettyPrinting().create(); + String json = gson.toJson(INPUT); + // Make sure the default uses LF, like before. + assertEquals(EXPECTED_LF, json); + } + + @Test + public void testNewlineCrLf() { + FormattingStyle style = FormattingStyle.DEFAULT.withNewline("\r\n"); + Gson gson = new GsonBuilder().setPrettyPrinting(style).create(); + String json = gson.toJson(INPUT); + assertEquals(EXPECTED_CRLF, json); + } + + @Test + public void testNewlineLf() { + FormattingStyle style = FormattingStyle.DEFAULT.withNewline("\n"); + Gson gson = new GsonBuilder().setPrettyPrinting(style).create(); + String json = gson.toJson(INPUT); + assertEquals(EXPECTED_LF, json); + } + + @Test + public void testNewlineCr() { + FormattingStyle style = FormattingStyle.DEFAULT.withNewline("\r"); + Gson gson = new GsonBuilder().setPrettyPrinting(style).create(); + String json = gson.toJson(INPUT); + assertEquals(EXPECTED_CR, json); + } + + @Test + public void testNewlineOs() { + FormattingStyle style = FormattingStyle.DEFAULT.withNewline(System.lineSeparator()); + Gson gson = new GsonBuilder().setPrettyPrinting(style).create(); + String json = gson.toJson(INPUT); + assertEquals(EXPECTED_OS, json); + } + + @Test + public void testVariousCombinationsToString() { + for (String indent : TEST_INDENTS) { + for (String newline : TEST_NEWLINES) { + FormattingStyle style = FormattingStyle.DEFAULT.withNewline(newline).withIndent(indent); + Gson gson = new GsonBuilder().setPrettyPrinting(style).create(); + String json = gson.toJson(INPUT); + assertEquals(buildExpected(newline, indent), json); + } + } + } + + @Test + public void testVariousCombinationsParse() { + // Mixing various indent and newline styles in the same string, to be parsed. + String jsonStringMix = "[\r\t'v1',\r\n 'v2'\n]"; + + String[] actualParsed; + // Test all that all combinations of newline can be parsed and generate the same INPUT. + for (String indent : TEST_INDENTS) { + for (String newline : TEST_NEWLINES) { + FormattingStyle style = FormattingStyle.DEFAULT.withNewline(newline).withIndent(indent); + Gson gson = new GsonBuilder().setPrettyPrinting(style).create(); + + String toParse = buildExpected(newline, indent); + actualParsed = gson.fromJson(toParse, INPUT.getClass()); + assertArrayEquals(INPUT, actualParsed); + + // Parse the mixed string with the gson parsers configured with various newline / indents. + actualParsed = gson.fromJson(jsonStringMix, INPUT.getClass()); + assertArrayEquals(INPUT, actualParsed); + } + } + } + + @Test + public void testStyleValidations() { + try { + // TBD if we want to accept \u2028 and \u2029. For now we don't. + FormattingStyle.DEFAULT.withNewline("\u2028"); + fail("Gson should not accept anything but \\r and \\n for newline"); + } catch (IllegalArgumentException expected) { + } + + try { + FormattingStyle.DEFAULT.withNewline("NL"); + fail("Gson should not accept anything but \\r and \\n for newline"); + } catch (IllegalArgumentException expected) { + } + + try { + FormattingStyle.DEFAULT.withIndent("\f"); + fail("Gson should not accept anything but space and tab for indent"); + } catch (IllegalArgumentException expected) { + } + } + + private static String buildExpected(String newline, String indent) { + return EXPECTED.replace("", newline).replace("", indent); + } +} diff --git a/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java b/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java index 3801033a..116d275c 100644 --- a/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java +++ b/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java @@ -278,8 +278,12 @@ public final class JsonTreeWriterTest { */ @Test public void testOverrides() { - List ignoredMethods = Arrays.asList("setLenient(boolean)", "isLenient()", "setIndent(java.lang.String)", - "setHtmlSafe(boolean)", "isHtmlSafe()", "setSerializeNulls(boolean)", "getSerializeNulls()"); + List ignoredMethods = Arrays.asList( + "setLenient(boolean)", "isLenient()", + "setIndent(java.lang.String)", + "setHtmlSafe(boolean)", "isHtmlSafe()", + "setFormattingStyle(com.google.gson.FormattingStyle)", "getFormattingStyle()", + "setSerializeNulls(boolean)", "getSerializeNulls()"); MoreAsserts.assertOverridesMethods(JsonWriter.class, JsonTreeWriter.class, ignoredMethods); } } diff --git a/gson/src/test/java/com/google/gson/stream/JsonWriterTest.java b/gson/src/test/java/com/google/gson/stream/JsonWriterTest.java index a0896676..70470a16 100644 --- a/gson/src/test/java/com/google/gson/stream/JsonWriterTest.java +++ b/gson/src/test/java/com/google/gson/stream/JsonWriterTest.java @@ -19,6 +19,7 @@ package com.google.gson.stream; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; +import com.google.gson.FormattingStyle; import com.google.gson.internal.LazilyParsedNumber; import java.io.IOException; import java.io.StringWriter; @@ -844,4 +845,30 @@ public final class JsonWriterTest { writer.close(); writer.close(); } + + @Test + public void testSetGetFormattingStyle() throws IOException { + String lineSeparator = "\r\n"; + + StringWriter stringWriter = new StringWriter(); + JsonWriter jsonWriter = new JsonWriter(stringWriter); + jsonWriter.setFormattingStyle(FormattingStyle.DEFAULT.withIndent(" \t ").withNewline(lineSeparator)); + + jsonWriter.beginArray(); + jsonWriter.value(true); + jsonWriter.value("text"); + jsonWriter.value(5.0); + jsonWriter.nullValue(); + jsonWriter.endArray(); + + String expected = "[\r\n" + + " \t true,\r\n" + + " \t \"text\",\r\n" + + " \t 5.0,\r\n" + + " \t null\r\n" + + "]"; + assertThat(stringWriter.toString()).isEqualTo(expected); + + assertThat(jsonWriter.getFormattingStyle().getNewline()).isEqualTo(lineSeparator); + } } From 2658aca66a1d0f097794a5ad5eb33c095a8f8d5d Mon Sep 17 00:00:00 2001 From: Maicol <79454487+MaicolAntali@users.noreply.github.com> Date: Wed, 15 Feb 2023 14:18:43 +0100 Subject: [PATCH 07/11] Fix error prone warnings (#2316) * Fix `OperatorPrecedence` warn in `JsonWriter#close` * Fix `ReferenceEquality` warn in `LinkedTreeMap#replaceInParent` * Fix `UnnecessaryParentheses` warn in `LinkedTreeMap#replaceInParent` * Fix `ReferenceEquality` warn in `LinkedTreeMap#hasNext` * Fix `ReferenceEquality` warn in `LinkedTreeMap#nextNode` * Adds `error_prone_annotations` to the `pom.xml` of `gson` * Fix `InlineMeSuggester` warns in `JsonParser` * Fix `UnnecessaryParentheses` warns in `ConstructorConstructor#newDefaultImplementationConstructor` * Fix `ThreadLocalUsage` warn in `Gson` * Fix `JdkObsolete` warn in `GsonBuilder` * Fix `ReferenceEquality` warn in `LazilyParsedNumber#equals` * Fix `OperatorPrecedence` warn in `TreeTypeAdapter#create` * Fix `OperatorPrecedence` warn in `ArrayTypeAdapter` * Fix `UnnecessaryParentheses` warn in `TypeAdapters` * Adds `-XepExcludedPaths` flag to ErrorProne plugin to exclude tests and proto path * Fix `ClassNewInstance` warn in `InterceptorAdapter` * Fix `ThreadLocalUsage` warn in `GraphAdapterBuilder` * Fix `JdkObsolete` warn in `GraphAdapterBuilder` * Revert "Adds `error_prone_annotations` to the `pom.xml` of `gson`" This reverts commit 14af14dfa23b46a54f4855a70ccf2b0a2cdc3e3f. * Revert "Fix `InlineMeSuggester` warns in `JsonParser`" This reverts commit 095bfd517e06510e4cc9cc6b1aac58ad9bf3038a. * Adds `@SuppressWarnings("ThreadLocalUsage")` * Fix `OperatorPrecedence` in `JsonWriter` * Revert "Fix `ReferenceEquality` warn in `LinkedTreeMap#nextNode`" This reverts commit 387746c7f7e3d0943c8f80501f5d9c3710f4862e. * Adds `@SuppressWarnings("ReferenceEquality")` * Adds `guava-testlib` to the gson `pom.xml` * `@SuppressWarnings("TruthSelfEquals")` removed to use `EqualsTester()` --- .../java/com/google/gson/graph/GraphAdapterBuilder.java | 5 +++-- .../com/google/gson/interceptors/InterceptorFactory.java | 2 +- gson/pom.xml | 6 ++++++ gson/src/main/java/com/google/gson/Gson.java | 1 + gson/src/main/java/com/google/gson/GsonBuilder.java | 6 +++--- .../com/google/gson/internal/ConstructorConstructor.java | 4 ++-- .../java/com/google/gson/internal/LazilyParsedNumber.java | 2 +- .../main/java/com/google/gson/internal/LinkedTreeMap.java | 8 ++++++-- .../com/google/gson/internal/bind/ArrayTypeAdapter.java | 2 +- .../com/google/gson/internal/bind/TreeTypeAdapter.java | 2 +- .../java/com/google/gson/internal/bind/TypeAdapters.java | 4 ++-- gson/src/main/java/com/google/gson/stream/JsonWriter.java | 2 +- gson/src/test/java/com/google/gson/JsonArrayTest.java | 4 ++-- gson/src/test/java/com/google/gson/JsonObjectTest.java | 4 ++-- pom.xml | 2 +- 15 files changed, 33 insertions(+), 21 deletions(-) diff --git a/extras/src/main/java/com/google/gson/graph/GraphAdapterBuilder.java b/extras/src/main/java/com/google/gson/graph/GraphAdapterBuilder.java index b226b220..7cc724b8 100644 --- a/extras/src/main/java/com/google/gson/graph/GraphAdapterBuilder.java +++ b/extras/src/main/java/com/google/gson/graph/GraphAdapterBuilder.java @@ -31,10 +31,10 @@ import com.google.gson.stream.JsonToken; import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.lang.reflect.Type; +import java.util.ArrayDeque; import java.util.Collections; import java.util.HashMap; import java.util.IdentityHashMap; -import java.util.LinkedList; import java.util.Map; import java.util.Queue; @@ -79,6 +79,7 @@ public final class GraphAdapterBuilder { static class Factory implements TypeAdapterFactory, InstanceCreator { private final Map> instanceCreators; + @SuppressWarnings("ThreadLocalUsage") private final ThreadLocal graphThreadLocal = new ThreadLocal<>(); Factory(Map> instanceCreators) { @@ -240,7 +241,7 @@ public final class GraphAdapterBuilder { * The queue of elements to write during serialization. Unused during * deserialization. */ - private final Queue> queue = new LinkedList<>(); + private final Queue> queue = new ArrayDeque<>(); /** * The instance currently being deserialized. Used as a backdoor between diff --git a/extras/src/main/java/com/google/gson/interceptors/InterceptorFactory.java b/extras/src/main/java/com/google/gson/interceptors/InterceptorFactory.java index 69bed0e8..2d6060ca 100644 --- a/extras/src/main/java/com/google/gson/interceptors/InterceptorFactory.java +++ b/extras/src/main/java/com/google/gson/interceptors/InterceptorFactory.java @@ -46,7 +46,7 @@ public final class InterceptorFactory implements TypeAdapterFactory { public InterceptorAdapter(TypeAdapter delegate, Intercept intercept) { try { this.delegate = delegate; - this.postDeserializer = intercept.postDeserialize().newInstance(); + this.postDeserializer = intercept.postDeserialize().getDeclaredConstructor().newInstance(); } catch (Exception e) { throw new RuntimeException(e); } diff --git a/gson/pom.xml b/gson/pom.xml index b7ee60b9..1460f70d 100644 --- a/gson/pom.xml +++ b/gson/pom.xml @@ -49,6 +49,12 @@ 1.1.3 test + + com.google.guava + guava-testlib + 31.1-jre + test + diff --git a/gson/src/main/java/com/google/gson/Gson.java b/gson/src/main/java/com/google/gson/Gson.java index 34f92fab..054b1f92 100644 --- a/gson/src/main/java/com/google/gson/Gson.java +++ b/gson/src/main/java/com/google/gson/Gson.java @@ -166,6 +166,7 @@ public final class Gson { * with the type token provided to {@code getAdapter} as key and either * {@code FutureTypeAdapter} or a regular {@code TypeAdapter} as value. */ + @SuppressWarnings("ThreadLocalUsage") private final ThreadLocal, TypeAdapter>> threadLocalAdapterResults = new ThreadLocal<>(); private final ConcurrentMap, TypeAdapter> typeTokenCache = new ConcurrentHashMap<>(); diff --git a/gson/src/main/java/com/google/gson/GsonBuilder.java b/gson/src/main/java/com/google/gson/GsonBuilder.java index 63c7f047..0afc2337 100644 --- a/gson/src/main/java/com/google/gson/GsonBuilder.java +++ b/gson/src/main/java/com/google/gson/GsonBuilder.java @@ -19,11 +19,11 @@ package com.google.gson; import static com.google.gson.Gson.DEFAULT_COMPLEX_MAP_KEYS; import static com.google.gson.Gson.DEFAULT_DATE_PATTERN; import static com.google.gson.Gson.DEFAULT_ESCAPE_HTML; +import static com.google.gson.Gson.DEFAULT_FORMATTING_STYLE; import static com.google.gson.Gson.DEFAULT_JSON_NON_EXECUTABLE; import static com.google.gson.Gson.DEFAULT_LENIENT; import static com.google.gson.Gson.DEFAULT_NUMBER_TO_NUMBER_STRATEGY; import static com.google.gson.Gson.DEFAULT_OBJECT_TO_NUMBER_STRATEGY; -import static com.google.gson.Gson.DEFAULT_FORMATTING_STYLE; import static com.google.gson.Gson.DEFAULT_SERIALIZE_NULLS; import static com.google.gson.Gson.DEFAULT_SPECIALIZE_FLOAT_VALUES; import static com.google.gson.Gson.DEFAULT_USE_JDK_UNSAFE; @@ -41,11 +41,11 @@ import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.lang.reflect.Type; import java.text.DateFormat; +import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.HashMap; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Objects; @@ -104,7 +104,7 @@ public final class GsonBuilder { private boolean useJdkUnsafe = DEFAULT_USE_JDK_UNSAFE; private ToNumberStrategy objectToNumberStrategy = DEFAULT_OBJECT_TO_NUMBER_STRATEGY; private ToNumberStrategy numberToNumberStrategy = DEFAULT_NUMBER_TO_NUMBER_STRATEGY; - private final LinkedList reflectionFilters = new LinkedList<>(); + private final ArrayDeque reflectionFilters = new ArrayDeque<>(); /** * Creates a GsonBuilder instance that can be used to build Gson with various configuration diff --git a/gson/src/main/java/com/google/gson/internal/ConstructorConstructor.java b/gson/src/main/java/com/google/gson/internal/ConstructorConstructor.java index 115a2a09..a08d9df4 100644 --- a/gson/src/main/java/com/google/gson/internal/ConstructorConstructor.java +++ b/gson/src/main/java/com/google/gson/internal/ConstructorConstructor.java @@ -342,8 +342,8 @@ public final class ConstructorConstructor { return (T) new TreeMap<>(); } }; - } else if (type instanceof ParameterizedType && !(String.class.isAssignableFrom( - TypeToken.get(((ParameterizedType) type).getActualTypeArguments()[0]).getRawType()))) { + } else if (type instanceof ParameterizedType && !String.class.isAssignableFrom( + TypeToken.get(((ParameterizedType) type).getActualTypeArguments()[0]).getRawType())) { return new ObjectConstructor() { @Override public T construct() { return (T) new LinkedHashMap<>(); diff --git a/gson/src/main/java/com/google/gson/internal/LazilyParsedNumber.java b/gson/src/main/java/com/google/gson/internal/LazilyParsedNumber.java index abc4b2a4..6385bc96 100644 --- a/gson/src/main/java/com/google/gson/internal/LazilyParsedNumber.java +++ b/gson/src/main/java/com/google/gson/internal/LazilyParsedNumber.java @@ -98,7 +98,7 @@ public final class LazilyParsedNumber extends Number { } if (obj instanceof LazilyParsedNumber) { LazilyParsedNumber other = (LazilyParsedNumber) obj; - return value == other.value || value.equals(other.value); + return value.equals(other.value); } return false; } diff --git a/gson/src/main/java/com/google/gson/internal/LinkedTreeMap.java b/gson/src/main/java/com/google/gson/internal/LinkedTreeMap.java index 1fe512ad..a78191a4 100644 --- a/gson/src/main/java/com/google/gson/internal/LinkedTreeMap.java +++ b/gson/src/main/java/com/google/gson/internal/LinkedTreeMap.java @@ -304,6 +304,7 @@ public final class LinkedTreeMap extends AbstractMap implements Seri return node; } + @SuppressWarnings("ReferenceEquality") private void replaceInParent(Node node, Node replacement) { Node parent = node.parent; node.parent = null; @@ -315,7 +316,7 @@ public final class LinkedTreeMap extends AbstractMap implements Seri if (parent.left == node) { parent.left = replacement; } else { - assert (parent.right == node); + assert parent.right == node; parent.right = replacement; } } else { @@ -559,10 +560,13 @@ public final class LinkedTreeMap extends AbstractMap implements Seri LinkedTreeMapIterator() { } - @Override public final boolean hasNext() { + @Override + @SuppressWarnings("ReferenceEquality") + public final boolean hasNext() { return next != header; } + @SuppressWarnings("ReferenceEquality") final Node nextNode() { Node e = next; if (e == header) { diff --git a/gson/src/main/java/com/google/gson/internal/bind/ArrayTypeAdapter.java b/gson/src/main/java/com/google/gson/internal/bind/ArrayTypeAdapter.java index 23648e56..fca3dafc 100644 --- a/gson/src/main/java/com/google/gson/internal/bind/ArrayTypeAdapter.java +++ b/gson/src/main/java/com/google/gson/internal/bind/ArrayTypeAdapter.java @@ -37,7 +37,7 @@ public final class ArrayTypeAdapter extends TypeAdapter { public static final TypeAdapterFactory FACTORY = new TypeAdapterFactory() { @Override public TypeAdapter create(Gson gson, TypeToken typeToken) { Type type = typeToken.getType(); - if (!(type instanceof GenericArrayType || type instanceof Class && ((Class) type).isArray())) { + if (!(type instanceof GenericArrayType || (type instanceof Class && ((Class) type).isArray()))) { return null; } diff --git a/gson/src/main/java/com/google/gson/internal/bind/TreeTypeAdapter.java b/gson/src/main/java/com/google/gson/internal/bind/TreeTypeAdapter.java index 2efd6c6b..47ca8fc0 100644 --- a/gson/src/main/java/com/google/gson/internal/bind/TreeTypeAdapter.java +++ b/gson/src/main/java/com/google/gson/internal/bind/TreeTypeAdapter.java @@ -158,7 +158,7 @@ public final class TreeTypeAdapter extends SerializationDelegatingTypeAdapter @Override public TypeAdapter create(Gson gson, TypeToken type) { boolean matches = exactType != null - ? exactType.equals(type) || matchRawType && exactType.getType() == type.getRawType() + ? exactType.equals(type) || (matchRawType && exactType.getType() == type.getRawType()) : hierarchyType.isAssignableFrom(type.getRawType()); return matches ? new TreeTypeAdapter<>((JsonSerializer) serializer, diff --git a/gson/src/main/java/com/google/gson/internal/bind/TypeAdapters.java b/gson/src/main/java/com/google/gson/internal/bind/TypeAdapters.java index cb069ae7..b76a0f0e 100644 --- a/gson/src/main/java/com/google/gson/internal/bind/TypeAdapters.java +++ b/gson/src/main/java/com/google/gson/internal/bind/TypeAdapters.java @@ -123,7 +123,7 @@ public final class TypeAdapters { @Override public void write(JsonWriter out, BitSet src) throws IOException { out.beginArray(); for (int i = 0, length = src.length(); i < length; i++) { - int value = (src.get(i)) ? 1 : 0; + int value = src.get(i) ? 1 : 0; out.value(value); } out.endArray(); @@ -883,7 +883,7 @@ public final class TypeAdapters { }); for (Field constantField : constantFields) { @SuppressWarnings("unchecked") - T constant = (T)(constantField.get(null)); + T constant = (T) constantField.get(null); String name = constant.name(); String toStringVal = constant.toString(); diff --git a/gson/src/main/java/com/google/gson/stream/JsonWriter.java b/gson/src/main/java/com/google/gson/stream/JsonWriter.java index 5afa228e..460dcce2 100644 --- a/gson/src/main/java/com/google/gson/stream/JsonWriter.java +++ b/gson/src/main/java/com/google/gson/stream/JsonWriter.java @@ -637,7 +637,7 @@ public class JsonWriter implements Closeable, Flushable { out.close(); int size = stackSize; - if (size > 1 || size == 1 && stack[size - 1] != NONEMPTY_DOCUMENT) { + if (size > 1 || (size == 1 && stack[size - 1] != NONEMPTY_DOCUMENT)) { throw new IOException("Incomplete document"); } stackSize = 0; diff --git a/gson/src/test/java/com/google/gson/JsonArrayTest.java b/gson/src/test/java/com/google/gson/JsonArrayTest.java index bb531117..bd0f7a17 100644 --- a/gson/src/test/java/com/google/gson/JsonArrayTest.java +++ b/gson/src/test/java/com/google/gson/JsonArrayTest.java @@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; import static org.junit.Assert.fail; +import com.google.common.testing.EqualsTester; import com.google.gson.common.MoreAsserts; import java.math.BigInteger; import org.junit.Test; @@ -35,12 +36,11 @@ public final class JsonArrayTest { } @Test - @SuppressWarnings("TruthSelfEquals") public void testEqualsNonEmptyArray() { JsonArray a = new JsonArray(); JsonArray b = new JsonArray(); - assertThat(a).isEqualTo(a); + new EqualsTester().addEqualityGroup(a).testEquals(); a.add(new JsonObject()); assertThat(a.equals(b)).isFalse(); diff --git a/gson/src/test/java/com/google/gson/JsonObjectTest.java b/gson/src/test/java/com/google/gson/JsonObjectTest.java index 9b37823d..0b7c4033 100644 --- a/gson/src/test/java/com/google/gson/JsonObjectTest.java +++ b/gson/src/test/java/com/google/gson/JsonObjectTest.java @@ -19,6 +19,7 @@ package com.google.gson; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; +import com.google.common.testing.EqualsTester; import com.google.gson.common.MoreAsserts; import java.util.AbstractMap.SimpleEntry; import java.util.ArrayDeque; @@ -163,12 +164,11 @@ public class JsonObjectTest { } @Test - @SuppressWarnings("TruthSelfEquals") public void testEqualsNonEmptyObject() { JsonObject a = new JsonObject(); JsonObject b = new JsonObject(); - assertThat(a).isEqualTo(a); + new EqualsTester().addEqualityGroup(a).testEquals(); a.add("foo", new JsonObject()); assertThat(a.equals(b)).isFalse(); diff --git a/pom.xml b/pom.xml index babfbc24..6a254d55 100644 --- a/pom.xml +++ b/pom.xml @@ -98,7 +98,7 @@ -XDcompilePolicy=simple - -Xplugin:ErrorProne + -Xplugin:ErrorProne -XepExcludedPaths:.*gson/src/test.*|.*extras/src/test.*|.*proto.* -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED From e8b6fa9287eabfb983b75943059b068786d98066 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Feb 2023 05:41:42 -0800 Subject: [PATCH 08/11] Bump maven-surefire-plugin from 3.0.0-M8 to 3.0.0-M9 (#2313) Bumps [maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.0.0-M8 to 3.0.0-M9. - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.0.0-M8...surefire-3.0.0-M9) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-surefire-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gson/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gson/pom.xml b/gson/pom.xml index 1460f70d..deed98dd 100644 --- a/gson/pom.xml +++ b/gson/pom.xml @@ -125,7 +125,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.0.0-M8 + 3.0.0-M9