+ @Test
+ public void testEditConfigGetElementByTagName() throws Exception {
+ EditConfig editConfig = new EditConfig("test_edit-config", Mockito.mock(CurrentSchemaContext.class),
+ Mockito.mock(TransactionProvider.class));
+
+ String stringWithoutPrefix =
+ "<rpc xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"0\">\n"
+ + " <edit-config>\n"
+ + " <target>\n"
+ + " <candidate/>\n"
+ + " </target>\n"
+ + " </edit-config>\n"
+ + "</rpc>";
+ XmlElement xe = getXmlElement(stringWithoutPrefix);
+ NodeList nodeList = editConfig.getElementsByTagName(xe, TARGET_KEY);
+ Assert.assertEquals(1, nodeList.getLength());
+
+ String stringWithPrefix =
+ "<nc:rpc xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"0\">\n"
+ + " <nc:edit-config>\n"
+ + " <nc:target>\n"
+ + " <nc:candidate/>\n"
+ + " </nc:target>\n"
+ + " </nc:edit-config>\n"
+ + "</nc:rpc>";
+
+ xe = getXmlElement(stringWithPrefix);
+ nodeList = editConfig.getElementsByTagName(xe, TARGET_KEY);
+ Assert.assertEquals(1, nodeList.getLength());
+
+ String stringWithoutTarget =
+ "<nc:rpc xmlns:nc=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"0\">\n"
+ + " <nc:edit-config>\n"
+ + " <nc:target>\n"
+ + " </nc:target>\n"
+ + " </nc:edit-config>\n"
+ + "</nc:rpc>";
+ xe = getXmlElement(stringWithoutTarget);
+
+ try {
+ nodeList = editConfig.getElementsByTagName(xe, TARGET_KEY);
+ XmlElement.fromDomElement((Element) nodeList.item(0)).getOnlyChildElement();
+ Assert.fail("Not specified target, we should fail");
+ } catch (DocumentedException documentedException) {
+ // Ignore
+ }
+
+ }
+
+ private XmlElement getXmlElement(final String elementAsString) throws Exception {
+ Document document = XmlUtil.readXmlToDocument(elementAsString);
+ Element element = document.getDocumentElement();
+ return XmlElement.fromDomElement(element);
+ }
+