swagger-api/swagger-codegen

[C#][CSharp] Generating code for an array of enums produces incorrect output

Open

#5329 aperta il 5 apr 2017

Vedi su GitHub
 (2 commenti) (1 reazione) (0 assegnatari)HTML (5474 fork)batch import
Client: C-SharpFeature: EnumIssue: Bughelp wanted

Metriche repository

Star
 (12.701 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

Description

For models that contain array of items that are enums output enum code produced doesn't compile.

Swagger-codegen version

I've tried 2.2.1 and 2.2.2 - on both problem occurs.

Swagger declaration file content or url

Minimal example:

"TestModel": {
	"required": ["Login"],
	"type": "object",
	"properties": {
		"Login": {
			"maxLength": 255,
			"minLength": 0,
			"type": "string"
		},
		"Types": {
			"type": "array",
			"items": {
				"format": "int32",
				"enum": [0, 1, 2],
				"type": "integer"
			}
		}
	}
}

Full example json file: https://gist.github.com/mkarpusiewicz/1c863c29ed08000bce05fbcf91bf1726

Command line used for generation

java -jar swagger-codegen-cli.jar generate -i enum-test.json -l csharp -o enum-test -DpackageName="WebApiTest"

Steps to reproduce
  1. With given enum.test.json use command line above to generate C# classes.
  2. TestModel.cs contains enum TypesEnum with members like:
[EnumMember(Value = ""0"")]
_0 = "0",

Int values are treated like strings and code doesn't compile.

Correct code should be:

[EnumMember(Value = "0")]
_0 = 0,
Related issues

I didn't find any related issue with arrays of enums. Only one vaguely connected: https://github.com/swagger-api/swagger-codegen/issues/4670

Guida contributor