Skip to content

Commit b83b171

Browse files
authored
Merge pull request #1130 from kerrykimbrough/boolean-enum
Fixes issue #1129
2 parents 0b2a65e + 413b10c commit b83b171

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/util/OpenAPIDeserializer.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2242,6 +2242,8 @@ public Schema getSchema(ObjectNode node, String location, ParseResult result){
22422242
for (JsonNode n : enumArray) {
22432243
if (n.isNumber()) {
22442244
schema.addEnumItemObject(n.numberValue());
2245+
} else if (n.isBoolean()) {
2246+
schema.addEnumItemObject(n.booleanValue());
22452247
} else if (n.isValueNode()) {
22462248
try {
22472249
schema.addEnumItemObject( getDecodedObject( schema, n.asText(null)));

modules/swagger-parser-v3/src/test/java/io/swagger/v3/parser/util/OpenAPIDeserializerTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,8 @@ public void testDeserializeEnum() {
878878
" $ref: '#/components/schemas/IntegerEnum'\n" +
879879
" ne:\n" +
880880
" $ref: '#/components/schemas/NumberEnum'\n" +
881+
" be:\n" +
882+
" $ref: '#/components/schemas/BooleanEnum'\n" +
881883
"components:\n" +
882884
" schemas:\n" +
883885
" StringEnum:\n" +
@@ -886,6 +888,10 @@ public void testDeserializeEnum() {
886888
" enum:\n" +
887889
" - First\n" +
888890
" - Second\n" +
891+
" BooleanEnum:\n" +
892+
" enum:\n" +
893+
" - true \n" +
894+
" - false \n" +
889895
" IntegerEnum:\n" +
890896
" type: integer\n" +
891897
" default: 1\n" +
@@ -934,6 +940,13 @@ public void testDeserializeEnum() {
934940
assertEquals(new BigDecimal("1.6161"), numberValues.get(2));
935941
assertEquals(new BigDecimal("3.14"), numberValues.get(3));
936942
assertEquals(numberImpl.getDefault(), new BigDecimal("3.14"));
943+
944+
Schema booleanModel = resolved.getComponents().getSchemas().get("BooleanEnum");
945+
assertEquals("boolean", booleanModel.getType());
946+
List<Object> booleanValues = booleanModel.getEnum();
947+
assertEquals(2, booleanValues.size());
948+
assertEquals(Boolean.TRUE, booleanValues.get(0));
949+
assertEquals(Boolean.FALSE, booleanValues.get(1));
937950
}
938951

939952
@Test

0 commit comments

Comments
 (0)