blob: f2de712bd2c87b36a2609a02e85fc66324db7a64 [file] [log] [blame]
/* 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 xmlobject.checkin;
import org.apache.xmlbeans.XmlCursor;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class XPathTest {
@Test
public void testPath() throws XmlException {
final XmlObject obj = XmlObject.Factory.parse(
"<a>" +
"<b>" +
"<c>val1</c>" +
"<d><c>val2</c></d>" +
"</b>" +
"<c>val3</c>" +
"</a>");
final XmlCursor c = obj.newCursor();
c.selectPath(".//b/c");
int selCount = c.getSelectionCount();
assertEquals("SelectionCount", 1, selCount);
while (c.hasNextSelection()) {
c.toNextSelection();
assertTrue("OnStartElement", c.isStart());
assertEquals("TextValue", "val1", c.getTextValue());
System.out.println(" -> " + c.getObject());
}
c.dispose();
}
@Test
public void testPath2() throws XmlException {
final XmlObject obj = XmlObject.Factory.parse(
"<a>" +
"<b>" +
"<c>val1</c>" +
"<d>" +
"<c>val2</c>" +
"<b><c>val3</c></b>" +
"</d>" +
"</b>" +
"<c>val4</c>" +
"</a>");
final XmlCursor c = obj.newCursor();
c.selectPath(".//b/c");
int selCount = c.getSelectionCount();
assertEquals("SelectionCount", 2, selCount);
assertTrue("hasNextSelection", c.hasNextSelection());
c.toNextSelection();
System.out.println(" -> " + c.getObject());
assertTrue("OnStartElement", c.isStart());
assertEquals("TextValue", "val1", c.getTextValue());
assertTrue("hasNextSelection2", c.hasNextSelection());
c.toNextSelection();
System.out.println(" -> " + c.getObject());
assertTrue("OnStartElement2", c.isStart());
assertEquals("TextValue2", "val3", c.getTextValue());
c.dispose();
}
@Test
public void testPath3() throws XmlException {
final XmlObject obj = XmlObject.Factory.parse(
"<a>" +
"<b>" +
"<c>val1</c>" +
"<d>" +
"<c>val2</c>" +
"<b>" +
"<c>val3" +
"<c>val5</c>" +
"</c>" +
"</b>" +
"</d>" +
"</b>" +
"<c>val4</c>" +
"</a>");
final XmlCursor c = obj.newCursor();
c.selectPath(".//b/c//c");
int selCount = c.getSelectionCount();
assertEquals("SelectionCount", 1, selCount);
while (c.hasNextSelection()) {
c.toNextSelection();
System.out.println(" -> " + c.getObject());
assertTrue("OnStartElement", c.isStart());
assertEquals("TextValue", "val5", c.getTextValue());
}
c.dispose();
}
}