7
7
import io .swagger .codegen .v3 .CodegenModelType ;
8
8
import io .swagger .codegen .v3 .CodegenParameter ;
9
9
import io .swagger .codegen .v3 .CodegenProperty ;
10
+ import io .swagger .codegen .v3 .CodegenSchema ;
11
+ import io .swagger .codegen .v3 .ISchemaHandler ;
12
+ import io .swagger .codegen .v3 .generators .AbstractCodegenTest ;
13
+ import io .swagger .codegen .v3 .generators .CodegenWrapper ;
10
14
import io .swagger .codegen .v3 .generators .DefaultCodegenConfig ;
15
+ import io .swagger .codegen .v3 .generators .SchemaHandler ;
11
16
import io .swagger .util .Json ;
17
+ import io .swagger .util .Yaml ;
12
18
import io .swagger .v3 .oas .models .OpenAPI ;
13
19
import io .swagger .v3 .oas .models .media .ArraySchema ;
14
20
import io .swagger .v3 .oas .models .media .ComposedSchema ;
34
40
import java .util .List ;
35
41
import java .util .Map ;
36
42
37
- public class JavaClientCodegenTest {
43
+ public class JavaClientCodegenTest extends AbstractCodegenTest {
38
44
39
45
@ Test
40
46
public void modelInheritanceSupportInGson () throws Exception {
@@ -150,27 +156,26 @@ public void arraysInRequestBody() throws Exception {
150
156
RequestBody body1 = new RequestBody ();
151
157
body1 .setDescription ("A list of ids" );
152
158
body1 .setContent (new Content ().addMediaType ("application/json" , new MediaType ().schema (new ArraySchema ().items (new StringSchema ()))));
153
- CodegenParameter codegenParameter1 = codegen .fromRequestBody (body1 , null , null , new HashMap <String , Schema >(), new HashSet <String >());
159
+ CodegenParameter codegenParameter1 = codegen .fromRequestBody (body1 , null , null , new HashMap <String , Schema >(), new HashSet <String >());
154
160
Assert .assertEquals (codegenParameter1 .description , "A list of ids" );
155
161
Assert .assertEquals (codegenParameter1 .dataType , "List<String>" );
156
162
Assert .assertEquals (codegenParameter1 .baseType , "String" );
157
163
158
164
RequestBody body2 = new RequestBody ();
159
165
body2 .setDescription ("A list of list of values" );
160
166
body2 .setContent (new Content ().addMediaType ("application/json" , new MediaType ().schema (new ArraySchema ().items (new ArraySchema ().items (new IntegerSchema ())))));
161
- CodegenParameter codegenParameter2 = codegen .fromRequestBody (body2 , null , null , new HashMap <String , Schema >(), new HashSet <String >());
167
+ CodegenParameter codegenParameter2 = codegen .fromRequestBody (body2 , null , null , new HashMap <String , Schema >(), new HashSet <String >());
162
168
Assert .assertEquals (codegenParameter2 .description , "A list of list of values" );
163
169
Assert .assertEquals (codegenParameter2 .dataType , "List<List<Integer>>" );
164
170
Assert .assertEquals (codegenParameter2 .baseType , "List" );
165
-
166
171
RequestBody body3 = new RequestBody ();
167
172
body3 .setDescription ("A list of points" );
168
173
body3 .setContent (new Content ().addMediaType ("application/json" , new MediaType ().schema (new ArraySchema ().items (new ObjectSchema ().$ref ("#/components/schemas/Point" )))));
169
174
ObjectSchema point = new ObjectSchema ();
170
175
point .addProperties ("message" , new StringSchema ());
171
176
point .addProperties ("x" , new IntegerSchema ().format (SchemaTypeUtil .INTEGER32_FORMAT ));
172
177
point .addProperties ("y" , new IntegerSchema ().format (SchemaTypeUtil .INTEGER32_FORMAT ));
173
- CodegenParameter codegenParameter3 = codegen .fromRequestBody (body3 , null , null , Collections .<String , Schema >singletonMap ("Point" , point ), new HashSet <String >());
178
+ CodegenParameter codegenParameter3 = codegen .fromRequestBody (body3 , null , null , Collections .<String , Schema >singletonMap ("Point" , point ), new HashSet <String >());
174
179
Assert .assertEquals (codegenParameter3 .description , "A list of points" );
175
180
Assert .assertEquals (codegenParameter3 .dataType , "List<Point>" );
176
181
Assert .assertEquals (codegenParameter3 .baseType , "Point" );
@@ -180,7 +185,7 @@ public void arraysInRequestBody() throws Exception {
180
185
public void nullValuesInComposedSchema () throws Exception {
181
186
final JavaClientCodegen codegen = new JavaClientCodegen ();
182
187
CodegenModel result = codegen .fromModel ("CompSche" ,
183
- new ComposedSchema ());
188
+ new ComposedSchema ());
184
189
Assert .assertEquals (result .name , "CompSche" );
185
190
}
186
191
@@ -218,7 +223,7 @@ public void testPackageNamesSetWithAdditionalProperties() throws Exception {
218
223
final JavaClientCodegen codegen = new JavaClientCodegen ();
219
224
codegen .additionalProperties ().put (CodegenConstants .MODEL_PACKAGE , "xxx.yyyyy.zzzzzzz.mmmmm.model" );
220
225
codegen .additionalProperties ().put (CodegenConstants .API_PACKAGE , "xxx.yyyyy.zzzzzzz.aaaaa.api" );
221
- codegen .additionalProperties ().put (CodegenConstants .INVOKER_PACKAGE ,"xxx.yyyyy.zzzzzzz.iiii.invoker" );
226
+ codegen .additionalProperties ().put (CodegenConstants .INVOKER_PACKAGE , "xxx.yyyyy.zzzzzzz.iiii.invoker" );
222
227
codegen .processOpts ();
223
228
224
229
Assert .assertEquals (codegen .modelPackage (), "xxx.yyyyy.zzzzzzz.mmmmm.model" );
@@ -262,11 +267,11 @@ public void testPackageNamesSetInvokerDerivedFromModel() throws Exception {
262
267
public void customTemplates () throws Exception {
263
268
final JavaClientCodegen codegen = new JavaClientCodegen ();
264
269
codegen .processOpts ();
265
- Assert .assertEquals (codegen .templateDir (), "handlebars" + File .separator + "Java" );
270
+ Assert .assertEquals (codegen .templateDir (), "handlebars" + File .separator + "Java" );
266
271
267
- codegen .additionalProperties ().put (CodegenConstants .TEMPLATE_DIR , String .join (File .separator ,"user" , "custom" , "location" ));
272
+ codegen .additionalProperties ().put (CodegenConstants .TEMPLATE_DIR , String .join (File .separator , "user" , "custom" , "location" ));
268
273
codegen .processOpts ();
269
- Assert .assertEquals (codegen .templateDir (), String .join (File .separator ,"user" , "custom" , "location" ));
274
+ Assert .assertEquals (codegen .templateDir (), String .join (File .separator , "user" , "custom" , "location" ));
270
275
}
271
276
272
277
@ Test
@@ -304,64 +309,38 @@ public void testModelNamedFile() {
304
309
Assert .assertFalse (codegenModelSetting .imports .stream ().anyMatch (_import -> _import .equals ("java.io.File" )));
305
310
}
306
311
307
- private OpenAPI getOpenAPI (String filePath ) {
308
- OpenAPIV3Parser openApiParser = new OpenAPIV3Parser ();
309
- ParseOptions options = new ParseOptions ();
310
- options .setResolve (true );
311
- options .setFlatten (true );
312
- SwaggerParseResult parseResult = openApiParser .readLocation (filePath , null , options );
313
-
314
- return parseResult .getOpenAPI ();
315
- }
316
-
317
-
318
-
319
-
320
-
321
-
322
-
323
-
324
-
325
-
326
-
327
-
328
-
329
-
330
-
331
-
332
-
333
-
334
-
335
-
336
-
337
-
338
-
339
-
340
-
341
-
342
-
343
-
344
-
345
-
346
-
347
-
348
-
349
-
350
-
351
-
352
-
353
-
354
-
355
-
356
-
312
+ @ Test
313
+ public void checkOneOfModelCreation () {
314
+ final OpenAPI openAPI = getOpenAPI ("3_0_0/composed_schemas.yaml" );
315
+ final CodegenConfig config = new JavaClientCodegen ();
316
+ final CodegenWrapper codegenWrapper = processSchemas (config , openAPI );
357
317
318
+ CodegenModel codegenModel = codegenWrapper .getAllModels ().get ("PartMaster" );
358
319
320
+ boolean hasOneOfProperty = codegenModel .getVars ()
321
+ .stream ()
322
+ .anyMatch (codegenProperty -> codegenProperty .datatype .equals ("OneOfPartMasterDestination" ));
359
323
324
+ Assert .assertTrue (hasOneOfProperty );
360
325
326
+ hasOneOfProperty = codegenModel .getVars ()
327
+ .stream ()
328
+ .anyMatch (codegenProperty -> codegenProperty .datatype .equals ("OneOfPartMasterOrigin" ));
361
329
330
+ Assert .assertTrue (hasOneOfProperty );
362
331
332
+ final ISchemaHandler schemaHandler = codegenWrapper .getSchemaHandler ();
363
333
334
+ boolean hasComposedModel = schemaHandler .getModels ()
335
+ .stream ()
336
+ .anyMatch (model -> model .name .equals ("OneOfPartMasterDestination" ));
364
337
338
+ Assert .assertTrue (hasComposedModel );
365
339
340
+ hasComposedModel = schemaHandler .getModels ()
341
+ .stream ()
342
+ .anyMatch (model -> model .name .equals ("OneOfPartMasterOrigin" ));
366
343
344
+ Assert .assertTrue (hasComposedModel );
345
+ }
367
346
}
0 commit comments