|
24 | 24 | import org.openapitools.codegen.utils.ModelUtils;
|
25 | 25 | import org.testng.annotations.Test;
|
26 | 26 |
|
27 |
| -import java.util.Arrays; |
28 |
| -import java.util.Collections; |
29 |
| -import java.util.HashMap; |
30 |
| -import java.util.Map; |
| 27 | +import java.util.*; |
31 | 28 |
|
32 | 29 | import static org.testng.Assert.*;
|
33 | 30 |
|
@@ -171,6 +168,12 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf() {
|
171 | 168 | Schema schema15 = openAPI.getComponents().getSchemas().get("AnyOfAnyTypeWithRef");
|
172 | 169 | assertEquals(schema15.getAnyOf().size(), 6);
|
173 | 170 |
|
| 171 | + Schema schema17 = openAPI.getComponents().getSchemas().get("ParentWithOneOfProperty"); |
| 172 | + assertEquals(((Schema) schema17.getProperties().get("number")).getOneOf().size(), 1); |
| 173 | + |
| 174 | + Schema schema19 = openAPI.getComponents().getSchemas().get("SingleAnyOfTest"); |
| 175 | + assertEquals(schema19.getAnyOf().size(), 1); |
| 176 | + |
174 | 177 | Map<String, String> options = new HashMap<>();
|
175 | 178 | options.put("SIMPLIFY_ONEOF_ANYOF", "true");
|
176 | 179 | OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, options);
|
@@ -212,6 +215,30 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf() {
|
212 | 215 | Schema schema16 = openAPI.getComponents().getSchemas().get("AnyOfAnyTypeWithRef");
|
213 | 216 | assertEquals(schema16.getAnyOf(), null);
|
214 | 217 | assertEquals(schema16.getType(), null);
|
| 218 | + |
| 219 | + Schema schema18 = openAPI.getComponents().getSchemas().get("ParentWithOneOfProperty"); |
| 220 | + assertEquals(((Schema) schema18.getProperties().get("number")).get$ref(), "#/components/schemas/Number"); |
| 221 | + |
| 222 | + Schema schema20 = openAPI.getComponents().getSchemas().get("SingleAnyOfTest"); |
| 223 | + assertEquals(schema20.getAnyOf(), null); |
| 224 | + assertEquals(schema20.getType(), "string"); |
| 225 | + assertEquals(schema20.getEnum().size(), 2); |
| 226 | + } |
| 227 | + |
| 228 | + @Test |
| 229 | + public void testOpenAPINormalizerSimplifyOneOfWithSingleRef() { |
| 230 | + OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_0/simplifyOneOfAnyOf_test.yaml"); |
| 231 | + |
| 232 | + Schema oneOfWithSingleRef = openAPI.getComponents().getSchemas().get("ParentWithOneOfProperty"); |
| 233 | + assertEquals(((Schema) oneOfWithSingleRef.getProperties().get("number")).getOneOf().size(), 1); |
| 234 | + |
| 235 | + Map<String, String> options = new HashMap<>(); |
| 236 | + options.put("SIMPLIFY_ONEOF_ANYOF", "true"); |
| 237 | + OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, options); |
| 238 | + openAPINormalizer.normalize(); |
| 239 | + |
| 240 | + oneOfWithSingleRef = openAPI.getComponents().getSchemas().get("ParentWithOneOfProperty"); |
| 241 | + assertEquals(((Schema) oneOfWithSingleRef.getProperties().get("number")).get$ref(), "#/components/schemas/Number"); |
215 | 242 | }
|
216 | 243 |
|
217 | 244 | @Test
|
@@ -833,6 +860,12 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf31Spec() {
|
833 | 860 | Schema schema17 = openAPI.getComponents().getSchemas().get("OneOfNullAndRef3");
|
834 | 861 | assertEquals(schema17.getOneOf().size(), 2);
|
835 | 862 |
|
| 863 | + Schema schema19 = openAPI.getComponents().getSchemas().get("ParentWithOneOfProperty"); |
| 864 | + assertEquals(((Schema) schema19.getProperties().get("number")).getOneOf().size(), 1); |
| 865 | + |
| 866 | + Schema schema21 = openAPI.getComponents().getSchemas().get("SingleAnyOfTest"); |
| 867 | + assertEquals(schema21.getAnyOf().size(), 1); |
| 868 | + |
836 | 869 | Map<String, String> options = new HashMap<>();
|
837 | 870 | options.put("SIMPLIFY_ONEOF_ANYOF", "true");
|
838 | 871 | OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, options);
|
@@ -879,6 +912,30 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf31Spec() {
|
879 | 912 | // original oneOf removed and simplified to just $ref (oneOf sub-schema) instead
|
880 | 913 | assertEquals(schema18.getOneOf(), null);
|
881 | 914 | assertEquals(schema18.get$ref(), "#/components/schemas/Parent");
|
| 915 | + |
| 916 | + Schema schema20 = openAPI.getComponents().getSchemas().get("ParentWithOneOfProperty"); |
| 917 | + assertEquals(((Schema) schema20.getProperties().get("number")).get$ref(), "#/components/schemas/Number"); |
| 918 | + |
| 919 | + Schema schema22 = openAPI.getComponents().getSchemas().get("SingleAnyOfTest"); |
| 920 | + assertEquals(schema22.getAnyOf(), null); |
| 921 | + assertEquals(schema22.getTypes(), Set.of("string")); |
| 922 | + assertEquals(schema22.getEnum().size(), 2); |
| 923 | + } |
| 924 | + |
| 925 | + @Test |
| 926 | + public void testOpenAPINormalizerSimplifyOneOfWithSingleRef31Spec() { |
| 927 | + OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_1/simplifyOneOfAnyOf_test.yaml"); |
| 928 | + |
| 929 | + Schema oneOfWithSingleRef = openAPI.getComponents().getSchemas().get("ParentWithOneOfProperty"); |
| 930 | + assertEquals(((Schema) oneOfWithSingleRef.getProperties().get("number")).getOneOf().size(), 1); |
| 931 | + |
| 932 | + Map<String, String> options = new HashMap<>(); |
| 933 | + options.put("SIMPLIFY_ONEOF_ANYOF", "true"); |
| 934 | + OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, options); |
| 935 | + openAPINormalizer.normalize(); |
| 936 | + |
| 937 | + oneOfWithSingleRef = openAPI.getComponents().getSchemas().get("ParentWithOneOfProperty"); |
| 938 | + assertEquals(((Schema) oneOfWithSingleRef.getProperties().get("number")).get$ref(), "#/components/schemas/Number"); |
882 | 939 | }
|
883 | 940 |
|
884 | 941 | @Test
|
|
0 commit comments