From 666d87be65e67138caab88a92658990836c01b36 Mon Sep 17 00:00:00 2001 From: Burkhard Mittelbach Date: Sat, 5 Oct 2019 22:51:48 +0200 Subject: [PATCH] added test for internal property without backing field (#921) (#947) --- .../kotlin/codegen/GeneratedAdaptersTest.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/codegen/GeneratedAdaptersTest.kt b/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/codegen/GeneratedAdaptersTest.kt index 4bfd54d..8260dd4 100644 --- a/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/codegen/GeneratedAdaptersTest.kt +++ b/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/codegen/GeneratedAdaptersTest.kt @@ -1114,6 +1114,27 @@ class GeneratedAdaptersTest { assertThat(e).hasMessageContaining("Failed to find the generated JsonAdapter class") } } + + // https://github.com/square/moshi/issues/921 + @Test fun internalPropertyWithoutBackingField() { + val adapter = moshi.adapter() + + val test = InternalPropertyWithoutBackingField() + assertThat(adapter.toJson(test)).isEqualTo("""{"bar":5}""") + + assertThat(adapter.fromJson("""{"bar":6}""")!!.bar).isEqualTo(6) + } + + @JsonClass(generateAdapter = true) + class InternalPropertyWithoutBackingField { + + @Transient + private var foo: Int = 5 + + internal var bar + get() = foo + set(f) { foo = f} + } } // Has to be outside to avoid Types seeing an owning class