diff options
Diffstat (limited to 'gson/src/test/java/com/google/gson/internal/bind')
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<? extends ? super ? extends ... ? extends A>' */ -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 |