From f5440a9f075be0ddf78660f09b8760cd17be02ac Mon Sep 17 00:00:00 2001 From: frantuma Date: Thu, 28 Mar 2019 14:35:44 +0100 Subject: [PATCH] fixes imports when spec contains no schema --- .../swagger/codegen/v3/DefaultGenerator.java | 8 +++++ .../v3/service/GeneratorServiceTest.java | 29 +++++++++++++++++++ .../src/test/resources/3_0_0/noModel.yaml | 16 ++++++++++ 3 files changed, 53 insertions(+) create mode 100644 modules/swagger-codegen/src/test/resources/3_0_0/noModel.yaml diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/v3/DefaultGenerator.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/v3/DefaultGenerator.java index a3b4a37b7a4..1c6feeb01ba 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/v3/DefaultGenerator.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/v3/DefaultGenerator.java @@ -416,6 +416,11 @@ private void generateApis(List files, List allOperations, List> paths = processPaths(this.openAPI.getPaths()); Set apisToGenerate = null; String apiNames = System.getProperty("apis"); @@ -464,6 +469,9 @@ public int compare(CodegenOperation one, CodegenOperation another) { } operation.put("sortParamsByRequiredFlag", sortParamsByRequiredFlag); + operation.put("hasModel", hasModel); + + allOperations.add(new HashMap<>(operation)); for (int i = 0; i < allOperations.size(); i++) { Map oo = (Map) allOperations.get(i); diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/v3/service/GeneratorServiceTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/v3/service/GeneratorServiceTest.java index b58b63c6419..836f44dad82 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/v3/service/GeneratorServiceTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/v3/service/GeneratorServiceTest.java @@ -6,6 +6,7 @@ import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.parser.OpenAPIV3Parser; import io.swagger.v3.parser.core.models.ParseOptions; +import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.testng.Assert; import org.testng.annotations.Test; @@ -33,6 +34,34 @@ public void testGeneratorServiceJava3() { Assert.assertFalse(files.isEmpty()); } + @Test + public void testNoModel() throws Exception{ + + String path = getTmpFolder().getAbsolutePath(); + GenerationRequest request = new GenerationRequest(); + request + .codegenVersion(GenerationRequest.CodegenVersion.V3) + .type(GenerationRequest.Type.SERVER) + .lang("jaxrs-jersey") + .spec(loadSpecAsNode("3_0_0/noModel.yaml", true, false)) + .options( + new Options() + .outputDir(path) + ); + List files = new GeneratorService().generationRequest(request).generate(); + System.out.println(path); + Assert.assertFalse(files.isEmpty()); + for (File f: files) { + String relPath = f.getAbsolutePath().substring(path.length()); + if ("/src/main/java/io/swagger/api/impl/FooApiServiceImpl.java".equals(relPath) || + "/src/gen/java/io/swagger/api/FooApiService.java".equals(relPath) || + "/src/gen/java/io/swagger/api/FooApi.java".equals(relPath)) { + Assert.assertFalse(FileUtils.readFileToString(f).contains("import io.swagger.model")); + } + } + + } + @Test(description = "test generator service with java 2.0") public void testGeneratorServiceJava2() { diff --git a/modules/swagger-codegen/src/test/resources/3_0_0/noModel.yaml b/modules/swagger-codegen/src/test/resources/3_0_0/noModel.yaml new file mode 100644 index 00000000000..72c71ce2d87 --- /dev/null +++ b/modules/swagger-codegen/src/test/resources/3_0_0/noModel.yaml @@ -0,0 +1,16 @@ +openapi: 3.0.0 +info: + title: Sample API + version: '1' +servers: + - url: 'http://localhost:9080/1' +paths: + /foo: + get: + responses: + '200': + description: OK + content: + application/json: + schema: + type: object \ No newline at end of file