Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[core] fix referenced enum case #2175

Merged
merged 1 commit into from
Feb 19, 2019

Conversation

jmini
Copy link
Member

@jmini jmini commented Feb 18, 2019

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh, ./bin/security/{LANG}-petstore.sh and ./bin/openapi3/security/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\.
  • Filed the PR against the correct branch: master, 3.4.x, 4.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language. Change in the core: @OpenAPITools/generator-core-team

Description of the PR

Fixes #2127

Follow up of PR #1981

When you have a default value defined, in the outer enum case (where a seperated enum file is created) the default value was only working for the string type.

This PR address the issue.


Tested with a spec having this outer enum cases:

components:
  schemas:
    IntEnum:
      type: integer
      format: int32
      default: 2
      enum:
        - 1
        - 2
        - 3

    LongEnum:
      type: integer
      format: int64
      default: 30
      enum:
        - 20
        - 30
        - 40

    StringEnum:
      type: string
      default: "b"
      enum:
        - "c"
        - "b"
        - "a"

    EnumWithCustomName:
      type: integer
      format: int32
      default: 2
      enum:
        - 1
        - 2
      x-enum-varnames:
        - FOO
        - BAR

And following schema:

    ObjWithEnumProperties:
      type: object
      properties:
        iprop:
            $ref: "#/components/schemas/IntEnum"
        lprop:
            $ref: "#/components/schemas/LongEnum"
        sprop:
            $ref: "#/components/schemas/StringEnum"
        custom:
            $ref: "#/components/schemas/EnumWithCustomName"

The change is made in the core and I think that a lot of generators are impacted.
I have tested it for different java generators.
Setting a modelNamePrefix should also be considered during tests.

I recommend to try other generators/config as well.

@auto-labeler
Copy link

auto-labeler bot commented Feb 18, 2019

👍 Thanks for opening this issue!
🏷 I have applied any labels matching special text in your issue.

The team will review the labels and make any necessary changes.

@fujigon
Copy link
Contributor

fujigon commented Feb 19, 2019

great work!
I installed your branch locally and confirmed it works perfectly :)

@wing328 wing328 added this to the 4.0.0 milestone Feb 19, 2019
@wing328
Copy link
Member

wing328 commented Feb 19, 2019

@jmini thanks for the PR 👍

@fujigon thanks for testing the fix.

@wing328 wing328 merged commit fda867e into OpenAPITools:master Feb 19, 2019
jimschubert added a commit that referenced this pull request Feb 23, 2019
* master: (40 commits)
  [Python] remove default value from being fallback to example (#2213)
  Add petstore integration tests to Ruby OAS3 client (#2211)
  Gradle - make GenerateTask properties optional (#2185)
  skip bats installation (#2198)
  Something in the dependencies changed. This switch is no longer needed. (#1850)
  Use oauth token for basic bearer auth in Rust. (#2161)
  Fix missing nullable (#2189)
  Enable error handling in Java WebClient library, fixes #1243 (#1244)
  [core] fix referenced enum case (#2175)
  rest-template: allow array parameters in path using collectionFormat (#2177)
  update go petstore samples
  Fix string types for cpprestsdk client generator (#1676)
  update kotline samples
  Remove API Key Authentication code for go when cookie is used. (#1601)
  changed the package install instructions to install the .tgz package … (#1989)
  okhttp-gson: allow array parameters in path using collectionFormat (#2137)
  [Ruby] Fix regualr expression in error message (#2069) (#2139)
  [kotlin][client] bytearray conversion (#2166)
  [rust-server] Added client documentation to rust-server (#2159)
  [Java] Getter/Setter naming convention not followed in generated models (#2095)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG][Java] default value in referenced Enum produces corrupted code
3 participants