This is an automated email from the ASF dual-hosted git repository.

sergeyb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new 27e3a63  [CXF-7525] Adding the requestBodies conversion test
27e3a63 is described below

commit 27e3a631dd57cec3e3742beed1cebd32c8d19ad4
Author: Sergey Beryozkin <sberyoz...@gmail.com>
AuthorDate: Fri Dec 8 12:43:10 2017 +0000

    [CXF-7525] Adding the requestBodies conversion test
---
 .../openapi/SwaggerToOpenApiConversionUtils.java   |   5 +-
 .../SwaggerToOpenApiConversionUtilsTest.java       | 193 ++++++++++++++-------
 2 files changed, 136 insertions(+), 62 deletions(-)

diff --git 
a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionUtils.java
 
b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionUtils.java
index bf5a262..d1de282 100644
--- 
a/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionUtils.java
+++ 
b/rt/rs/description-swagger/src/main/java/org/apache/cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionUtils.java
@@ -284,7 +284,7 @@ public final class SwaggerToOpenApiConversionUtils {
             sw3RequestBody.setProperty("content", 
prepareFormContent(sw3formBody, sw2PathVerbConsumes));
         }
         if (sw3RequestBody != null) {
-            if (requestBodies == null) {
+            if (requestBodies == null || sw3formBody != null) {
                 sw2PathVerbProps.setProperty("requestBody", sw3RequestBody);
             } else {
                 JsonMapObject content = 
sw3RequestBody.getJsonMapProperty("content");
@@ -292,6 +292,9 @@ public final class SwaggerToOpenApiConversionUtils {
                     String requestBodyName = 
(String)content.removeProperty("requestBodyName");
                     if (requestBodyName != null) {
                         requestBodies.put(requestBodyName, sw3RequestBody);
+                        String ref = "#components/requestBodies/" + 
requestBodyName;
+                        sw2PathVerbProps.setProperty("requestBody",
+                                                     
Collections.singletonMap("$ref", ref));
                     }
                 }
             }
diff --git 
a/rt/rs/description-swagger/src/test/java/org/apache/cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionUtilsTest.java
 
b/rt/rs/description-swagger/src/test/java/org/apache/cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionUtilsTest.java
index 5648770..73b352e 100644
--- 
a/rt/rs/description-swagger/src/test/java/org/apache/cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionUtilsTest.java
+++ 
b/rt/rs/description-swagger/src/test/java/org/apache/cxf/jaxrs/swagger/openapi/SwaggerToOpenApiConversionUtilsTest.java
@@ -31,7 +31,7 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
 
     @Test
     public void testConvertFromSwaggerToOpenApi() {
-        
+        OpenApiConfiguration cfg = new OpenApiConfiguration();
         String s = 
SwaggerToOpenApiConversionUtils.getOpenApiFromSwaggerLoc("/swagger2petShop.json");
         JsonMapObjectReaderWriter readerWriter = new 
JsonMapObjectReaderWriter();
         JsonMapObject sw3 = readerWriter.fromJsonToJsonObject(s);
@@ -39,15 +39,30 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
         verifyServersProperty(sw3);
         verifyInfoProperty(sw3);
         verifyTagsProperty(sw3);
-        verifyPathsProperty(sw3);
-        verifyComponentsProperty(sw3);
+        verifyPathsProperty(sw3, cfg);
+        verifyComponentsProperty(sw3, cfg);
+    }
+    
+    @Test
+    public void testConvertFromSwaggerToOpenApiWithRequestBodies() {
+        OpenApiConfiguration cfg = new OpenApiConfiguration();
+        cfg.setCreateRequestBodies(true);
+        String s = 
SwaggerToOpenApiConversionUtils.getOpenApiFromSwaggerLoc("/swagger2petShop.json",
 cfg);
+        JsonMapObjectReaderWriter readerWriter = new 
JsonMapObjectReaderWriter();
+        JsonMapObject sw3 = readerWriter.fromJsonToJsonObject(s);
+        assertEquals("3.0.0", sw3.getStringProperty("openapi"));
+        verifyServersProperty(sw3);
+        verifyInfoProperty(sw3);
+        verifyTagsProperty(sw3);
+        verifyPathsProperty(sw3, cfg);
+        verifyComponentsProperty(sw3, cfg);
     }
 
-    private void verifyPathsProperty(JsonMapObject sw3) {
+    private void verifyPathsProperty(JsonMapObject sw3, OpenApiConfiguration 
cfg) {
         JsonMapObject paths = sw3.getJsonMapProperty("paths");
         assertEquals(14, paths.size());
         // /pet
-        verifyPetPath(paths);
+        verifyPetPath(paths, cfg);
         // /pet/findByStatus
         verifyPetFindByStatusPath(paths);
         // /pet/findByTags
@@ -59,29 +74,29 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
         // "/store/inventory"
         verifyStoreInventoryPath(paths);
         // "/store/order"
-        verifyStoreOrderPath(paths);
+        verifyStoreOrderPath(paths, cfg);
         // "/store/order/{orderId}"
         verifyStoreOrderIdPath(paths);
         // "/user"
-        verifyUserPath(paths);
+        verifyUserPath(paths, cfg);
         // "/user/createWithArray"
-        verifyUserCreateWithArrayPath(paths);
+        verifyUserCreateWithArrayPath(paths, cfg);
         // "/user/createWithList"        
-        verifyUserCreateWithListPath(paths);
+        verifyUserCreateWithListPath(paths, cfg);
         // "/user/login"        
         verifyUserLoginPath(paths);
         // "/user/logout"        
         verifyUserLogoutPath(paths);
         // "/user/{username}"        
-        verifyUserUsernamePath(paths);
+        verifyUserUsernamePath(paths, cfg);
     }
 
-    private void verifyPetPath(JsonMapObject paths) {
+    private void verifyPetPath(JsonMapObject paths, OpenApiConfiguration cfg) {
         // /pet
         JsonMapObject pet = paths.getJsonMapProperty("/pet");
         assertEquals(2, pet.size());
-        verifyPetPathPost(pet);
-        verifyPetPathPut(pet);
+        verifyPetPathPost(pet, cfg);
+        verifyPetPathPut(pet, cfg);
     }
     
     private void verifyPetFindByStatusPath(JsonMapObject paths) {
@@ -121,11 +136,11 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
         verifyStoreInventoryPathGet(store);
     }
     
-    private void verifyStoreOrderPath(JsonMapObject paths) {
+    private void verifyStoreOrderPath(JsonMapObject paths, 
OpenApiConfiguration cfg) {
         // /store/order
         JsonMapObject store = paths.getJsonMapProperty("/store/order");
         assertEquals(1, store.size());
-        verifyStoreOrderPathPost(store);
+        verifyStoreOrderPathPost(store, cfg);
     }
     
     private void verifyStoreOrderIdPath(JsonMapObject paths) {
@@ -136,25 +151,25 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
         verifyStoreOrderIdPathDelete(store);
     }
     
-    private void verifyUserPath(JsonMapObject paths) {
+    private void verifyUserPath(JsonMapObject paths, OpenApiConfiguration cfg) 
{
         // /user
         JsonMapObject user = paths.getJsonMapProperty("/user");
         assertEquals(1, user.size());
-        verifyUserPathPost(user);
+        verifyUserPathPost(user, cfg);
     }
     
-    private void verifyUserCreateWithArrayPath(JsonMapObject paths) {
+    private void verifyUserCreateWithArrayPath(JsonMapObject paths, 
OpenApiConfiguration cfg) {
         // /user/createWithArray
         JsonMapObject user = paths.getJsonMapProperty("/user/createWithArray");
         assertEquals(1, user.size());
-        verifyUserCreateWithArrayPathPost(user);
+        verifyUserCreateWithArrayPathPost(user, cfg);
     }
     
-    private void verifyUserCreateWithListPath(JsonMapObject paths) {
+    private void verifyUserCreateWithListPath(JsonMapObject paths, 
OpenApiConfiguration cfg) {
         // /user/createWithList
         JsonMapObject user = paths.getJsonMapProperty("/user/createWithList");
         assertEquals(1, user.size());
-        verifyUserCreateWithListPathPost(user);
+        verifyUserCreateWithListPathPost(user, cfg);
     }
     
     private void verifyUserLoginPath(JsonMapObject paths) {
@@ -171,12 +186,12 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
         verifyUserLogoutPathGet(user);
     }
     
-    private void verifyUserUsernamePath(JsonMapObject paths) {
+    private void verifyUserUsernamePath(JsonMapObject paths, 
OpenApiConfiguration cfg) {
         // /user/{username}
         JsonMapObject user = paths.getJsonMapProperty("/user/{username}");
         assertEquals(3, user.size());
         verifyUserUsernamePathGet(user);
-        verifyUserUsernamePathPut(user);
+        verifyUserUsernamePathPut(user, cfg);
         verifyUserUsernamePathDelete(user);
     }
     
@@ -235,7 +250,7 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
         verifySimpleContent(content, "application/xml", "User");
     }
     
-    private void verifyUserUsernamePathPut(JsonMapObject user) {
+    private void verifyUserUsernamePathPut(JsonMapObject user, 
OpenApiConfiguration cfg) {
         JsonMapObject userPut = user.getJsonMapProperty("put");
         assertEquals(7, userPut.size());
         testCommonVerbPropsExceptSec(userPut, "updateUser");
@@ -243,13 +258,17 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
         assertEquals(1, parameters.size());
         JsonMapObject userParam = new JsonMapObject(parameters.get(0));
         verifyUserNameParameter(userParam, "username", "path");
-        JsonMapObject requestBody = userPut.getJsonMapProperty("requestBody");
-        assertEquals(3, requestBody.size());
-        assertNotNull(requestBody.getProperty("description"));
-        assertTrue(requestBody.getBooleanProperty("required"));
-        JsonMapObject content = requestBody.getJsonMapProperty("content");
-        assertEquals(1, content.size());
-        verifySimpleContent(content, "application/json", "User");
+        if (cfg.isCreateRequestBodies()) {
+            verifyRequestBodyRef(userPut, "User");
+        } else {
+            JsonMapObject requestBody = 
userPut.getJsonMapProperty("requestBody");
+            assertEquals(3, requestBody.size());
+            assertNotNull(requestBody.getProperty("description"));
+            assertTrue(requestBody.getBooleanProperty("required"));
+            JsonMapObject content = requestBody.getJsonMapProperty("content");
+            assertEquals(1, content.size());
+            verifySimpleContent(content, "application/json", "User");
+        }
         
         JsonMapObject responses = userPut.getJsonMapProperty("responses");
         assertEquals(2, responses.size());
@@ -311,14 +330,19 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
         assertNotNull(responses.getProperty("404"));
     }
     
-    private void verifyStoreOrderPathPost(JsonMapObject store) {
+    private void verifyStoreOrderPathPost(JsonMapObject store, 
OpenApiConfiguration cfg) {
         JsonMapObject storePost = store.getJsonMapProperty("post");
         assertEquals(6, storePost.size());
         testCommonVerbPropsExceptSec(storePost, "placeOrder");
         assertNull(storePost.getProperty("parameters"));
-        JsonMapObject contentIn = verifyRequestBodyGetContent(storePost);
-        assertEquals(1, contentIn.size());
-        verifySimpleContent(contentIn, "application/json", "Order");
+        
+        if (cfg.isCreateRequestBodies()) {
+            verifyRequestBodyRef(storePost, "Order");
+        } else {
+            JsonMapObject contentIn = verifyRequestBodyContent(storePost);
+            assertEquals(1, contentIn.size());
+            verifySimpleContent(contentIn, "application/json", "Order");
+        }
         JsonMapObject responses = storePost.getJsonMapProperty("responses");
         assertEquals(2, responses.size());
         assertNotNull(responses.getJsonMapProperty("400"));
@@ -331,14 +355,18 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
         verifySimpleContent(contentOut, "application/xml", "Order");
     }
     
-    private void verifyUserPathPost(JsonMapObject store) {
+    private void verifyUserPathPost(JsonMapObject store, OpenApiConfiguration 
cfg) {
         JsonMapObject userPost = store.getJsonMapProperty("post");
         assertEquals(6, userPost.size());
         testCommonVerbPropsExceptSec(userPost, "createUser");
         assertNull(userPost.getProperty("parameters"));
-        JsonMapObject contentIn = verifyRequestBodyGetContent(userPost);
-        assertEquals(1, contentIn.size());
-        verifySimpleContent(contentIn, "application/json", "User");
+        if (cfg.isCreateRequestBodies()) {
+            verifyRequestBodyRef(userPost, "User");
+        } else {
+            JsonMapObject contentIn = verifyRequestBodyContent(userPost);
+            assertEquals(1, contentIn.size());
+            verifySimpleContent(contentIn, "application/json", "User");
+        }
         testDefaultResponse(userPost);
     }
     
@@ -349,22 +377,27 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
         
     }
 
-    private void verifyUserCreateWithArrayPathPost(JsonMapObject store) {
-        verifyUserCreateWithListOrArrayPathPost(store, 
"createUsersWithArrayInput");
+    private void verifyUserCreateWithArrayPathPost(JsonMapObject store, 
OpenApiConfiguration cfg) {
+        verifyUserCreateWithListOrArrayPathPost(store, 
"createUsersWithArrayInput", cfg);
     }
     
-    private void verifyUserCreateWithListPathPost(JsonMapObject store) {
-        verifyUserCreateWithListOrArrayPathPost(store, 
"createUsersWithListInput");
+    private void verifyUserCreateWithListPathPost(JsonMapObject store, 
OpenApiConfiguration cfg) {
+        verifyUserCreateWithListOrArrayPathPost(store, 
"createUsersWithListInput", cfg);
     }
     
-    private void verifyUserCreateWithListOrArrayPathPost(JsonMapObject store, 
String opId) {
+    private void verifyUserCreateWithListOrArrayPathPost(JsonMapObject store, 
String opId,
+                                                         OpenApiConfiguration 
cfg) {
         JsonMapObject userPost = store.getJsonMapProperty("post");
         assertEquals(6, userPost.size());
         testCommonVerbPropsExceptSec(userPost, opId);
         assertNull(userPost.getProperty("parameters"));
-        JsonMapObject contentIn = verifyRequestBodyGetContent(userPost);
-        assertEquals(1, contentIn.size());
-        verifyArrayContent(contentIn, "application/json", "User");
+        if (cfg.isCreateRequestBodies()) {
+            verifyRequestBodyRef(userPost, "UserArray");
+        } else {
+            JsonMapObject contentIn = verifyRequestBodyContent(userPost);
+            assertEquals(1, contentIn.size());
+            verifyArrayContent(contentIn, "application/json", "User");
+        }
         testDefaultResponse(userPost);
     }
     
@@ -560,36 +593,53 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
         }
     }
 
-    private void verifyPetPathPost(JsonMapObject pet) {
+    private void verifyPetPathPost(JsonMapObject pet, OpenApiConfiguration 
cfg) {
         JsonMapObject petPost = pet.getJsonMapProperty("post");
         assertEquals(7, petPost.size());
         testCommonVerbProps(petPost, "addPet");
         assertNull(petPost.getProperty("parameters"));
-        JsonMapObject content = verifyRequestBodyGetContent(petPost);
-        assertEquals(2, content.size());
-        verifySimpleContent(content, "application/json", "Pet");
-        verifySimpleContent(content, "application/xml", "Pet");
+        if (cfg.isCreateRequestBodies()) {
+            verifyRequestBodyRef(petPost, "Pet");
+        } else {
+            JsonMapObject content = verifyRequestBodyContent(petPost);
+            assertEquals(2, content.size());
+            verifySimpleContent(content, "application/json", "Pet");
+            verifySimpleContent(content, "application/xml", "Pet");
+        }
         JsonMapObject responses = petPost.getJsonMapProperty("responses");
         assertEquals(1, responses.size());
         assertNotNull(responses.getProperty("405"));
     }
-    private JsonMapObject verifyRequestBodyGetContent(JsonMapObject json) {
-        JsonMapObject requestBody = json.getJsonMapProperty("requestBody");
+    private JsonMapObject verifyRequestBodyContent(JsonMapObject json) {
+        return verifyRequestBodyContent(json, "requestBody");
+    }
+    private JsonMapObject verifyRequestBodyContent(JsonMapObject json, String 
propName) {
+        JsonMapObject requestBody = json.getJsonMapProperty(propName);
         assertEquals(3, requestBody.size());
         assertNotNull(requestBody.getProperty("description"));
         assertTrue(requestBody.getBooleanProperty("required"));
         return requestBody.getJsonMapProperty("content");
     }
+    private void verifyRequestBodyRef(JsonMapObject json, String refName) {
+        JsonMapObject requestBody = json.getJsonMapProperty("requestBody");
+        assertEquals(1, requestBody.size());
+        assertEquals("#components/requestBodies/" + refName,
+                     requestBody.getProperty("$ref"));
+    }
 
-    private void verifyPetPathPut(JsonMapObject pet) {
+    private void verifyPetPathPut(JsonMapObject pet, OpenApiConfiguration cfg) 
{
         JsonMapObject petPut = pet.getJsonMapProperty("put");
         assertEquals(7, petPut.size());
         testCommonVerbProps(petPut, "updatePet");
         assertNull(petPut.getProperty("parameters"));
-        JsonMapObject content = verifyRequestBodyGetContent(petPut);
-        assertEquals(2, content.size());
-        verifySimpleContent(content, "application/json", "Pet");
-        verifySimpleContent(content, "application/xml", "Pet");
+        if (cfg.isCreateRequestBodies()) {
+            verifyRequestBodyRef(petPut, "Pet");
+        } else {
+            JsonMapObject content = verifyRequestBodyContent(petPut);
+            assertEquals(2, content.size());
+            verifySimpleContent(content, "application/json", "Pet");
+            verifySimpleContent(content, "application/xml", "Pet");
+        }
         JsonMapObject responses = petPut.getJsonMapProperty("responses");
         assertEquals(3, responses.size());
         assertNotNull(responses.getProperty("400"));
@@ -678,11 +728,32 @@ public class SwaggerToOpenApiConversionUtilsTest extends 
Assert {
         assertNotNull(sw3.getListMapProperty("tags"));
     }
     
-    private void verifyComponentsProperty(JsonMapObject sw3) {
+    private void verifyComponentsProperty(JsonMapObject sw3, 
OpenApiConfiguration cfg) {
         JsonMapObject comps = sw3.getJsonMapProperty("components");
         assertEquals(3, comps.size());
         JsonMapObject requestBodies = 
comps.getJsonMapProperty("requestBodies");
-        assertEquals(0, requestBodies.size());
+        if (cfg.isCreateRequestBodies()) {
+            assertEquals(4, requestBodies.size());
+            // UserArray
+            JsonMapObject userArrayContent = 
verifyRequestBodyContent(requestBodies, "UserArray");
+            assertEquals(1, userArrayContent.size());
+            verifyArrayContent(userArrayContent, "application/json", "User");
+            // Pet
+            JsonMapObject petContent = verifyRequestBodyContent(requestBodies, 
"Pet");
+            assertEquals(2, petContent.size());
+            verifySimpleContent(petContent, "application/json", "Pet");
+            verifySimpleContent(petContent, "application/xml", "Pet");
+            // User
+            JsonMapObject userContent = 
verifyRequestBodyContent(requestBodies, "User");
+            assertEquals(1, userContent.size());
+            verifySimpleContent(userContent, "application/json", "User");
+            // Order
+            JsonMapObject orderContent = 
verifyRequestBodyContent(requestBodies, "Order");
+            assertEquals(1, orderContent.size());
+            verifySimpleContent(orderContent, "application/json", "Order");
+        } else {
+            assertEquals(0, requestBodies.size());
+        }
         assertNotNull(comps.getJsonMapProperty("schemas"));
         assertNotNull(comps.getJsonMapProperty("securitySchemes"));
         

-- 
To stop receiving notification emails like this one, please contact
['"commits@cxf.apache.org" <commits@cxf.apache.org>'].

Reply via email to