diff --git a/inject-kotlin/src/test/groovy/io/micronaut/kotlin/processing/ast/visitor/KotlinBeanPropertiesSpec.groovy b/inject-kotlin/src/test/groovy/io/micronaut/kotlin/processing/ast/visitor/KotlinBeanPropertiesSpec.groovy new file mode 100644 index 00000000000..8ce0af62637 --- /dev/null +++ b/inject-kotlin/src/test/groovy/io/micronaut/kotlin/processing/ast/visitor/KotlinBeanPropertiesSpec.groovy @@ -0,0 +1,39 @@ +package io.micronaut.kotlin.processing.ast.visitor + +import io.micronaut.annotation.processing.test.AbstractKotlinCompilerSpec + +class KotlinBeanPropertiesSpec extends AbstractKotlinCompilerSpec { + + void "test kotlin and java records"() { + def classElement = buildClassElement("test.ObjectWithProps", """ +package test + +import io.micronaut.sample.EmptyRecord +import io.micronaut.sample.JavaRecord + +open class ObjectWithProps( + var javaRecord: JavaRecord, + var emptyRecord: EmptyRecord, +) +""") + + var props = classElement.getBeanProperties() + + expect: + props.size() == 2 + props[0].type.isRecord() + props[1].type.isRecord() + + when: + var props1 = props[0].type.getBeanProperties() + + then: + props1.size() == 2 + + when: + var props2 = props[1].type.getBeanProperties() + + then: + props2.size() == 0 + } +} diff --git a/inject-kotlin/src/test/java/io/micronaut/sample/EmptyRecord.java b/inject-kotlin/src/test/java/io/micronaut/sample/EmptyRecord.java new file mode 100644 index 00000000000..a617c3225a2 --- /dev/null +++ b/inject-kotlin/src/test/java/io/micronaut/sample/EmptyRecord.java @@ -0,0 +1,4 @@ +package io.micronaut.sample; + +public record EmptyRecord() { +} diff --git a/inject-kotlin/src/test/java/io/micronaut/sample/JavaRecord.java b/inject-kotlin/src/test/java/io/micronaut/sample/JavaRecord.java new file mode 100644 index 00000000000..0fc8686fbd8 --- /dev/null +++ b/inject-kotlin/src/test/java/io/micronaut/sample/JavaRecord.java @@ -0,0 +1,8 @@ +package io.micronaut.sample; + +public record JavaRecord( + String field1, + Integer field2 +) { + +}