raml-java-parser icon indicating copy to clipboard operation
raml-java-parser copied to clipboard

Discriminator - Given example in type declaration should correspond to the type declared

Open eleonoraortega opened this issue 9 years ago • 1 comments

#%RAML 1.0

title: Discriminator
types:
  Person:
    type: object
    discriminator: kind # refers to the `kind` property of object `Person`
    properties:
      kind: string # contains name of the kind of a `Person` instance
      name: string
  Employee: # kind may equal to `Employee; default value for `discriminatorValue`
    type: Person
    properties:
      employeeId: string
  User: # kind may equal to `User`; default value for `discriminatorValue`
    type: Person
    properties:
      userId: string
    example:
      kind: Employee
      name: Valentin
      employeeId: valen.tin

Actual result:

{
    "title": {
        "value": "Discriminator"
    },
    "types": {
        "Person": {
            "type": "object",
            "discriminator": "kind",
            "properties": {
                "kind": {
                    "type": "string",
                    "displayName": {
                        "value": "kind"
                    }
                },
                "name": {
                    "type": "string",
                    "displayName": {
                        "value": "name"
                    }
                }
            },
            "displayName": {
                "value": "Person"
            }
        },
        "Employee": {
            "type": "Person",
            "properties": {
                "employeeId": {
                    "type": "string",
                    "displayName": {
                        "value": "employeeId"
                    }
                }
            },
            "displayName": {
                "value": "Employee"
            }
        },
        "User": {
            "type": "Person",
            "properties": {
                "userId": {
                    "type": "string",
                    "displayName": {
                        "value": "userId"
                    }
                }
            },
            "example": {
                "kind": "Employee",
                "name": "Valentin",
                "employeeId": "valen.tin"
            },
            "displayName": {
                "value": "User"
            }
        }
    }
}

Expected result:

Validate given example is at User level, but the values are from Employee type

Aha! Link: https://mulesoft-roadmap.aha.io/features/APIRAML-133

eleonoraortega avatar Jun 29 '16 23:06 eleonoraortega

The problem is still there

eleonoraortega avatar Jul 29 '16 22:07 eleonoraortega