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

Commit 98c3913

Browse files
committed
ignore unknown formats
1 parent 14b5430 commit 98c3913

File tree

2 files changed

+62
-1
lines changed

2 files changed

+62
-1
lines changed

src/main/kotlin/io/openapiprocessor/core/converter/DataTypeConverter.kt

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ class DataTypeConverter(
213213
}
214214

215215
var typeFormat = schemaInfo.getType()
216-
if (schemaInfo.getFormat() != null) {
216+
if (isSupportedFormat(schemaInfo.getFormat())) {
217217
typeFormat += ":" + schemaInfo.getFormat()
218218
}
219219

@@ -254,6 +254,19 @@ class DataTypeConverter(
254254
}
255255
}
256256

257+
private fun isSupportedFormat(format: String?): Boolean {
258+
if(format == null)
259+
return false
260+
261+
return format in listOf(
262+
"int32",
263+
"int64",
264+
"float",
265+
"double",
266+
"date",
267+
"date-time")
268+
}
269+
257270
private fun createStringDataType(info: SchemaInfo, constraints: DataTypeConstraints, dataTypes: DataTypes): DataType {
258271
if (!info.isEnum()) {
259272
return StringDataType(constraints, info.getDeprecated())
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
* Copyright © 2020 https://github.com/openapi-processor/openapi-processor-core
3+
* PDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.openapiprocessor.core.converter
7+
8+
import io.kotest.core.spec.IsolationMode
9+
import io.kotest.core.spec.style.StringSpec
10+
import io.kotest.data.forAll
11+
import io.kotest.data.row
12+
import io.kotest.matchers.shouldBe
13+
import io.mockk.every
14+
import io.mockk.mockk
15+
import io.openapiprocessor.core.converter.mapping.MappingFinder
16+
import io.openapiprocessor.core.model.DataTypes
17+
import io.openapiprocessor.core.parser.RefResolver
18+
import io.openapiprocessor.core.parser.Schema
19+
20+
class DataTypeConverterPrimitiveSpec: StringSpec({
21+
isolationMode = IsolationMode.InstancePerTest
22+
23+
val converter = DataTypeConverter(ApiOptions(), MappingFinder())
24+
val resolver = mockk<RefResolver>()
25+
26+
"ignores unknown primitive data type format" {
27+
forAll(
28+
row("string","unknown", "String"),
29+
row("integer","unknown", "Integer"),
30+
row("number","unknown", "Float"),
31+
row("boolean","unknown", "Boolean")
32+
) { type, format, dataTypeName ->
33+
val schema = mockk<Schema>(relaxed = true)
34+
every { schema.getRef() } returns null
35+
every { schema.getType() } returns type
36+
every { schema.getFormat() } returns format
37+
38+
// when:
39+
val info = SchemaInfo("", "foo", schema = schema, resolver = resolver)
40+
val datatype = converter.convert(info, DataTypes())
41+
42+
// then:
43+
datatype.getName() shouldBe dataTypeName
44+
}
45+
46+
}
47+
48+
})

0 commit comments

Comments
 (0)