2
2
3
3
import com .fasterxml .jackson .databind .JsonNode ;
4
4
import com .fasterxml .jackson .databind .ObjectMapper ;
5
+ import com .fasterxml .jackson .databind .node .JsonNodeFactory ;
5
6
import com .fasterxml .jackson .dataformat .yaml .YAMLFactory ;
6
7
import io .swagger .v3 .core .util .Json ;
7
8
import io .swagger .v3 .oas .models .Components ;
@@ -880,6 +881,10 @@ public void testDeserializeEnum() {
880
881
" $ref: '#/components/schemas/NumberEnum'\n " +
881
882
" be:\n " +
882
883
" $ref: '#/components/schemas/BooleanEnum'\n " +
884
+ " ae:\n " +
885
+ " $ref: '#/components/schemas/ArrayEnum'\n " +
886
+ " oe:\n " +
887
+ " $ref: '#/components/schemas/ObjectEnum'\n " +
883
888
"components:\n " +
884
889
" schemas:\n " +
885
890
" StringEnum:\n " +
@@ -906,7 +911,30 @@ public void testDeserializeEnum() {
906
911
" - -1.151\n " +
907
912
" - 0\n " +
908
913
" - 1.6161\n " +
909
- " - 3.14" ;
914
+ " - 3.14\n " +
915
+ " ArrayEnum:\n " +
916
+ " type: array\n " +
917
+ " items:\n " +
918
+ " type: string\n " +
919
+ " enum:\n " +
920
+ " - - Camry\n " +
921
+ " - Prius\n " +
922
+ " - null\n " +
923
+ " - - Pilot\n " +
924
+ " - Passport\n " +
925
+ " - - Rogue\n " +
926
+ " - Leaf\n " +
927
+ " ObjectEnum:\n " +
928
+ " type: object\n " +
929
+ " enum:\n " +
930
+ " - make: Toyota\n " +
931
+ " model: Prius\n " +
932
+ " - make: Honda\n " +
933
+ " model: Pilot\n " +
934
+ " - make: Nissan\n " +
935
+ " model: Leaf\n " +
936
+ " - null\n " ;
937
+
910
938
OpenAPIV3Parser parser = new OpenAPIV3Parser ();
911
939
SwaggerParseResult result = parser .readContents (yaml , null , null );
912
940
@@ -947,6 +975,24 @@ public void testDeserializeEnum() {
947
975
assertEquals (2 , booleanValues .size ());
948
976
assertEquals (Boolean .TRUE , booleanValues .get (0 ));
949
977
assertEquals (Boolean .FALSE , booleanValues .get (1 ));
978
+
979
+ Schema arrayModel = resolved .getComponents ().getSchemas ().get ("ArrayEnum" );
980
+ assertEquals ("array" , arrayModel .getType ());
981
+ List <Object > arrayValues = arrayModel .getEnum ();
982
+ assertEquals (arrayValues .size (),4 );
983
+ assertEquals (arrayValues .get (0 ), JsonNodeFactory .instance .arrayNode ().add ( "Camry" ).add ( "Prius" ));
984
+ assertEquals (arrayValues .get (1 ), null );
985
+ assertEquals (arrayValues .get (2 ), JsonNodeFactory .instance .arrayNode ().add ( "Pilot" ).add ( "Passport" ));
986
+ assertEquals (arrayValues .get (3 ), JsonNodeFactory .instance .arrayNode ().add ( "Rogue" ).add ( "Leaf" ));
987
+
988
+ Schema objectModel = resolved .getComponents ().getSchemas ().get ("ObjectEnum" );
989
+ assertEquals ("object" , objectModel .getType ());
990
+ List <Object > objectValues = objectModel .getEnum ();
991
+ assertEquals (objectValues .size (),4 );
992
+ assertEquals (objectValues .get (0 ), JsonNodeFactory .instance .objectNode ().put ( "make" , "Toyota" ).put ( "model" , "Prius" ));
993
+ assertEquals (objectValues .get (1 ), JsonNodeFactory .instance .objectNode ().put ( "make" , "Honda" ).put ( "model" , "Pilot" ));
994
+ assertEquals (objectValues .get (2 ), JsonNodeFactory .instance .objectNode ().put ( "make" , "Nissan" ).put ( "model" , "Leaf" ));
995
+ assertEquals (objectValues .get (3 ), null );
950
996
}
951
997
952
998
@ Test
0 commit comments