Fix error message for assigning to non-null properties.

instead of falling down to "Required property 'a' missing at $"
This commit is contained in:
Eric Cochran
2018-04-24 13:04:10 -07:00
parent 1c68437f3c
commit 51d23b5b33
3 changed files with 74 additions and 4 deletions

View File

@@ -383,6 +383,20 @@ class GeneratedAdaptersTest {
}
}
@Test fun nonNullConstructorParameterCalledWithNullFromAdapterFailsWithJsonDataException() {
val moshi = Moshi.Builder().add(object {
@FromJson fun fromJson(string: String): String? = null
}).build()
val jsonAdapter = moshi.adapter(HasNonNullConstructorParameter::class.java)
try {
jsonAdapter.fromJson("{\"a\":\"hello\"}")
fail()
} catch (expected: JsonDataException) {
assertThat(expected).hasMessage("Non-null value 'a' was null at \$.a")
}
}
@JsonClass(generateAdapter = true)
class HasNonNullConstructorParameter(val a: String)
@@ -539,6 +553,20 @@ class GeneratedAdaptersTest {
}
}
@Test fun nonNullPropertySetToNullFromAdapterFailsWithJsonDataException() {
val moshi = Moshi.Builder().add(object {
@FromJson fun fromJson(string: String): String? = null
}).build()
val jsonAdapter = moshi.adapter(HasNonNullProperty::class.java)
try {
jsonAdapter.fromJson("{\"a\":\"hello\"}")
fail()
} catch (expected: JsonDataException) {
assertThat(expected).hasMessage("Non-null value 'a' was null at \$.a")
}
}
@JsonClass(generateAdapter = true)
class HasNonNullProperty {
var a: String = ""