diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java index c5fdf0cf21f2..8fcf726110bc 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellClientCodegen.java @@ -1530,7 +1530,7 @@ public GeneratorLanguage generatorLanguage() { @Override public String toEnumVarName(String name, String datatype) { - if (name.length() == 0) { + if (name.isEmpty()) { return "EMPTY"; } @@ -1539,8 +1539,9 @@ public String toEnumVarName(String name, String datatype) { return (getSymbolName(name)).toUpperCase(Locale.ROOT); } - // number - if ("Int16".equals(datatype) || "Int32".equals(datatype) || "Int64".equals(datatype) || + if (name.matches("^\\d.*") || // any data type (including string) starting with a number + // numeric data type + "Int16".equals(datatype) || "Int32".equals(datatype) || "Int64".equals(datatype) || "UInt16".equals(datatype) || "UInt32".equals(datatype) || "UInt64".equals(datatype) || "Double".equals(datatype) || "Single".equals(datatype) || "Decimal".equals(datatype)) { String varName = name; diff --git a/modules/openapi-generator/src/test/resources/3_0/powershell/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml b/modules/openapi-generator/src/test/resources/3_0/powershell/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml index 52ec6279e0c1..53b105777132 100644 --- a/modules/openapi-generator/src/test/resources/3_0/powershell/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/powershell/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml @@ -1812,6 +1812,12 @@ components: - 0 - 1 - 2 + OuterEnumStringStartingWithNumber: + type: string + enum: + - '0' + - '1' + - '2' OuterEnumDefaultValue: type: string enum: diff --git a/samples/client/petstore/powershell/.openapi-generator/FILES b/samples/client/petstore/powershell/.openapi-generator/FILES index 68bd824f6d7a..a9d364e8ba74 100644 --- a/samples/client/petstore/powershell/.openapi-generator/FILES +++ b/samples/client/petstore/powershell/.openapi-generator/FILES @@ -54,6 +54,7 @@ docs/OuterEnum.md docs/OuterEnumDefaultValue.md docs/OuterEnumInteger.md docs/OuterEnumIntegerDefaultValue.md +docs/OuterEnumStringStartingWithNumber.md docs/PSAnotherFakeApi.md docs/PSDefaultApi.md docs/PSFakeApi.md @@ -144,6 +145,7 @@ src/PSPetstore/Model/OuterEnum.ps1 src/PSPetstore/Model/OuterEnumDefaultValue.ps1 src/PSPetstore/Model/OuterEnumInteger.ps1 src/PSPetstore/Model/OuterEnumIntegerDefaultValue.ps1 +src/PSPetstore/Model/OuterEnumStringStartingWithNumber.ps1 src/PSPetstore/Model/ParentPet.ps1 src/PSPetstore/Model/Pet.ps1 src/PSPetstore/Model/PetWithRequiredTags.ps1 diff --git a/samples/client/petstore/powershell/README.md b/samples/client/petstore/powershell/README.md index 498c177defde..d5b8d1eb7c9a 100644 --- a/samples/client/petstore/powershell/README.md +++ b/samples/client/petstore/powershell/README.md @@ -156,6 +156,7 @@ Class | Method | HTTP request | Description - [PSPetstore\Model.OuterEnumDefaultValue](docs/OuterEnumDefaultValue.md) - [PSPetstore\Model.OuterEnumInteger](docs/OuterEnumInteger.md) - [PSPetstore\Model.OuterEnumIntegerDefaultValue](docs/OuterEnumIntegerDefaultValue.md) + - [PSPetstore\Model.OuterEnumStringStartingWithNumber](docs/OuterEnumStringStartingWithNumber.md) - [PSPetstore\Model.ParentPet](docs/ParentPet.md) - [PSPetstore\Model.Pet](docs/Pet.md) - [PSPetstore\Model.PetWithRequiredTags](docs/PetWithRequiredTags.md) diff --git a/samples/client/petstore/powershell/docs/OuterEnumStringStartingWithNumber.md b/samples/client/petstore/powershell/docs/OuterEnumStringStartingWithNumber.md new file mode 100644 index 000000000000..b4c7bfb9b3d0 --- /dev/null +++ b/samples/client/petstore/powershell/docs/OuterEnumStringStartingWithNumber.md @@ -0,0 +1,20 @@ +# OuterEnumStringStartingWithNumber +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +## Examples + +- Prepare the resource +```powershell +$OuterEnumStringStartingWithNumber = Initialize-PSPetstoreOuterEnumStringStartingWithNumber +``` + +- Convert the resource to JSON +```powershell +$OuterEnumStringStartingWithNumber | ConvertTo-JSON +``` + +[[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/powershell/src/PSPetstore/Model/OuterEnumStringStartingWithNumber.ps1 b/samples/client/petstore/powershell/src/PSPetstore/Model/OuterEnumStringStartingWithNumber.ps1 new file mode 100644 index 000000000000..1bb39954bcec --- /dev/null +++ b/samples/client/petstore/powershell/src/PSPetstore/Model/OuterEnumStringStartingWithNumber.ps1 @@ -0,0 +1,26 @@ +# +# OpenAPI 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: "" \ +# Version: 1.0.0 +# Generated by OpenAPI Generator: https://openapi-generator.tech +# + +<# +.SYNOPSIS + +Enum OuterEnumStringStartingWithNumber. + +.DESCRIPTION + +No description available. +#> + +enum OuterEnumStringStartingWithNumber { + # enum value: "0" + NUMBER_0 + # enum value: "1" + NUMBER_1 + # enum value: "2" + NUMBER_2 +} + diff --git a/samples/client/petstore/powershell/tests/Model/OuterEnumStringStartingWithNumber.Tests.ps1 b/samples/client/petstore/powershell/tests/Model/OuterEnumStringStartingWithNumber.Tests.ps1 new file mode 100644 index 000000000000..d465bf541085 --- /dev/null +++ b/samples/client/petstore/powershell/tests/Model/OuterEnumStringStartingWithNumber.Tests.ps1 @@ -0,0 +1,17 @@ +# +# OpenAPI 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: "" \ +# Version: 1.0.0 +# Generated by OpenAPI Generator: https://openapi-generator.tech +# + +Describe -tag 'PSPetstore' -name 'PSOuterEnumStringStartingWithNumber' { + Context 'PSOuterEnumStringStartingWithNumber' { + It 'Initialize-PSOuterEnumStringStartingWithNumber' { + # a simple test to create an object + #$NewObject = Initialize-PSOuterEnumStringStartingWithNumber + #$NewObject | Should -BeOfType OuterEnumStringStartingWithNumber + #$NewObject.property | Should -Be 0 + } + } +}