Add Kotlin value classes tests with primitive types
This commit adds more Kotlin value classes tests with primitive types to ensure testing unwrapped use case. See gh-28638
This commit is contained in:
parent
88c2a25f12
commit
c38f053905
|
|
@ -128,6 +128,35 @@ class BeanUtilsKotlinTests {
|
||||||
assertThat(instance).isEqualTo(OneConstructorWithNullableValueClass(null))
|
assertThat(instance).isEqualTo(OneConstructorWithNullableValueClass(null))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `Instantiate primitive value class`() {
|
||||||
|
val constructor = BeanUtils.findPrimaryConstructor(PrimitiveValueClass::class.java)!!
|
||||||
|
assertThat(constructor).isNotNull()
|
||||||
|
val value = 0
|
||||||
|
val instance = BeanUtils.instantiateClass(constructor, value)
|
||||||
|
assertThat(instance).isEqualTo(PrimitiveValueClass(value))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `Instantiate class with primitive value class parameter`() {
|
||||||
|
val constructor = BeanUtils.findPrimaryConstructor(OneConstructorWithPrimitiveValueClass::class.java)!!
|
||||||
|
assertThat(constructor).isNotNull()
|
||||||
|
val value = PrimitiveValueClass(0)
|
||||||
|
val instance = BeanUtils.instantiateClass(constructor, value)
|
||||||
|
assertThat(instance).isEqualTo(OneConstructorWithPrimitiveValueClass(value))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `Instantiate class with nullable primitive value class parameter`() {
|
||||||
|
val constructor = BeanUtils.findPrimaryConstructor(OneConstructorWithNullablePrimitiveValueClass::class.java)!!
|
||||||
|
assertThat(constructor).isNotNull()
|
||||||
|
val value = PrimitiveValueClass(0)
|
||||||
|
var instance = BeanUtils.instantiateClass(constructor, value)
|
||||||
|
assertThat(instance).isEqualTo(OneConstructorWithNullablePrimitiveValueClass(value))
|
||||||
|
instance = BeanUtils.instantiateClass(constructor, null)
|
||||||
|
assertThat(instance).isEqualTo(OneConstructorWithNullablePrimitiveValueClass(null))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class Foo(val param1: String, val param2: Int)
|
class Foo(val param1: String, val param2: Int)
|
||||||
|
|
||||||
|
|
@ -180,4 +209,11 @@ class BeanUtilsKotlinTests {
|
||||||
|
|
||||||
data class OneConstructorWithNullableValueClass(val value: ValueClass?)
|
data class OneConstructorWithNullableValueClass(val value: ValueClass?)
|
||||||
|
|
||||||
|
@JvmInline
|
||||||
|
value class PrimitiveValueClass(private val value: Int)
|
||||||
|
|
||||||
|
data class OneConstructorWithPrimitiveValueClass(val value: PrimitiveValueClass)
|
||||||
|
|
||||||
|
data class OneConstructorWithNullablePrimitiveValueClass(val value: PrimitiveValueClass?)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue