aboutsummaryrefslogtreecommitdiff
path: root/gson/src/test/java/com/google/gson/internal/bind
diff options
context:
space:
mode:
Diffstat (limited to 'gson/src/test/java/com/google/gson/internal/bind')
-rw-r--r--gson/src/test/java/com/google/gson/internal/bind/DefaultDateTypeAdapterTest.java68
-rw-r--r--gson/src/test/java/com/google/gson/internal/bind/JsonElementReaderTest.java34
-rw-r--r--gson/src/test/java/com/google/gson/internal/bind/JsonTreeReaderTest.java17
-rw-r--r--gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java26
-rw-r--r--gson/src/test/java/com/google/gson/internal/bind/RecursiveTypesResolveTest.java14
-rw-r--r--gson/src/test/java/com/google/gson/internal/bind/util/ISO8601UtilsTest.java36
6 files changed, 141 insertions, 54 deletions
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 c20a3683..d006eb09 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,31 +16,38 @@
package com.google.gson.internal.bind;
-import java.io.IOException;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
+
import com.google.gson.Gson;
import com.google.gson.TypeAdapter;
import com.google.gson.TypeAdapterFactory;
import com.google.gson.internal.JavaVersion;
import com.google.gson.internal.bind.DefaultDateTypeAdapter.DateType;
import com.google.gson.reflect.TypeToken;
-import junit.framework.TestCase;
+import java.io.IOException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+import java.util.TimeZone;
+import org.junit.Test;
/**
* A simple unit test for the {@link DefaultDateTypeAdapter} class.
*
* @author Joel Leitch
*/
-public class DefaultDateTypeAdapterTest extends TestCase {
+public class DefaultDateTypeAdapterTest {
+ @Test
public void testFormattingInEnUs() {
assertFormattingAlwaysEmitsUsLocale(Locale.US);
}
+ @Test
public void testFormattingInFr() {
assertFormattingAlwaysEmitsUsLocale(Locale.FRANCE);
}
@@ -73,32 +80,37 @@ public class DefaultDateTypeAdapterTest extends TestCase {
}
}
+ @Test
public void testParsingDatesFormattedWithSystemLocale() throws Exception {
- // TODO(eamonnmcmanus): fix this test, which fails on JDK 8 and 17
- if (JavaVersion.getMajorJavaVersion() != 11) {
- return;
- }
TimeZone defaultTimeZone = TimeZone.getDefault();
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
Locale defaultLocale = Locale.getDefault();
Locale.setDefault(Locale.FRANCE);
try {
- String afterYearSep = JavaVersion.isJava9OrLater() ? " à " : " ";
- assertParsed(String.format("1 janv. 1970%s00:00:00", afterYearSep),
+ Date date = new Date(0);
+ assertParsed(
+ DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(date),
DateType.DATE.createDefaultsAdapterFactory());
- assertParsed("01/01/70", DateType.DATE.createAdapterFactory(DateFormat.SHORT));
- assertParsed("1 janv. 1970", DateType.DATE.createAdapterFactory(DateFormat.MEDIUM));
- assertParsed("1 janvier 1970", DateType.DATE.createAdapterFactory(DateFormat.LONG));
- assertParsed("01/01/70 00:00",
+ assertParsed(
+ DateFormat.getDateInstance(DateFormat.SHORT).format(date),
+ DateType.DATE.createAdapterFactory(DateFormat.SHORT));
+ assertParsed(
+ DateFormat.getDateInstance(DateFormat.MEDIUM).format(date),
+ DateType.DATE.createAdapterFactory(DateFormat.MEDIUM));
+ assertParsed(
+ DateFormat.getDateInstance(DateFormat.LONG).format(date),
+ DateType.DATE.createAdapterFactory(DateFormat.LONG));
+ assertParsed(
+ DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(date),
DateType.DATE.createAdapterFactory(DateFormat.SHORT, DateFormat.SHORT));
- assertParsed(String.format("1 janv. 1970%s00:00:00", afterYearSep),
+ assertParsed(
+ DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM).format(date),
DateType.DATE.createAdapterFactory(DateFormat.MEDIUM, DateFormat.MEDIUM));
- assertParsed(String.format("1 janvier 1970%s00:00:00 UTC", afterYearSep),
+ assertParsed(
+ DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(date),
DateType.DATE.createAdapterFactory(DateFormat.LONG, DateFormat.LONG));
- assertParsed(JavaVersion.isJava9OrLater() ? (JavaVersion.getMajorJavaVersion() <11 ?
- "jeudi 1 janvier 1970 à 00:00:00 Coordinated Universal Time" :
- "jeudi 1 janvier 1970 à 00:00:00 Temps universel coordonné") :
- "jeudi 1 janvier 1970 00 h 00 UTC",
+ assertParsed(
+ DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(date),
DateType.DATE.createAdapterFactory(DateFormat.FULL, DateFormat.FULL));
} finally {
TimeZone.setDefault(defaultTimeZone);
@@ -106,6 +118,7 @@ public class DefaultDateTypeAdapterTest extends TestCase {
}
}
+ @Test
public void testParsingDatesFormattedWithUsLocale() throws Exception {
TimeZone defaultTimeZone = TimeZone.getDefault();
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
@@ -130,6 +143,7 @@ public class DefaultDateTypeAdapterTest extends TestCase {
}
}
+ @Test
public void testFormatUsesDefaultTimezone() throws Exception {
TimeZone defaultTimeZone = TimeZone.getDefault();
TimeZone.setDefault(TimeZone.getTimeZone("America/Los_Angeles"));
@@ -146,6 +160,7 @@ public class DefaultDateTypeAdapterTest extends TestCase {
}
}
+ @Test
public void testDateDeserializationISO8601() throws Exception {
TypeAdapterFactory adapterFactory = DateType.DATE.createDefaultsAdapterFactory();
assertParsed("1970-01-01T00:00:00.000Z", adapterFactory);
@@ -155,6 +170,7 @@ public class DefaultDateTypeAdapterTest extends TestCase {
assertParsed("1970-01-01T01:00:00+01", adapterFactory);
}
+ @Test
public void testDateSerialization() throws Exception {
int dateStyle = DateFormat.LONG;
TypeAdapter<Date> dateTypeAdapter = dateAdapter(DateType.DATE.createAdapterFactory(dateStyle));
@@ -165,6 +181,7 @@ public class DefaultDateTypeAdapterTest extends TestCase {
assertEquals(toLiteral(formatter.format(currentDate)), dateString);
}
+ @Test
public void testDatePattern() throws Exception {
String pattern = "yyyy-MM-dd";
TypeAdapter<Date> dateTypeAdapter = dateAdapter(DateType.DATE.createAdapterFactory(pattern));
@@ -175,6 +192,7 @@ public class DefaultDateTypeAdapterTest extends TestCase {
assertEquals(toLiteral(formatter.format(currentDate)), dateString);
}
+ @Test
public void testInvalidDatePattern() throws Exception {
try {
DateType.DATE.createAdapterFactory("I am a bad Date pattern....");
@@ -182,12 +200,14 @@ public class DefaultDateTypeAdapterTest extends TestCase {
} catch (IllegalArgumentException expected) { }
}
+ @Test
public void testNullValue() throws Exception {
TypeAdapter<Date> adapter = dateAdapter(DateType.DATE.createDefaultsAdapterFactory());
assertNull(adapter.fromJson("null"));
assertEquals("null", adapter.toJson(null));
}
+ @Test
public void testUnexpectedToken() throws Exception {
try {
TypeAdapter<Date> adapter = dateAdapter(DateType.DATE.createDefaultsAdapterFactory());
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 b8e5f623..efdf7b63 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,38 +16,45 @@
package com.google.gson.internal.bind;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.MalformedJsonException;
import java.io.IOException;
-import junit.framework.TestCase;
+import org.junit.Test;
@SuppressWarnings("resource")
-public final class JsonElementReaderTest extends TestCase {
+public final class JsonElementReaderTest {
+ @Test
public void testNumbers() throws IOException {
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());
+ assertEquals(3.0, reader.nextDouble(), 0);
reader.endArray();
}
+ @Test
public void testLenientNansAndInfinities() throws IOException {
JsonElement element = JsonParser.parseString("[NaN, -Infinity, Infinity]");
JsonTreeReader reader = new JsonTreeReader(element);
reader.setLenient(true);
reader.beginArray();
assertTrue(Double.isNaN(reader.nextDouble()));
- assertEquals(Double.NEGATIVE_INFINITY, reader.nextDouble());
- assertEquals(Double.POSITIVE_INFINITY, reader.nextDouble());
+ assertEquals(Double.NEGATIVE_INFINITY, reader.nextDouble(), 0);
+ assertEquals(Double.POSITIVE_INFINITY, reader.nextDouble(), 0);
reader.endArray();
}
+ @Test
public void testStrictNansAndInfinities() throws IOException {
JsonElement element = JsonParser.parseString("[NaN, -Infinity, Infinity]");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -77,16 +84,18 @@ public final class JsonElementReaderTest extends TestCase {
reader.endArray();
}
+ @Test
public void testNumbersFromStrings() throws IOException {
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());
+ assertEquals(3.0, reader.nextDouble(), 0);
reader.endArray();
}
+ @Test
public void testStringsFromNumbers() throws IOException {
JsonElement element = JsonParser.parseString("[1]");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -95,6 +104,7 @@ public final class JsonElementReaderTest extends TestCase {
reader.endArray();
}
+ @Test
public void testBooleans() throws IOException {
JsonElement element = JsonParser.parseString("[true, false]");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -104,6 +114,7 @@ public final class JsonElementReaderTest extends TestCase {
reader.endArray();
}
+ @Test
public void testNulls() throws IOException {
JsonElement element = JsonParser.parseString("[null,null]");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -113,6 +124,7 @@ public final class JsonElementReaderTest extends TestCase {
reader.endArray();
}
+ @Test
public void testStrings() throws IOException {
JsonElement element = JsonParser.parseString("[\"A\",\"B\"]");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -122,6 +134,7 @@ public final class JsonElementReaderTest extends TestCase {
reader.endArray();
}
+ @Test
public void testArray() throws IOException {
JsonElement element = JsonParser.parseString("[1, 2, 3]");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -138,6 +151,7 @@ public final class JsonElementReaderTest extends TestCase {
assertEquals(JsonToken.END_DOCUMENT, reader.peek());
}
+ @Test
public void testObject() throws IOException {
JsonElement element = JsonParser.parseString("{\"A\": 1, \"B\": 2}");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -156,6 +170,7 @@ public final class JsonElementReaderTest extends TestCase {
assertEquals(JsonToken.END_DOCUMENT, reader.peek());
}
+ @Test
public void testEmptyArray() throws IOException {
JsonElement element = JsonParser.parseString("[]");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -163,6 +178,7 @@ public final class JsonElementReaderTest extends TestCase {
reader.endArray();
}
+ @Test
public void testNestedArrays() throws IOException {
JsonElement element = JsonParser.parseString("[[],[[]]]");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -176,6 +192,7 @@ public final class JsonElementReaderTest extends TestCase {
reader.endArray();
}
+ @Test
public void testNestedObjects() throws IOException {
JsonElement element = JsonParser.parseString("{\"A\":{},\"B\":{\"C\":{}}}");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -192,6 +209,7 @@ public final class JsonElementReaderTest extends TestCase {
reader.endObject();
}
+ @Test
public void testEmptyObject() throws IOException {
JsonElement element = JsonParser.parseString("{}");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -199,6 +217,7 @@ public final class JsonElementReaderTest extends TestCase {
reader.endObject();
}
+ @Test
public void testSkipValue() throws IOException {
JsonElement element = JsonParser.parseString("[\"A\",{\"B\":[[]]},\"C\",[[]],\"D\",null]");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -212,6 +231,7 @@ public final class JsonElementReaderTest extends TestCase {
reader.endArray();
}
+ @Test
public void testWrongType() throws IOException {
JsonElement element = JsonParser.parseString("[[],\"A\"]");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -303,6 +323,7 @@ public final class JsonElementReaderTest extends TestCase {
reader.endArray();
}
+ @Test
public void testNextJsonElement() throws IOException {
final JsonElement element = JsonParser.parseString("{\"A\": 1, \"B\" : {}, \"C\" : []}");
JsonTreeReader reader = new JsonTreeReader(element);
@@ -338,6 +359,7 @@ public final class JsonElementReaderTest extends TestCase {
}
}
+ @Test
public void testEarlyClose() throws IOException {
JsonElement element = JsonParser.parseString("[1, 2, 3]");
JsonTreeReader reader = new JsonTreeReader(element);
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 767d63bd..0d17e7c5 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,6 +15,10 @@
*/
package com.google.gson.internal.bind;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.fail;
+
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
@@ -27,10 +31,11 @@ import java.io.IOException;
import java.io.Reader;
import java.util.Arrays;
import java.util.List;
-import junit.framework.TestCase;
+import org.junit.Test;
@SuppressWarnings("resource")
-public class JsonTreeReaderTest extends TestCase {
+public class JsonTreeReaderTest {
+ @Test
public void testSkipValue_emptyJsonObject() throws IOException {
JsonTreeReader in = new JsonTreeReader(new JsonObject());
in.skipValue();
@@ -38,6 +43,7 @@ public class JsonTreeReaderTest extends TestCase {
assertEquals("$", in.getPath());
}
+ @Test
public void testSkipValue_filledJsonObject() throws IOException {
JsonObject jsonObject = new JsonObject();
JsonArray jsonArray = new JsonArray();
@@ -57,6 +63,7 @@ public class JsonTreeReaderTest extends TestCase {
assertEquals("$", in.getPath());
}
+ @Test
public void testSkipValue_name() throws IOException {
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("a", "value");
@@ -68,6 +75,7 @@ public class JsonTreeReaderTest extends TestCase {
assertEquals("value", in.nextString());
}
+ @Test
public void testSkipValue_afterEndOfDocument() throws IOException {
JsonTreeReader reader = new JsonTreeReader(new JsonObject());
reader.beginObject();
@@ -80,6 +88,7 @@ public class JsonTreeReaderTest extends TestCase {
assertEquals("$", reader.getPath());
}
+ @Test
public void testSkipValue_atArrayEnd() throws IOException {
JsonTreeReader reader = new JsonTreeReader(new JsonArray());
reader.beginArray();
@@ -88,6 +97,7 @@ public class JsonTreeReaderTest extends TestCase {
assertEquals("$", reader.getPath());
}
+ @Test
public void testSkipValue_atObjectEnd() throws IOException {
JsonTreeReader reader = new JsonTreeReader(new JsonObject());
reader.beginObject();
@@ -96,6 +106,7 @@ public class JsonTreeReaderTest extends TestCase {
assertEquals("$", reader.getPath());
}
+ @Test
public void testHasNext_endOfDocument() throws IOException {
JsonTreeReader reader = new JsonTreeReader(new JsonObject());
reader.beginObject();
@@ -103,6 +114,7 @@ public class JsonTreeReaderTest extends TestCase {
assertFalse(reader.hasNext());
}
+ @Test
public void testCustomJsonElementSubclass() throws IOException {
@SuppressWarnings("deprecation") // superclass constructor
class CustomSubclass extends JsonElement {
@@ -132,6 +144,7 @@ public class JsonTreeReaderTest extends TestCase {
* read from a {@link JsonElement} instead of a {@link Reader}. Therefore all relevant methods of
* {@code JsonReader} must be overridden.
*/
+ @Test
public void testOverrides() {
List<String> ignoredMethods = Arrays.asList("setLenient(boolean)", "isLenient()");
MoreAsserts.assertOverridesMethods(JsonReader.class, JsonTreeReader.class, ignoredMethods);
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 ce91664e..4e2ed240 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,6 +16,9 @@
package com.google.gson.internal.bind;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
import com.google.gson.common.MoreAsserts;
@@ -24,10 +27,11 @@ import java.io.IOException;
import java.io.Writer;
import java.util.Arrays;
import java.util.List;
-import junit.framework.TestCase;
+import org.junit.Test;
@SuppressWarnings("resource")
-public final class JsonTreeWriterTest extends TestCase {
+public final class JsonTreeWriterTest {
+ @Test
public void testArray() throws IOException {
JsonTreeWriter writer = new JsonTreeWriter();
writer.beginArray();
@@ -38,6 +42,7 @@ public final class JsonTreeWriterTest extends TestCase {
assertEquals("[1,2,3]", writer.get().toString());
}
+ @Test
public void testNestedArray() throws IOException {
JsonTreeWriter writer = new JsonTreeWriter();
writer.beginArray();
@@ -51,6 +56,7 @@ public final class JsonTreeWriterTest extends TestCase {
assertEquals("[[],[[]]]", writer.get().toString());
}
+ @Test
public void testObject() throws IOException {
JsonTreeWriter writer = new JsonTreeWriter();
writer.beginObject();
@@ -60,6 +66,7 @@ public final class JsonTreeWriterTest extends TestCase {
assertEquals("{\"A\":1,\"B\":2}", writer.get().toString());
}
+ @Test
public void testNestedObject() throws IOException {
JsonTreeWriter writer = new JsonTreeWriter();
writer.beginObject();
@@ -76,6 +83,7 @@ public final class JsonTreeWriterTest extends TestCase {
assertEquals("{\"A\":{\"B\":{}},\"C\":{}}", writer.get().toString());
}
+ @Test
public void testWriteAfterClose() throws Exception {
JsonTreeWriter writer = new JsonTreeWriter();
writer.setLenient(true);
@@ -90,6 +98,7 @@ public final class JsonTreeWriterTest extends TestCase {
}
}
+ @Test
public void testPrematureClose() throws Exception {
JsonTreeWriter writer = new JsonTreeWriter();
writer.setLenient(true);
@@ -101,6 +110,7 @@ public final class JsonTreeWriterTest extends TestCase {
}
}
+ @Test
public void testSerializeNullsFalse() throws IOException {
JsonTreeWriter writer = new JsonTreeWriter();
writer.setSerializeNulls(false);
@@ -111,6 +121,7 @@ public final class JsonTreeWriterTest extends TestCase {
assertEquals("{}", writer.get().toString());
}
+ @Test
public void testSerializeNullsTrue() throws IOException {
JsonTreeWriter writer = new JsonTreeWriter();
writer.setSerializeNulls(true);
@@ -121,39 +132,46 @@ public final class JsonTreeWriterTest extends TestCase {
assertEquals("{\"A\":null}", writer.get().toString());
}
+ @Test
public void testEmptyWriter() {
JsonTreeWriter writer = new JsonTreeWriter();
assertEquals(JsonNull.INSTANCE, writer.get());
}
+ @Test
public void testBeginArray() throws Exception {
JsonTreeWriter writer = new JsonTreeWriter();
assertEquals(writer, writer.beginArray());
}
+ @Test
public void testBeginObject() throws Exception {
JsonTreeWriter writer = new JsonTreeWriter();
assertEquals(writer, writer.beginObject());
}
+ @Test
public void testValueString() throws Exception {
JsonTreeWriter writer = new JsonTreeWriter();
String n = "as";
assertEquals(writer, writer.value(n));
}
+ @Test
public void testBoolValue() throws Exception {
JsonTreeWriter writer = new JsonTreeWriter();
boolean bool = true;
assertEquals(writer, writer.value(bool));
}
+ @Test
public void testBoolMaisValue() throws Exception {
JsonTreeWriter writer = new JsonTreeWriter();
Boolean bool = true;
assertEquals(writer, writer.value(bool));
}
+ @Test
public void testLenientNansAndInfinities() throws IOException {
JsonTreeWriter writer = new JsonTreeWriter();
writer.setLenient(true);
@@ -168,6 +186,7 @@ public final class JsonTreeWriterTest extends TestCase {
assertEquals("[NaN,-Infinity,Infinity,NaN,-Infinity,Infinity]", writer.get().toString());
}
+ @Test
public void testStrictNansAndInfinities() throws IOException {
JsonTreeWriter writer = new JsonTreeWriter();
writer.setLenient(false);
@@ -204,6 +223,7 @@ public final class JsonTreeWriterTest extends TestCase {
}
}
+ @Test
public void testStrictBoxedNansAndInfinities() throws IOException {
JsonTreeWriter writer = new JsonTreeWriter();
writer.setLenient(false);
@@ -240,6 +260,7 @@ public final class JsonTreeWriterTest extends TestCase {
}
}
+ @Test
public void testJsonValue() throws IOException {
JsonTreeWriter writer = new JsonTreeWriter();
writer.beginArray();
@@ -255,6 +276,7 @@ public final class JsonTreeWriterTest extends TestCase {
* create a {@link JsonElement} tree instead of writing to a {@link Writer}. Therefore all relevant
* methods of {@code JsonWriter} must be overridden.
*/
+ @Test
public void testOverrides() {
List<String> ignoredMethods = Arrays.asList("setLenient(boolean)", "isLenient()", "setIndent(java.lang.String)",
"setHtmlSafe(boolean)", "isHtmlSafe()", "setSerializeNulls(boolean)", "getSerializeNulls()");
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 ca068df3..9959360d 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,10 +16,13 @@
package com.google.gson.internal.bind;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
import com.google.gson.Gson;
import com.google.gson.TypeAdapter;
import com.google.gson.internal.$Gson$Types;
-import junit.framework.TestCase;
+import org.junit.Test;
/**
* Test fixes for infinite recursion on {@link $Gson$Types#resolve(java.lang.reflect.Type, Class,
@@ -29,7 +32,7 @@ import junit.framework.TestCase;
* These tests originally caused {@link StackOverflowError} because of infinite recursion on attempts to
* resolve generics on types, with an intermediate types like 'Foo2&lt;? extends ? super ? extends ... ? extends A&gt;'
*/
-public class RecursiveTypesResolveTest extends TestCase {
+public class RecursiveTypesResolveTest {
@SuppressWarnings("unused")
private static class Foo1<A> {
@@ -44,6 +47,7 @@ public class RecursiveTypesResolveTest extends TestCase {
* Test simplest case of recursion.
*/
+ @Test
public void testRecursiveResolveSimple() {
@SuppressWarnings("rawtypes")
TypeAdapter<Foo1> adapter = new Gson().getAdapter(Foo1.class);
@@ -54,21 +58,25 @@ public class RecursiveTypesResolveTest extends TestCase {
* Tests belows check the behaviour of the methods changed for the fix.
*/
+ @Test
public void testDoubleSupertype() {
assertEquals($Gson$Types.supertypeOf(Number.class),
$Gson$Types.supertypeOf($Gson$Types.supertypeOf(Number.class)));
}
+ @Test
public void testDoubleSubtype() {
assertEquals($Gson$Types.subtypeOf(Number.class),
$Gson$Types.subtypeOf($Gson$Types.subtypeOf(Number.class)));
}
+ @Test
public void testSuperSubtype() {
assertEquals($Gson$Types.subtypeOf(Object.class),
$Gson$Types.supertypeOf($Gson$Types.subtypeOf(Number.class)));
}
+ @Test
public void testSubSupertype() {
assertEquals($Gson$Types.subtypeOf(Object.class),
$Gson$Types.subtypeOf($Gson$Types.supertypeOf(Number.class)));
@@ -88,12 +96,14 @@ public class RecursiveTypesResolveTest extends TestCase {
TestType2<? super Y, ? super X> superReversedType;
}
+ @Test
public void testRecursiveTypeVariablesResolve1() throws Exception {
@SuppressWarnings("rawtypes")
TypeAdapter<TestType> adapter = new Gson().getAdapter(TestType.class);
assertNotNull(adapter);
}
+ @Test
public void testRecursiveTypeVariablesResolve12() throws Exception {
@SuppressWarnings("rawtypes")
TypeAdapter<TestType2> adapter = new Gson().getAdapter(TestType2.class);
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 68db238a..4c162946 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
@@ -28,8 +28,8 @@ public class ISO8601UtilsTest {
return calendar;
}
- @Test
- public void testDateFormatString() {
+ @Test
+ public void testDateFormatString() {
GregorianCalendar calendar = new GregorianCalendar(utcTimeZone(), Locale.US);
// Calendar was created with current time, must clear it
calendar.clear();
@@ -40,8 +40,8 @@ public class ISO8601UtilsTest {
assertEquals(expectedDate, dateStr.substring(0, expectedDate.length()));
}
- @Test
- public void testDateFormatWithMilliseconds() {
+ @Test
+ public void testDateFormatWithMilliseconds() {
long time = 1530209176870L;
Date date = new Date(time);
String dateStr = ISO8601Utils.format(date, true);
@@ -49,8 +49,8 @@ public class ISO8601UtilsTest {
assertEquals(expectedDate, dateStr);
}
- @Test
- public void testDateFormatWithTimezone() {
+ @Test
+ public void testDateFormatWithTimezone() {
long time = 1530209176870L;
Date date = new Date(time);
String dateStr = ISO8601Utils.format(date, true, TimeZone.getTimeZone("Brazil/East"));
@@ -58,16 +58,16 @@ public class ISO8601UtilsTest {
assertEquals(expectedDate, dateStr);
}
- @Test
- public void testDateParseWithDefaultTimezone() throws ParseException {
+ @Test
+ public void testDateParseWithDefaultTimezone() throws ParseException {
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);
}
- @Test
- public void testDateParseInvalidDay() {
+ @Test
+ public void testDateParseInvalidDay() {
String dateStr = "2022-12-33";
try {
ISO8601Utils.parse(dateStr, new ParsePosition(0));
@@ -76,8 +76,8 @@ public class ISO8601UtilsTest {
}
}
- @Test
- public void testDateParseInvalidMonth() {
+ @Test
+ public void testDateParseInvalidMonth() {
String dateStr = "2022-14-30";
try {
ISO8601Utils.parse(dateStr, new ParsePosition(0));
@@ -86,8 +86,8 @@ public class ISO8601UtilsTest {
}
}
- @Test
- public void testDateParseWithTimezone() throws ParseException {
+ @Test
+ public void testDateParseWithTimezone() throws ParseException {
String dateStr = "2018-06-25T00:00:00-03:00";
Date date = ISO8601Utils.parse(dateStr, new ParsePosition(0));
GregorianCalendar calendar = createUtcCalendar();
@@ -96,8 +96,8 @@ public class ISO8601UtilsTest {
assertEquals(expectedDate, date);
}
- @Test
- public void testDateParseSpecialTimezone() throws ParseException {
+ @Test
+ public void testDateParseSpecialTimezone() throws ParseException {
String dateStr = "2018-06-25T00:02:00-02:58";
Date date = ISO8601Utils.parse(dateStr, new ParsePosition(0));
GregorianCalendar calendar = createUtcCalendar();
@@ -106,8 +106,8 @@ public class ISO8601UtilsTest {
assertEquals(expectedDate, date);
}
- @Test
- public void testDateParseInvalidTime() throws ParseException {
+ @Test
+ public void testDateParseInvalidTime() throws ParseException {
final String dateStr = "2018-06-25T61:60:62-03:00";
assertThrows(ParseException.class, new ThrowingRunnable() {
@Override