Change the Kotlin reflection adapter to yield to the codegen adapter

This commit is contained in:
Jesse Wilson
2018-05-14 18:21:36 -04:00
parent 3f1e4b5a3d
commit dd84b9f8f8
2 changed files with 23 additions and 0 deletions

View File

@@ -17,6 +17,7 @@ package com.squareup.moshi.kotlin.reflect
import com.squareup.moshi.FromJson
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import com.squareup.moshi.JsonDataException
import com.squareup.moshi.JsonQualifier
import com.squareup.moshi.Moshi
@@ -840,6 +841,25 @@ class KotlinJsonAdapterTest {
assertThat(adapter.toJson(value)).isEqualTo(json)
}
@Test fun mixingReflectionAndCodegen() {
val moshi = Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()
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")
}
@JsonClass(generateAdapter = true)
class UsesGeneratedAdapter(var a: Int, var b: Int)
@JsonClass(generateAdapter = false)
class UsesReflectionAdapter(var a: Int, var b: Int)
@Retention(RUNTIME)
@JsonQualifier
annotation class Uppercase