Improve message and match in tests

This commit is contained in:
Zac Sweers
2019-07-08 12:40:55 -04:00
parent aea8675252
commit 25fcbb2637
2 changed files with 11 additions and 7 deletions

View File

@@ -56,8 +56,12 @@ final class ClassJsonAdapter<T> extends JsonAdapter<T> {
if (rawType.isInterface() || rawType.isEnum()) return null; if (rawType.isInterface() || rawType.isEnum()) return null;
if (!annotations.isEmpty()) return null; if (!annotations.isEmpty()) return null;
if (Util.isPlatformType(rawType)) { if (Util.isPlatformType(rawType)) {
String messagePrefix = "Platform " + rawType;
if (type instanceof ParameterizedType) {
messagePrefix += " in " + type;
}
throw new IllegalArgumentException( throw new IllegalArgumentException(
"Platform " + rawType + " requires explicit JsonAdapter to be registered"); messagePrefix + " requires explicit JsonAdapter to be registered");
} }
if (rawType.isAnonymousClass()) { if (rawType.isAnonymousClass()) {

View File

@@ -973,14 +973,14 @@ public final class MoshiTest {
fail(); fail();
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
assertThat(e).hasMessage( assertThat(e).hasMessage(
"Platform java.util.ArrayList<java.lang.String> requires explicit " "Platform class java.util.ArrayList in java.util.ArrayList<java.lang.String> requires explicit "
+ "JsonAdapter to be registered" + "JsonAdapter to be registered"
+ "\nfor java.util.ArrayList<java.lang.String> strings" + "\nfor java.util.ArrayList<java.lang.String> strings"
+ "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType" + "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType"
+ "\nfor java.util.Map<java.lang.String, " + "\nfor java.util.Map<java.lang.String, "
+ "com.squareup.moshi.MoshiTest$HasPlatformType>"); + "com.squareup.moshi.MoshiTest$HasPlatformType>");
assertThat(e).hasCauseExactlyInstanceOf(IllegalArgumentException.class); assertThat(e).hasCauseExactlyInstanceOf(IllegalArgumentException.class);
assertThat(e.getCause()).hasMessage("Platform java.util.ArrayList<java.lang.String> " assertThat(e.getCause()).hasMessage("Platform class java.util.ArrayList in java.util.ArrayList<java.lang.String> "
+ "requires explicit JsonAdapter to be registered"); + "requires explicit JsonAdapter to be registered");
} }
} }
@@ -992,13 +992,13 @@ public final class MoshiTest {
fail(); fail();
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
assertThat(e).hasMessage( assertThat(e).hasMessage(
"Platform java.util.ArrayList<java.lang.String> requires explicit " "Platform class java.util.ArrayList in java.util.ArrayList<java.lang.String> requires explicit "
+ "JsonAdapter to be registered" + "JsonAdapter to be registered"
+ "\nfor java.util.ArrayList<java.lang.String> strings" + "\nfor java.util.ArrayList<java.lang.String> strings"
+ "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType hasPlatformType" + "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType hasPlatformType"
+ "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType$Wrapper"); + "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType$Wrapper");
assertThat(e).hasCauseExactlyInstanceOf(IllegalArgumentException.class); assertThat(e).hasCauseExactlyInstanceOf(IllegalArgumentException.class);
assertThat(e.getCause()).hasMessage("Platform java.util.ArrayList<java.lang.String> " assertThat(e.getCause()).hasMessage("Platform class java.util.ArrayList in java.util.ArrayList<java.lang.String> "
+ "requires explicit JsonAdapter to be registered"); + "requires explicit JsonAdapter to be registered");
} }
} }
@@ -1010,14 +1010,14 @@ public final class MoshiTest {
fail(); fail();
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
assertThat(e).hasMessage( assertThat(e).hasMessage(
"Platform java.util.ArrayList<java.lang.String> requires explicit " "Platform class java.util.ArrayList in java.util.ArrayList<java.lang.String> requires explicit "
+ "JsonAdapter to be registered" + "JsonAdapter to be registered"
+ "\nfor java.util.ArrayList<java.lang.String> strings" + "\nfor java.util.ArrayList<java.lang.String> strings"
+ "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType" + "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType"
+ "\nfor java.util.List<com.squareup.moshi.MoshiTest$HasPlatformType> platformTypes" + "\nfor java.util.List<com.squareup.moshi.MoshiTest$HasPlatformType> platformTypes"
+ "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType$ListWrapper"); + "\nfor class com.squareup.moshi.MoshiTest$HasPlatformType$ListWrapper");
assertThat(e).hasCauseExactlyInstanceOf(IllegalArgumentException.class); assertThat(e).hasCauseExactlyInstanceOf(IllegalArgumentException.class);
assertThat(e.getCause()).hasMessage("Platform java.util.ArrayList<java.lang.String> " assertThat(e.getCause()).hasMessage("Platform class java.util.ArrayList in java.util.ArrayList<java.lang.String> "
+ "requires explicit JsonAdapter to be registered"); + "requires explicit JsonAdapter to be registered");
} }
} }