diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 6d0b9f58492..cd07d86b7fd 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -201,7 +201,12 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege @Override public String toModelFilename(String name) { - return toModel("model_" + name); + name = toModel("model_" + name); + if (name.endsWith("_test")) { + LOGGER.warn(name + ".go with `_test.go` suffix (reserved word) cannot be used as filename. Renamed to " + name + "_.go"); + name += "_"; + } + return name; } public String toModel(String name) { @@ -237,7 +242,12 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege name = name.replaceAll("-", "_"); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. // e.g. PetApi.go => pet_api.go - return "api_" + underscore(name); + name = "api_" + underscore(name); + if (name.endsWith("_test")) { + LOGGER.warn(name + ".go with `_test.go` suffix (reserved word) cannot be used as filename. Renamed to " + name + "_.go"); + name += "_"; + } + return name; } @Override diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java index 8425299a0c4..27ebf0d4cbf 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/go/GoClientCodegenTest.java @@ -72,4 +72,21 @@ public class GoClientCodegenTest { Assert.assertFalse(bp.isPrimitiveType); } + @Test + public void testFilenames() throws Exception { + final GoClientCodegen codegen = new GoClientCodegen(); + + // Model names are generated from schema / definition names + Assert.assertEquals(codegen.toModelFilename("Animal"), "model_animal"); + Assert.assertEquals(codegen.toModelFilename("AnimalTest"), "model_animal_test_"); + Assert.assertEquals(codegen.toModelFilename("AnimalFarm"), "model_animal_farm"); + Assert.assertEquals(codegen.toModelFilename("AnimalFarmTest"), "model_animal_farm_test_"); + + // API names are generated from tag names + Assert.assertEquals(codegen.toApiFilename("Animal"), "api_animal"); + Assert.assertEquals(codegen.toApiFilename("Animal Test"), "api_animal_test_"); + Assert.assertEquals(codegen.toApiFilename("Animal Farm"), "api_animal_farm"); + Assert.assertEquals(codegen.toApiFilename("Animal Farm Test"), "api_animal_farm_test_"); + } + } diff --git a/samples/client/petstore/go/go-petstore/docs/ModelApiResponse.md b/samples/client/petstore/go/go-petstore/docs/ModelApiResponse.md deleted file mode 100644 index f4af2146829..00000000000 --- a/samples/client/petstore/go/go-petstore/docs/ModelApiResponse.md +++ /dev/null @@ -1,12 +0,0 @@ -# ModelApiResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**Code** | **int32** | | [optional] [default to null] -**Type_** | **string** | | [optional] [default to null] -**Message** | **string** | | [optional] [default to null] - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/samples/client/petstore/go/go-petstore/docs/ModelReturn.md b/samples/client/petstore/go/go-petstore/docs/ModelReturn.md deleted file mode 100644 index 86350d4310c..00000000000 --- a/samples/client/petstore/go/go-petstore/docs/ModelReturn.md +++ /dev/null @@ -1,10 +0,0 @@ -# ModelReturn - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**Return_** | **int32** | | [optional] [default to null] - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/samples/client/petstore/go/go-petstore/docs/OuterBoolean.md b/samples/client/petstore/go/go-petstore/docs/OuterBoolean.md deleted file mode 100644 index 8b243399474..00000000000 --- a/samples/client/petstore/go/go-petstore/docs/OuterBoolean.md +++ /dev/null @@ -1,9 +0,0 @@ -# OuterBoolean - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/samples/client/petstore/go/go-petstore/docs/OuterNumber.md b/samples/client/petstore/go/go-petstore/docs/OuterNumber.md deleted file mode 100644 index 8aa37f329bd..00000000000 --- a/samples/client/petstore/go/go-petstore/docs/OuterNumber.md +++ /dev/null @@ -1,9 +0,0 @@ -# OuterNumber - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/samples/client/petstore/go/go-petstore/docs/OuterString.md b/samples/client/petstore/go/go-petstore/docs/OuterString.md deleted file mode 100644 index 9ccaadaf98d..00000000000 --- a/samples/client/petstore/go/go-petstore/docs/OuterString.md +++ /dev/null @@ -1,9 +0,0 @@ -# OuterString - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/samples/client/petstore/go/go-petstore/model_array_test.go b/samples/client/petstore/go/go-petstore/model_array_test_.go similarity index 100% rename from samples/client/petstore/go/go-petstore/model_array_test.go rename to samples/client/petstore/go/go-petstore/model_array_test_.go diff --git a/samples/client/petstore/go/go-petstore/model_enum_test.go b/samples/client/petstore/go/go-petstore/model_enum_test_.go similarity index 100% rename from samples/client/petstore/go/go-petstore/model_enum_test.go rename to samples/client/petstore/go/go-petstore/model_enum_test_.go diff --git a/samples/client/petstore/go/go-petstore/model_format_test.go b/samples/client/petstore/go/go-petstore/model_format_test_.go similarity index 100% rename from samples/client/petstore/go/go-petstore/model_format_test.go rename to samples/client/petstore/go/go-petstore/model_format_test_.go diff --git a/samples/client/petstore/go/go-petstore/model_map_test.go b/samples/client/petstore/go/go-petstore/model_map_test_.go similarity index 100% rename from samples/client/petstore/go/go-petstore/model_map_test.go rename to samples/client/petstore/go/go-petstore/model_map_test_.go diff --git a/samples/client/petstore/go/go-petstore/model_outer_boolean.go b/samples/client/petstore/go/go-petstore/model_outer_boolean.go deleted file mode 100644 index dc9ceb0c67e..00000000000 --- a/samples/client/petstore/go/go-petstore/model_outer_boolean.go +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Swagger Petstore - * - * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ - * - * API version: 1.0.0 - * Contact: apiteam@swagger.io - * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) - */ - -package petstore - -type OuterBoolean struct { -} diff --git a/samples/client/petstore/go/go-petstore/model_outer_number.go b/samples/client/petstore/go/go-petstore/model_outer_number.go deleted file mode 100644 index 75aad986c34..00000000000 --- a/samples/client/petstore/go/go-petstore/model_outer_number.go +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Swagger Petstore - * - * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ - * - * API version: 1.0.0 - * Contact: apiteam@swagger.io - * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) - */ - -package petstore - -type OuterNumber struct { -} diff --git a/samples/client/petstore/go/go-petstore/model_outer_string.go b/samples/client/petstore/go/go-petstore/model_outer_string.go deleted file mode 100644 index f2a440337bd..00000000000 --- a/samples/client/petstore/go/go-petstore/model_outer_string.go +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Swagger Petstore - * - * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ - * - * API version: 1.0.0 - * Contact: apiteam@swagger.io - * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) - */ - -package petstore - -type OuterString struct { -}