Skip to content

Commit ce6e703

Browse files
authored
Merge pull request #9402 from swagger-api/bool-additional-properties
fix handling of boolean additionalProperties
2 parents ef25d60 + 8e79b28 commit ce6e703

File tree

6 files changed

+97
-9
lines changed

6 files changed

+97
-9
lines changed

modules/swagger-codegen/src/test/java/io/swagger/codegen/v3/service/GeneratorServiceTest.java

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,43 @@ public void testGeneratorServiceJavaClient3() {
124124
.spec(loadSpecAsNode("3_0_0/petstore.json", false, false))
125125
.options(
126126
new Options()
127-
.outputDir(getTmpFolder().getAbsolutePath())
127+
.outputDir(getTmpFolder().getAbsolutePath())
128+
.artifactId("swagger-petstore-jersey2")
129+
.library("jersey2")
130+
.addAdditionalProperty("useRuntimeException", true)
131+
.addAdditionalProperty("useRxJava", true)
132+
);
133+
List<File> files = new GeneratorService().generationRequest(request).generate();
134+
Assert.assertFalse(files.isEmpty());
135+
}
136+
137+
@Test(description = "test boolean additional properties")
138+
public void testGeneratorServiceBooleanAdditionalProperties() throws Exception {
139+
140+
String path = getTmpFolder().getAbsolutePath();
141+
GenerationRequest request = new GenerationRequest();
142+
request
143+
.codegenVersion(GenerationRequest.CodegenVersion.V3)
144+
.type(GenerationRequest.Type.CLIENT)
145+
.lang("java")
146+
.spec(loadSpecAsNode("3_0_0/swos92.yaml", true, false))
147+
.options(
148+
new Options()
149+
.outputDir(path)
128150
.artifactId("swagger-petstore-jersey2")
129151
.library("jersey2")
130152
.addAdditionalProperty("useRuntimeException", true)
131153
.addAdditionalProperty("useRxJava", true)
132154
);
133155
List<File> files = new GeneratorService().generationRequest(request).generate();
134156
Assert.assertFalse(files.isEmpty());
157+
for (File f: files) {
158+
String relPath = f.getAbsolutePath().substring(path.length());
159+
if ("/src/main/java/io/swagger/client/model/Product.java".equals(relPath)) {
160+
Assert.assertTrue(FileUtils.readFileToString(f).contains("Map<String, Object> foo = null"));
161+
}
162+
}
163+
135164
}
136165

137166
@Test(description = "test generator service with java client 2.0")
@@ -188,6 +217,22 @@ protected JsonNode loadSpecAsNode(final String file, boolean yaml, boolean v2) {
188217
}
189218
}
190219

220+
protected OpenAPI deserializeOpenAPI(final String file, boolean yaml, boolean v2) {
221+
InputStream in = null;
222+
String s = "";
223+
try {
224+
in = getClass().getClassLoader().getResourceAsStream(file);
225+
if (yaml) {
226+
return io.swagger.v3.core.util.Yaml.mapper().readValue(in, OpenAPI.class);
227+
}
228+
return io.swagger.v3.core.util.Json.mapper().readValue(in, OpenAPI.class);
229+
} catch (Exception e) {
230+
throw new RuntimeException("could not load file " + file);
231+
} finally {
232+
IOUtils.closeQuietly(in);
233+
}
234+
}
235+
191236
private static OpenAPI parseOpenAPI(String path) {
192237
final ParseOptions options = new ParseOptions();
193238
options.setFlatten(Boolean.TRUE);
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
openapi: 3.0.0
2+
info:
3+
version: "v2.0"
4+
title: Test
5+
paths:
6+
/product:
7+
get:
8+
operationId: getProduct
9+
summary: Gets a Product by ID.
10+
responses:
11+
'200':
12+
description: Successful operation
13+
content:
14+
application/json:
15+
schema:
16+
$ref: '#/components/schemas/Product'
17+
put:
18+
operationId: updateProduct
19+
summary: Updates a Product by ID.
20+
requestBody:
21+
required: true
22+
content:
23+
application/json:
24+
schema:
25+
$ref: '#/components/schemas/Product'
26+
responses:
27+
'201':
28+
description: Created
29+
components:
30+
schemas:
31+
Product:
32+
type: object
33+
properties:
34+
name:
35+
type: object
36+
additionalProperties:
37+
type: string
38+
active:
39+
type: boolean
40+
example: true
41+
foo:
42+
type: object
43+
additionalProperties: true

pom.docker.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1071,9 +1071,9 @@
10711071
</repositories>
10721072
<properties>
10731073
<swagger-codegen-generators-version>1.0.8-SNAPSHOT</swagger-codegen-generators-version>
1074-
<swagger-core-version>2.0.7</swagger-core-version>
1074+
<swagger-core-version>2.0.8-SNAPSHOT</swagger-core-version>
10751075
<swagger-core-version-v1>1.5.22</swagger-core-version-v1>
1076-
<swagger-parser-version>2.0.11</swagger-parser-version>
1076+
<swagger-parser-version>2.0.12-SNAPSHOT</swagger-parser-version>
10771077
<swagger-parser-version-v1>1.0.44</swagger-parser-version-v1>
10781078
<jackson-version>2.9.8</jackson-version>
10791079
<scala-version>2.11.1</scala-version>

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,9 +1162,9 @@
11621162
</repositories>
11631163
<properties>
11641164
<swagger-codegen-generators-version>1.0.8-SNAPSHOT</swagger-codegen-generators-version>
1165-
<swagger-core-version>2.0.7</swagger-core-version>
1165+
<swagger-core-version>2.0.8-SNAPSHOT</swagger-core-version>
11661166
<swagger-core-version-v1>1.5.22</swagger-core-version-v1>
1167-
<swagger-parser-version>2.0.11</swagger-parser-version>
1167+
<swagger-parser-version>2.0.12-SNAPSHOT</swagger-parser-version>
11681168
<swagger-parser-version-v1>1.0.44</swagger-parser-version-v1>
11691169
<jackson-version>2.9.8</jackson-version>
11701170
<scala-version>2.11.1</scala-version>

pom.xml.bash

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1059,9 +1059,9 @@
10591059
</repositories>
10601060
<properties>
10611061
<swagger-codegen-generators-version>1.0.8-SNAPSHOT</swagger-codegen-generators-version>
1062-
<swagger-core-version>2.0.7</swagger-core-version>
1062+
<swagger-core-version>2.0.8-SNAPSHOT</swagger-core-version>
10631063
<swagger-core-version-v1>1.5.22</swagger-core-version-v1>
1064-
<swagger-parser-version>2.0.11</swagger-parser-version>
1064+
<swagger-parser-version>2.0.12-SNAPSHOT</swagger-parser-version>
10651065
<swagger-parser-version-v1>1.0.44</swagger-parser-version-v1>
10661066
<jackson-version>2.9.8</jackson-version>
10671067
<scala-version>2.11.1</scala-version>

pom.xml.shippable

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1061,9 +1061,9 @@
10611061
</repositories>
10621062
<properties>
10631063
<swagger-codegen-generators-version>1.0.8-SNAPSHOT</swagger-codegen-generators-version>
1064-
<swagger-core-version>2.0.7</swagger-core-version>
1064+
<swagger-core-version>2.0.8-SNAPSHOT</swagger-core-version>
10651065
<swagger-core-version-v1>1.5.22</swagger-core-version-v1>
1066-
<swagger-parser-version>2.0.11</swagger-parser-version>
1066+
<swagger-parser-version>2.0.12-SNAPSHOT</swagger-parser-version>
10671067
<swagger-parser-version-v1>1.0.44</swagger-parser-version-v1>
10681068
<jackson-version>2.9.8</jackson-version>
10691069
<scala-version>2.11.1</scala-version>

0 commit comments

Comments
 (0)