From 25fcbb263738b532d3c90e52ee33c7785b1d47ec Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Mon, 8 Jul 2019 12:40:55 -0400 Subject: [PATCH] Improve message and match in tests --- .../java/com/squareup/moshi/ClassJsonAdapter.java | 6 +++++- .../src/test/java/com/squareup/moshi/MoshiTest.java | 12 ++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/moshi/src/main/java/com/squareup/moshi/ClassJsonAdapter.java b/moshi/src/main/java/com/squareup/moshi/ClassJsonAdapter.java index b65b47a..3f91c9a 100644 --- a/moshi/src/main/java/com/squareup/moshi/ClassJsonAdapter.java +++ b/moshi/src/main/java/com/squareup/moshi/ClassJsonAdapter.java @@ -56,8 +56,12 @@ final class ClassJsonAdapter extends JsonAdapter { if (rawType.isInterface() || rawType.isEnum()) return null; if (!annotations.isEmpty()) return null; if (Util.isPlatformType(rawType)) { + String messagePrefix = "Platform " + rawType; + if (type instanceof ParameterizedType) { + messagePrefix += " in " + type; + } throw new IllegalArgumentException( - "Platform " + rawType + " requires explicit JsonAdapter to be registered"); + messagePrefix + " requires explicit JsonAdapter to be registered"); } if (rawType.isAnonymousClass()) { diff --git a/moshi/src/test/java/com/squareup/moshi/MoshiTest.java b/moshi/src/test/java/com/squareup/moshi/MoshiTest.java index e1e818a..11337d9 100644 --- a/moshi/src/test/java/com/squareup/moshi/MoshiTest.java +++ b/moshi/src/test/java/com/squareup/moshi/MoshiTest.java @@ -973,14 +973,14 @@ public final class MoshiTest { fail(); } catch (IllegalArgumentException e) { assertThat(e).hasMessage( - "Platform java.util.ArrayList requires explicit " + "Platform class java.util.ArrayList in java.util.ArrayList requires explicit " + "JsonAdapter to be registered" + "\nfor java.util.ArrayList strings" + "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType" + "\nfor java.util.Map"); assertThat(e).hasCauseExactlyInstanceOf(IllegalArgumentException.class); - assertThat(e.getCause()).hasMessage("Platform java.util.ArrayList " + assertThat(e.getCause()).hasMessage("Platform class java.util.ArrayList in java.util.ArrayList " + "requires explicit JsonAdapter to be registered"); } } @@ -992,13 +992,13 @@ public final class MoshiTest { fail(); } catch (IllegalArgumentException e) { assertThat(e).hasMessage( - "Platform java.util.ArrayList requires explicit " + "Platform class java.util.ArrayList in java.util.ArrayList requires explicit " + "JsonAdapter to be registered" + "\nfor java.util.ArrayList strings" + "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType hasPlatformType" + "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType$Wrapper"); assertThat(e).hasCauseExactlyInstanceOf(IllegalArgumentException.class); - assertThat(e.getCause()).hasMessage("Platform java.util.ArrayList " + assertThat(e.getCause()).hasMessage("Platform class java.util.ArrayList in java.util.ArrayList " + "requires explicit JsonAdapter to be registered"); } } @@ -1010,14 +1010,14 @@ public final class MoshiTest { fail(); } catch (IllegalArgumentException e) { assertThat(e).hasMessage( - "Platform java.util.ArrayList requires explicit " + "Platform class java.util.ArrayList in java.util.ArrayList requires explicit " + "JsonAdapter to be registered" + "\nfor java.util.ArrayList strings" + "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType" + "\nfor java.util.List platformTypes" + "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType$ListWrapper"); assertThat(e).hasCauseExactlyInstanceOf(IllegalArgumentException.class); - assertThat(e.getCause()).hasMessage("Platform java.util.ArrayList " + assertThat(e.getCause()).hasMessage("Platform class java.util.ArrayList in java.util.ArrayList " + "requires explicit JsonAdapter to be registered"); } }