Skip to content

Commit 568d201

Browse files
committed
write annotation parameter import
1 parent 638c80b commit 568d201

2 files changed

Lines changed: 29 additions & 1 deletion

File tree

openapi-processor-core/src/main/kotlin/io/openapiprocessor/core/writer/java/InterfaceWriter.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ class InterfaceWriter(
5656
imports.add(generatedWriter.getImport())
5757

5858
endpoints.forEach { ep ->
59-
imports.addAll(annotations.getAnnotation (ep.method).imports)
59+
val annotation = annotations.getAnnotation (ep.method)
60+
imports.addAll(annotation.imports)
61+
imports.addAll(annotation.referencedImports)
6062

6163
if (ep.deprecated) {
6264
imports.add (java.lang.Deprecated::class.java.canonicalName)

openapi-processor-core/src/test/kotlin/io/openapiprocessor/core/writer/java/InterfaceWriterSpec.kt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import io.openapiprocessor.core.builder.api.`interface`
1515
import io.openapiprocessor.core.converter.ApiOptions
1616
import io.openapiprocessor.core.converter.mapping.AnnotationTypeMapping
1717
import io.openapiprocessor.core.converter.mapping.ParameterAnnotationTypeMapping
18+
import io.openapiprocessor.core.converter.mapping.SimpleParameterValue
1819
import io.openapiprocessor.core.extractBody
1920
import io.openapiprocessor.core.extractImports
2021
import io.openapiprocessor.core.framework.FrameworkAnnotations
@@ -29,6 +30,10 @@ import io.openapiprocessor.core.support.datatypes.ObjectDataType
2930
import io.openapiprocessor.core.support.datatypes.propertyDataTypeString
3031
import java.io.StringWriter
3132
import java.io.Writer
33+
import kotlin.Boolean
34+
import kotlin.Pair
35+
import kotlin.String
36+
import kotlin.to
3237
import io.mockk.mockk as stub
3338
import io.openapiprocessor.core.converter.mapping.Annotation as AnnotationMapping
3439

@@ -64,6 +69,27 @@ class InterfaceWriterSpec: StringSpec({
6469
extractImports(target) shouldContain "import annotation.Mapping;"
6570
}
6671

72+
"writes mapping parameter import" {
73+
every { annotations.getAnnotation(any<HttpMethod>()) } returns Annotation(
74+
"annotation.Mapping", linkedMapOf(
75+
"parameter" to SimpleParameterValue("Parameter", "parameter.Parameter")
76+
)
77+
)
78+
79+
val itf = `interface` {
80+
endpoint("/foo") {
81+
responses { status("200") }
82+
}
83+
}
84+
85+
// when:
86+
writer.write(target, itf)
87+
88+
// then:
89+
extractImports(target) shouldContain "import annotation.Mapping;"
90+
extractImports(target) shouldContain "import parameter.Parameter;"
91+
}
92+
6793
"writes multiple mapping imports" {
6894
every { annotations.getAnnotation(any<HttpMethod>()) } returnsMany listOf(
6995
Annotation("annotation.MappingA"),

0 commit comments

Comments
 (0)