Refactor OpenApiTestUtils methods
[netconf.git] / restconf / sal-rest-docgen / src / test / java / org / opendaylight / netconf / sal / rest / doc / impl / AbstractApiDocTest.java
index 4f191b4b7fe5697d059233ac4889ad3ac6da6bb8..05b0076d0830ce8585bcc70285114cbabfc8c01f 100644 (file)
@@ -10,6 +10,10 @@ package org.opendaylight.netconf.sal.rest.doc.impl;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import java.util.ArrayList;
+import java.util.List;
+import javax.ws.rs.core.UriInfo;
 import org.junit.BeforeClass;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
@@ -18,11 +22,37 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 public abstract class AbstractApiDocTest {
     static EffectiveModelContext CONTEXT;
     static DOMSchemaService SCHEMA_SERVICE;
+    static UriInfo URI_INFO;
 
     @BeforeClass
-    public static void beforeClass() {
+    public static void beforeClass() throws Exception {
         CONTEXT = YangParserTestUtils.parseYangResourceDirectory("/yang");
         SCHEMA_SERVICE = mock(DOMSchemaService.class);
         when(SCHEMA_SERVICE.getGlobalContext()).thenReturn(CONTEXT);
+        URI_INFO = DocGenTestHelper.createMockUriInfo("http://localhost/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;
     }
 }