Use javaObjectType instead of Java primitives while creating parametrized type (#731)

* Add test for collection of primitives

* Use javaObjectType instead of Java primitives while creating parametrized type
This commit is contained in:
Artem Daugel-Dauge
2018-11-04 20:42:51 +03:00
committed by Zac Sweers
parent 1acc70dd70
commit 0e3a52b729
2 changed files with 29 additions and 25 deletions

View File

@@ -1112,6 +1112,20 @@ class GeneratedAdaptersTest {
val decoded = adapter.fromJson("""{"a":null}""")!!
assertThat(decoded.a).isEqualTo(null)
}
@JsonClass(generateAdapter = true)
data class HasCollectionOfPrimitives(val listOfInts: List<Int>)
@Test fun hasCollectionOfPrimitives() {
val moshi = Moshi.Builder().build()
val adapter = moshi.adapter(HasCollectionOfPrimitives::class.java)
val encoded = HasCollectionOfPrimitives(listOf(1, 2, -3))
assertThat(adapter.toJson(encoded)).isEqualTo("""{"listOfInts":[1,2,-3]}""")
val decoded = adapter.fromJson("""{"listOfInts":[4,-5,6]}""")!!
assertThat(decoded).isEqualTo(HasCollectionOfPrimitives(listOf(4, -5, 6)))
}
}
// Has to be outside to avoid Types seeing an owning class