/* Copyright 2004 The Apache Software Foundation | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
package xmlcursor.xpath.complex.detailed; | |
import org.apache.xmlbeans.XmlCursor; | |
import org.apache.xmlbeans.XmlObject; | |
import org.junit.Test; | |
import xmlcursor.common.Common; | |
import javax.xml.namespace.QName; | |
import static org.junit.Assert.assertEquals; | |
public class XPathNodeTest { | |
@Test | |
public void testNodeEquality() throws Exception { | |
XmlCursor c = XmlObject.Factory.parse( | |
"<root><book isbn='012345' id='09876'/></root>") | |
.newCursor(); | |
c.selectPath("//book[@isbn='012345'] is //book[@id='09876']"); | |
assertEquals(1, c.getSelectionCount()); | |
c.toNextSelection(); | |
assertEquals(Common.wrapInXmlFrag("true"), c.xmlText()); | |
} | |
@Test | |
public void testNodeOrder() throws Exception { | |
XmlCursor c = XmlObject.Factory.parse( | |
"<root><book isbn='012345'/><book id='09876'/></root>") | |
.newCursor(); | |
c.selectPath("//book[@isbn='012345'] << //book[@id='09876']"); | |
assertEquals(1, c.getSelectionCount()); | |
c.toNextSelection(); | |
assertEquals(Common.wrapInXmlFrag("true"), c.xmlText()); | |
c.selectPath("//book[@isbn='012345'] >> //book[@id='09876']"); | |
assertEquals(1, c.getSelectionCount()); | |
c.toNextSelection(); | |
assertEquals(Common.wrapInXmlFrag("false"), c.xmlText()); | |
} | |
@Test | |
public void testParent() throws Exception { | |
String input = "<A><B><C></C></B></A>"; | |
XmlObject o; | |
XmlCursor c = XmlObject.Factory.parse(input).newCursor(); | |
c.toFirstContentToken(); | |
c.toFirstChild(); | |
c.toFirstChild(); | |
o = c.getObject(); | |
assertEquals("<C/>", o.newCursor().xmlText()); | |
XmlObject[] res = o.selectPath(".."); | |
assertEquals(1, res.length); | |
assertEquals("<B><C/></B>", res[0].newCursor().xmlText()); | |
} | |
@Test | |
public void testParent1() throws Exception { | |
String input = | |
"<AttributeCertificate " + | |
"xmlns=\"http://www.eurecom.fr/security/xac#\" " + | |
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" + | |
"<Content>" + | |
"<Validity>" + | |
"<ValidityFrom>2005-02-10T11:02:57.590+01:00</ValidityFrom>" + | |
"<ValidityTo>2006-02-10T11:02:57.590+01:00</ValidityTo>" + | |
"</Validity></Content></AttributeCertificate>"; | |
XmlObject o; | |
XmlCursor c = XmlObject.Factory.parse(input).newCursor(); | |
c.toFirstContentToken(); | |
c.toFirstChild(); | |
c.toFirstChild(); | |
o = c.getObject(); | |
QName qn = o.newCursor().getName(); | |
assertEquals("http://www.eurecom.fr/security/xac#", qn.getNamespaceURI()); | |
assertEquals("Validity", qn.getLocalPart()); | |
XmlObject[] res = o.selectPath(".."); | |
assertEquals(1, res.length); | |
qn = res[0].newCursor().getName(); | |
assertEquals("http://www.eurecom.fr/security/xac#", qn.getNamespaceURI()); | |
assertEquals("Content", qn.getLocalPart()); | |
} | |
} |