swagger-api/swagger-codegen

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

Open

#5,329 opened on Apr 5, 2017

View on GitHub
 (2 comments) (1 reaction) (0 assignees)HTML (5,474 forks)batch import
Client: C-SharpFeature: EnumIssue: Bughelp wanted

Repository metrics

Stars
 (12,701 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

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

Contributor guide