Refactor OpenApiTestUtils methods
[netconf.git] / restconf / sal-rest-docgen / src / test / java / org / opendaylight / netconf / sal / rest / doc / impl / AbstractApiDocTest.java
index b6c49ff25f942f3f2a812d06f13bc0beb5014b1f..05b0076d0830ce8585bcc70285114cbabfc8c01f 100644 (file)
@@ -13,6 +13,7 @@ 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;
@@ -21,18 +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> 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;
+    }
 }