mirror of
https://github.com/fankes/moshi.git
synced 2025-10-20 00:19:21 +08:00
Make generated adapters null-safe.
This is in alignment with the lookup for Java and Kotlin reflective adapters.
This commit is contained in:
@@ -1075,6 +1075,13 @@ class GeneratedAdaptersTest {
|
||||
.isEqualTo(HasNullableBoolean(null))
|
||||
assertThat(adapter.toJson(HasNullableBoolean(null))).isEqualTo("""{"boolean":null}""")
|
||||
}
|
||||
|
||||
@Test fun adaptersAreNullSafe() {
|
||||
val moshi = Moshi.Builder().build()
|
||||
val adapter = moshi.adapter(HasNonNullConstructorParameter::class.java)
|
||||
assertThat(adapter.fromJson("null")).isNull()
|
||||
assertThat(adapter.toJson(null)).isEqualTo("null")
|
||||
}
|
||||
}
|
||||
|
||||
// Has to be outside to avoid Types seeing an owning class
|
||||
|
@@ -860,10 +860,11 @@ class KotlinJsonAdapterTest {
|
||||
val generatedAdapter = moshi.adapter(UsesGeneratedAdapter::class.java)
|
||||
val reflectionAdapter = moshi.adapter(UsesReflectionAdapter::class.java)
|
||||
|
||||
assertThat(generatedAdapter.javaClass.name)
|
||||
.contains("KotlinJsonAdapterTest_UsesGeneratedAdapterJsonAdapter")
|
||||
assertThat(reflectionAdapter.javaClass.name)
|
||||
.doesNotContain("KotlinJsonAdapterTest_UsesReflectionAdapterJsonAdapter")
|
||||
assertThat(generatedAdapter.toString())
|
||||
.isEqualTo("GeneratedJsonAdapter(KotlinJsonAdapterTest.UsesGeneratedAdapter).nullSafe()")
|
||||
assertThat(reflectionAdapter.toString())
|
||||
.isEqualTo("KotlinJsonAdapter(com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterTest" +
|
||||
".UsesReflectionAdapter).nullSafe()")
|
||||
}
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
@@ -913,4 +914,11 @@ class KotlinJsonAdapterTest {
|
||||
.isEqualTo(HasNullableBoolean(null))
|
||||
assertThat(adapter.toJson(HasNullableBoolean(null))).isEqualTo("""{"boolean":null}""")
|
||||
}
|
||||
|
||||
@Test fun adaptersAreNullSafe() {
|
||||
val moshi = Moshi.Builder().build()
|
||||
val adapter = moshi.adapter(HasNonNullConstructorParameter::class.java)
|
||||
assertThat(adapter.fromJson("null")).isNull()
|
||||
assertThat(adapter.toJson(null)).isEqualTo("null")
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user