childSchema.put(TYPE_KEY, OBJECT_TYPE);
final ObjectNode xml = JsonNodeFactory.instance.objectNode();
xml.put(NAME_KEY, isInput ? INPUT : OUTPUT);
+ xml.put(NAMESPACE_KEY, container.getQName().getNamespace().toString());
childSchema.set(XML_KEY, xml);
childSchema.put(TITLE_KEY, filename);
final String discriminator =
xmlSchema.put(TYPE_KEY, OBJECT);
final ObjectNode xml = JsonNodeFactory.instance.objectNode();
xml.put(NAME_KEY, INPUT);
+ xml.put("namespace", input.getQName().getNamespace().toString());
xmlSchema.set(XML_KEY, xml);
final ObjectNode xmlTypeValue = JsonNodeFactory.instance.objectNode();
xmlTypeValue.set(SCHEMA_KEY, xmlSchema);
}
}
+ /**
+ * Test that checks if namespace for rpc is present.
+ */
+ @Test
+ public void testRpcNamespace() {
+ final var doc = (OpenApiObject) generator.getApiDeclaration(NAME_2, REVISION_DATE, URI_INFO,
+ ApiDocServiceImpl.OAversion.V3_0);
+ assertNotNull(doc);
+ final var path = doc.getPaths().get("/rests/operations/toaster:cancel-toast");
+ assertNotNull(path);
+ final var post = path.get("post");
+ assertNotNull(post);
+ final var requestBody = post.get("requestBody");
+ assertNotNull(requestBody);
+ final var content = requestBody.get("content");
+ assertNotNull(content);
+ final var application = content.get("application/xml");
+ assertNotNull(application);
+ final var schema = application.get("schema");
+ assertNotNull(schema);
+ final var xml = schema.get("xml");
+ assertNotNull(xml);
+ final var namespace = xml.get("namespace");
+ assertNotNull(namespace);
+ assertEquals("http://netconfcentral.org/ns/toaster", namespace.asText());
+ }
+
+ /**
+ * Test that checks if namespace for actions is present.
+ */
+ @Test
+ public void testActionsNamespace() {
+ final var doc = (OpenApiObject) generator.getApiDeclaration("action-types", null, URI_INFO,
+ ApiDocServiceImpl.OAversion.V3_0);
+ assertNotNull(doc);
+ final var path = doc.getPaths().get("/rests/operations/action-types:multi-container/inner-container/action");
+ assertNotNull(path);
+ final var post = path.get("post");
+ assertNotNull(post);
+ final var requestBody = post.get("requestBody");
+ assertNotNull(requestBody);
+ final var content = requestBody.get("content");
+ assertNotNull(content);
+ final var application = content.get("application/xml");
+ assertNotNull(application);
+ final var schema = application.get("schema");
+ assertNotNull(schema);
+ final var xml = schema.get("xml");
+ assertNotNull(xml);
+ final var namespace = xml.get("namespace");
+ assertNotNull(namespace);
+ assertEquals("urn:ietf:params:xml:ns:yang:test:action:types", namespace.asText());
+ }
+
/**
* Test JSON and XML references for request operation.
*/
// verify that the filtered set (from openapi for all modules) is the same as the set from openapi for toaster
assertEquals(toasterPathsFromToaster, toasterPathsFromAll);
}
+
+ /**
+ * Test that checks if namespace for rpc is present.
+ */
+ @Test
+ public void testRpcNamespace() {
+ swagger.onMountPointCreated(INSTANCE_ID);
+ final OpenApiObject openApiToaster = (OpenApiObject) swagger.getMountPointApi(uriDeviceToaster, DEVICE_ID,
+ TOASTER, TOASTER_REVISION, OAversion.V3_0);
+ final var path = openApiToaster
+ .getPaths().get("/rests/operations/nodes/node=123/yang-ext:mount/toaster:cancel-toast");
+ assertNotNull(path);
+ final var post = path.get("post");
+ assertNotNull(post);
+ final var requestBody = post.get("requestBody");
+ assertNotNull(requestBody);
+ final var content = requestBody.get("content");
+ assertNotNull(content);
+ final var application = content.get("application/xml");
+ assertNotNull(application);
+ final var schema = application.get("schema");
+ assertNotNull(schema);
+ final var xml = schema.get("xml");
+ assertNotNull(xml);
+ final var namespace = xml.get("namespace");
+ assertNotNull(namespace);
+ assertEquals("http://netconfcentral.org/ns/toaster", namespace.asText());
+ }
+
+ /**
+ * Test that checks if namespace for actions is present.
+ */
+ @Test
+ public void testActionsNamespace() {
+ swagger.onMountPointCreated(INSTANCE_ID);
+ final var openApiAll = (OpenApiObject) swagger.getMountPointApi(uriDeviceAll, DEVICE_ID,
+ Optional.empty(), OAversion.V3_0);
+ final var path = openApiAll.getPaths().get(
+ "/rests/operations/nodes/node=123/yang-ext:mount/action-types:multi-container/inner-container/action");
+ assertNotNull(path);
+ final var post = path.get("post");
+ assertNotNull(post);
+ final var requestBody = post.get("requestBody");
+ assertNotNull(requestBody);
+ final var content = requestBody.get("content");
+ assertNotNull(content);
+ final var application = content.get("application/xml");
+ assertNotNull(application);
+ final var schema = application.get("schema");
+ assertNotNull(schema);
+ final var xml = schema.get("xml");
+ assertNotNull(xml);
+ final var namespace = xml.get("namespace");
+ assertNotNull(namespace);
+ assertEquals("urn:ietf:params:xml:ns:yang:test:action:types", namespace.asText());
+ }
}
*/
package org.opendaylight.netconf.sal.rest.doc.impl;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import com.fasterxml.jackson.databind.node.ObjectNode;
ApiDocServiceImpl.OAversion.V2_0, true);
assertNotNull(jsonObject);
}
+
+ /**
+ * Test that checks if namespace for rpc is present.
+ */
+ @Test
+ public void testRpcNamespace() throws Exception {
+ final var module = CONTEXT.findModule("toaster", Revision.of("2009-11-20")).orElseThrow();
+ final var generator = new DefinitionGenerator();
+ final var jsonObject = generator.convertToJsonSchema(module, CONTEXT, new DefinitionNames(),
+ ApiDocServiceImpl.OAversion.V2_0, true);
+ assertNotNull(jsonObject);
+ final var schema = jsonObject.get("toaster_make-toast_input");
+ assertNotNull(schema);
+ final var xml = schema.get("xml");
+ assertNotNull(xml);
+ final var namespace = xml.get("namespace");
+ assertNotNull(namespace);
+ assertEquals("http://netconfcentral.org/ns/toaster", namespace.asText());
+ }
+
+ /**
+ * Test that checks if namespace for actions is present.
+ */
+ @Test
+ public void testActionsNamespace() throws IOException {
+ final var module = CONTEXT.findModule("action-types").orElseThrow();
+ final var generator = new DefinitionGenerator();
+ final var jsonObject = generator.convertToJsonSchema(module, CONTEXT, new DefinitionNames(),
+ ApiDocServiceImpl.OAversion.V2_0, true);
+ assertNotNull(jsonObject);
+ final var schema = jsonObject.get("action-types_container-action_input");
+ assertNotNull(schema);
+ final var xml = schema.get("xml");
+ assertNotNull(xml);
+ final var namespace = xml.get("namespace");
+ assertNotNull(namespace);
+ assertEquals("urn:ietf:params:xml:ns:yang:test:action:types", namespace.asText());
+ }
}