Refactor OpenApiTestUtils methods 35/108635/2
authorSamuel Schneider <samuel.schneider@pantheon.tech>
Tue, 24 Oct 2023 13:13:42 +0000 (15:13 +0200)
committerIvan Hrasko <ivan.hrasko@pantheon.tech>
Tue, 31 Oct 2023 08:56:29 +0000 (08:56 +0000)
Change getPathParameters into getPathGetParameters and add
getPathPostParameters.

We assume that all paths present in OpenApi should have at least
GET example in the documentation.

Thus we can use GET operation as a base operation to get number of
parameters in path. We just need to drop 'content' parameter.

For actions and RPCs we can use getPathPostParameters method.

JIRA: NETCONF-1101
Change-Id: I2a0a24a5a567d7dd95b7adf6ec13dddb391fab51
Signed-off-by: Ivan Hrasko <ivan.hrasko@pantheon.tech>
Signed-off-by: Samuel Schneider <samuel.schneider@pantheon.tech>
(cherry picked from commit 88403faca52518bc4d9674190f17fe934e6f23d1)

restconf/sal-rest-docgen/src/test/java/org/opendaylight/netconf/sal/rest/doc/impl/AbstractApiDocTest.java
restconf/sal-rest-docgen/src/test/java/org/opendaylight/netconf/sal/rest/doc/impl/ApiDocGeneratorRFC8040Test.java
restconf/sal-rest-docgen/src/test/java/org/opendaylight/netconf/sal/rest/doc/impl/MountPointSwaggerTest.java

index 55debd2189dc5900e3aac58da9f9a5524ae8c31f..05b0076d0830ce8585bcc70285114cbabfc8c01f 100644 (file)
@@ -32,10 +32,27 @@ public abstract class AbstractApiDocTest {
         URI_INFO = DocGenTestHelper.createMockUriInfo("http://localhost/path");
     }
 
-    protected static List<String> getPathParameters(final ObjectNode paths, final String path) {
+    protected static List<String> getPathPostParameters(final ObjectNode paths, final String path) {
         final var params = new ArrayList<String>();
         paths.get(path).get("post").get("parameters").elements()
             .forEachRemaining(p -> params.add(p.get("name").asText()));
         return params;
     }
+
+    /**
+     * Get path parameters names for {@code path} for GET operation.
+     *
+     * @return {@link List} of parameters excluding `content` parameter
+     */
+    public static List<String> getPathGetParameters(final ObjectNode paths, final String path) {
+        final var params = new ArrayList<String>();
+        paths.get(path).get("get").get("parameters").elements()
+                .forEachRemaining(p -> {
+                    final String name = p.get("name").asText();
+                    if (!"content".equals(name)) {
+                        params.add(name);
+                    }
+                });
+        return params;
+    }
 }
index 9d525ca6fec85f9004971023f079066326df7cef..c9a7ab179d84c9f903279ac8960476cf7863a576 100644 (file)
@@ -226,23 +226,23 @@ public final class ApiDocGeneratorRFC8040Test extends AbstractApiDocTest {
 
         var pathToList1 = "/rests/data/path-params-test:cont/list1={name}";
         assertTrue(doc.getPaths().has(pathToList1));
-        assertEquals(List.of("name"), getPathParameters(doc.getPaths(), pathToList1));
+        assertEquals(List.of("name"), getPathGetParameters(doc.getPaths(), pathToList1));
 
         var pathToList2 = "/rests/data/path-params-test:cont/list1={name}/list2={name1}";
         assertTrue(doc.getPaths().has(pathToList2));
-        assertEquals(List.of("name", "name1"), getPathParameters(doc.getPaths(), pathToList2));
+        assertEquals(List.of("name", "name1"), getPathGetParameters(doc.getPaths(), pathToList2));
 
         var pathToList3 = "/rests/data/path-params-test:cont/list3={name}";
         assertTrue(doc.getPaths().has(pathToList3));
-        assertEquals(List.of("name"), getPathParameters(doc.getPaths(), pathToList3));
+        assertEquals(List.of("name"), getPathGetParameters(doc.getPaths(), pathToList3));
 
         var pathToList4 = "/rests/data/path-params-test:cont/list1={name}/list4={name1}";
         assertTrue(doc.getPaths().has(pathToList4));
-        assertEquals(List.of("name", "name1"), getPathParameters(doc.getPaths(), pathToList4));
+        assertEquals(List.of("name", "name1"), getPathGetParameters(doc.getPaths(), pathToList4));
 
         var pathToList5 = "/rests/data/path-params-test:cont/list1={name}/cont2";
         assertTrue(doc.getPaths().has(pathToList4));
-        assertEquals(List.of("name"), getPathParameters(doc.getPaths(), pathToList5));
+        assertEquals(List.of("name"), getPathGetParameters(doc.getPaths(), pathToList5));
     }
 
     private static void verifyThatPropertyDoesNotHaveRequired(final List<String> expected,
@@ -299,11 +299,11 @@ public final class ApiDocGeneratorRFC8040Test extends AbstractApiDocTest {
 
         final var pathWithParameters = "/rests/operations/action-types:list={name}/list-action";
         assertTrue(doc.getPaths().has(pathWithParameters));
-        assertEquals(List.of("name"), getPathParameters(doc.getPaths(), pathWithParameters));
+        assertEquals(List.of("name"), getPathPostParameters(doc.getPaths(), pathWithParameters));
 
         final var pathWithoutParameters = "/rests/operations/action-types:multi-container/inner-container/action";
         assertTrue(doc.getPaths().has(pathWithoutParameters));
-        assertEquals(List.of(), getPathParameters(doc.getPaths(), pathWithoutParameters));
+        assertEquals(List.of(), getPathPostParameters(doc.getPaths(), pathWithoutParameters));
     }
 
     @Test
index c1db115ba1353bd41d662d865d18703ec53255ab..623a166acf85684358d353459f859b676ae8a49d 100644 (file)
@@ -141,23 +141,23 @@ public final class MountPointSwaggerTest extends AbstractApiDocTest {
 
         var pathToList1 = "/rests/data/nodes/node=123/yang-ext:mount/path-params-test:cont/list1={name}";
         assertTrue(mountPointApi.getPaths().has(pathToList1));
-        assertEquals(List.of("name"), getPathParameters(mountPointApi.getPaths(), pathToList1));
+        assertEquals(List.of("name"), getPathGetParameters(mountPointApi.getPaths(), pathToList1));
 
         var pathToList2 = "/rests/data/nodes/node=123/yang-ext:mount/path-params-test:cont/list1={name}/list2={name1}";
         assertTrue(mountPointApi.getPaths().has(pathToList2));
-        assertEquals(List.of("name", "name1"), getPathParameters(mountPointApi.getPaths(), pathToList2));
+        assertEquals(List.of("name", "name1"), getPathGetParameters(mountPointApi.getPaths(), pathToList2));
 
         var pathToList3 = "/rests/data/nodes/node=123/yang-ext:mount/path-params-test:cont/list3={name}";
         assertTrue(mountPointApi.getPaths().has(pathToList3));
-        assertEquals(List.of("name"), getPathParameters(mountPointApi.getPaths(), pathToList3));
+        assertEquals(List.of("name"), getPathGetParameters(mountPointApi.getPaths(), pathToList3));
 
         var pathToList4 = "/rests/data/nodes/node=123/yang-ext:mount/path-params-test:cont/list1={name}/list4={name1}";
         assertTrue(mountPointApi.getPaths().has(pathToList4));
-        assertEquals(List.of("name", "name1"), getPathParameters(mountPointApi.getPaths(), pathToList4));
+        assertEquals(List.of("name", "name1"), getPathGetParameters(mountPointApi.getPaths(), pathToList4));
 
         var pathToList5 = "/rests/data/nodes/node=123/yang-ext:mount/path-params-test:cont/list1={name}/cont2";
         assertTrue(mountPointApi.getPaths().has(pathToList5));
-        assertEquals(List.of("name"), getPathParameters(mountPointApi.getPaths(), pathToList5));
+        assertEquals(List.of("name"), getPathGetParameters(mountPointApi.getPaths(), pathToList5));
     }
 
     /**
@@ -193,12 +193,12 @@ public final class MountPointSwaggerTest extends AbstractApiDocTest {
         final var pathWithParameters =
             "/rests/operations/nodes/node=123/yang-ext:mount/action-types:list={name}/list-action";
         assertTrue(mountPointApi.getPaths().has(pathWithParameters));
-        assertEquals(List.of("name"), getPathParameters(mountPointApi.getPaths(), pathWithParameters));
+        assertEquals(List.of("name"), getPathPostParameters(mountPointApi.getPaths(), pathWithParameters));
 
         final var pathWithoutParameters =
             "/rests/operations/nodes/node=123/yang-ext:mount/action-types:multi-container/inner-container/action";
         assertTrue(mountPointApi.getPaths().has(pathWithoutParameters));
-        assertEquals(List.of(), getPathParameters(mountPointApi.getPaths(), pathWithoutParameters));
+        assertEquals(List.of(), getPathPostParameters(mountPointApi.getPaths(), pathWithoutParameters));
     }
 
     @Test