| /* Copyright 2007 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.checkin; | |
| import org.apache.xmlbeans.XmlObject; | |
| import org.junit.Test; | |
| import xmlcursor.common.BasicCursorTestCase; | |
| import javax.xml.namespace.QName; | |
| import static org.junit.Assert.*; | |
| /** | |
| * checkin tests for XmlCursor toNextSibling methods | |
| * | |
| */ | |
| public class ToNextSiblingTest extends BasicCursorTestCase { | |
| private static String xml0 = "<root><a/><b/><c/></root>"; | |
| private static String xml1 = "<root xmlns=\"somenamespace\"><a/><b/><c/></root>"; | |
| /** test toNextSibling(String name) where there is no namespace */ | |
| @Test | |
| public void testName() throws Exception { | |
| m_xc = XmlObject.Factory.parse(xml0).newCursor(); | |
| m_xc.toNextToken(); | |
| m_xc.toChild(0); | |
| assertEquals("", m_xc.getName().getNamespaceURI()); | |
| assertEquals("a", m_xc.getName().getLocalPart()); | |
| m_xc.push(); | |
| // name exists | |
| assertTrue(m_xc.toNextSibling("c")); | |
| assertEquals("", m_xc.getName().getNamespaceURI()); | |
| assertEquals("c", m_xc.getName().getLocalPart()); | |
| m_xc.pop(); | |
| // name does not exist | |
| assertFalse(m_xc.toNextSibling("d")); | |
| // cursor hasn't moved | |
| assertEquals("", m_xc.getName().getNamespaceURI()); | |
| assertEquals("a", m_xc.getName().getLocalPart()); | |
| } | |
| /** test toNextSibling(String name) where there is a namespace */ | |
| @Test | |
| public void testIncompleteName() throws Exception { | |
| m_xc = XmlObject.Factory.parse(xml1).newCursor(); | |
| m_xc.toNextToken(); | |
| m_xc.toChild(0); | |
| assertEquals("somenamespace", m_xc.getName().getNamespaceURI()); | |
| assertEquals("a", m_xc.getName().getLocalPart()); | |
| // name exists, but is incomplete by itself without the namespace | |
| assertFalse(m_xc.toNextSibling("c")); | |
| assertEquals("somenamespace", m_xc.getName().getNamespaceURI()); | |
| assertEquals("a", m_xc.getName().getLocalPart()); | |
| } | |
| /** test toNextSibling(String namespace, String localname) */ | |
| @Test | |
| public void testNamespaceAndLocalName0() throws Exception { | |
| m_xc = XmlObject.Factory.parse(xml0).newCursor(); | |
| m_xc.toNextToken(); | |
| m_xc.toChild(0); | |
| assertEquals("", m_xc.getName().getNamespaceURI()); | |
| assertEquals("a", m_xc.getName().getLocalPart()); | |
| m_xc.push(); | |
| // name exists | |
| assertTrue(m_xc.toNextSibling("", "c")); | |
| assertEquals("", m_xc.getName().getNamespaceURI()); | |
| assertEquals("c", m_xc.getName().getLocalPart()); | |
| m_xc.pop(); | |
| // name does not exist | |
| assertFalse(m_xc.toNextSibling("", "d")); | |
| // cursor hasn't moved | |
| assertEquals("", m_xc.getName().getNamespaceURI()); | |
| assertEquals("a", m_xc.getName().getLocalPart()); | |
| } | |
| /** test toNextSibling(String namespace, String localname) */ | |
| @Test | |
| public void testNamespaceAndLocalName1() throws Exception { | |
| m_xc = XmlObject.Factory.parse(xml1).newCursor(); | |
| m_xc.toNextToken(); | |
| m_xc.toChild(0); | |
| assertEquals("somenamespace", m_xc.getName().getNamespaceURI()); | |
| assertEquals("a", m_xc.getName().getLocalPart()); | |
| m_xc.push(); | |
| // name exists | |
| assertTrue(m_xc.toNextSibling("somenamespace", "c")); | |
| assertEquals("somenamespace", m_xc.getName().getNamespaceURI()); | |
| assertEquals("c", m_xc.getName().getLocalPart()); | |
| m_xc.pop(); | |
| // name does not exist | |
| assertFalse(m_xc.toNextSibling("somenamespace", "d")); | |
| // cursor hasn't moved | |
| assertEquals("somenamespace", m_xc.getName().getNamespaceURI()); | |
| assertEquals("a", m_xc.getName().getLocalPart()); | |
| } | |
| /** test toNextSibling(QName qName) */ | |
| @Test | |
| public void testQName() throws Exception { | |
| m_xc = XmlObject.Factory.parse(xml1).newCursor(); | |
| m_xc.toNextToken(); | |
| m_xc.toChild(0); | |
| assertEquals("somenamespace", m_xc.getName().getNamespaceURI()); | |
| assertEquals("a", m_xc.getName().getLocalPart()); | |
| m_xc.push(); | |
| // name exists | |
| assertTrue(m_xc.toNextSibling(new QName("somenamespace", "c"))); | |
| assertEquals("somenamespace", m_xc.getName().getNamespaceURI()); | |
| assertEquals("c", m_xc.getName().getLocalPart()); | |
| m_xc.pop(); | |
| // name does not exist | |
| assertFalse(m_xc.toNextSibling(new QName("somenamespace", "d"))); | |
| // cursor hasn't moved | |
| assertEquals("somenamespace", m_xc.getName().getNamespaceURI()); | |
| assertEquals("a", m_xc.getName().getLocalPart()); | |
| } | |
| } |