Skip to content
This repository was archived by the owner on Mar 16, 2025. It is now read-only.

Commit ddf0847

Browse files
committed
id/type split (lazy wrapper), #65
1 parent 4f15a45 commit ddf0847

File tree

2 files changed

+57
-1
lines changed

2 files changed

+57
-1
lines changed

src/main/kotlin/io/openapiprocessor/core/model/datatypes/LazyDataType.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,12 @@ class LazyDataType(
1919
return dataType.getName()
2020
}
2121

22+
override fun getTypeName(): String {
23+
return dataType.getTypeName()
24+
}
25+
2226
override fun getPackageName(): String {
23-
return dataType.getPackageName()
27+
return dataType.getPackageName()
2428
}
2529

2630
override fun getImports(): Set<String> {
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
* Copyright 2021 https://github.com/openapi-processor/openapi-processor-core
3+
* PDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.openapiprocessor.core.model.datatypes
7+
8+
import io.kotest.core.spec.style.StringSpec
9+
import io.kotest.data.blocking.forAll
10+
import io.kotest.data.row
11+
import io.kotest.matchers.shouldBe
12+
import io.mockk.mockk
13+
import io.openapiprocessor.core.converter.SchemaInfo
14+
import io.openapiprocessor.core.model.DataTypes
15+
import io.openapiprocessor.core.model.HttpMethod
16+
import io.openapiprocessor.core.parser.RefResolver
17+
18+
class LazyDataTypeSpec : StringSpec({
19+
val resolver = mockk<RefResolver>()
20+
val any = SchemaInfo.Endpoint("/any", HttpMethod.GET)
21+
22+
"uses id name and type name of item" {
23+
val dataTypes = DataTypes()
24+
dataTypes.add(
25+
ObjectDataType(DataTypeName("Foo", "FooX"), "pkg", linkedMapOf())
26+
)
27+
28+
val info = SchemaInfo(any, "Foo", "", null, resolver)
29+
val dt = LazyDataType(info, dataTypes)
30+
31+
dt.getName() shouldBe "Foo"
32+
dt.getTypeName() shouldBe "FooX"
33+
}
34+
35+
"should create import with type name" {
36+
forAll(row("Foo", "Foo"), row("Fooo", "FoooX")) { id, type ->
37+
38+
val dataTypes = DataTypes()
39+
dataTypes.add(
40+
ObjectDataType(DataTypeName(id, type), "pkg", linkedMapOf())
41+
)
42+
43+
val info = SchemaInfo(any, id, "", null, resolver)
44+
val dt = LazyDataType(info, dataTypes)
45+
46+
dt.getImports() shouldBe setOf(
47+
"pkg.$type"
48+
)
49+
}
50+
}
51+
52+
})

0 commit comments

Comments
 (0)