/* * Copyright (C) 2009 eXo Platform SAS. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.exoplatform.services.jcr.impl.name; import junit.framework.TestCase; import org.exoplatform.services.jcr.datamodel.IllegalNameException; import org.exoplatform.services.jcr.datamodel.InternalQName; import org.exoplatform.services.jcr.datamodel.QPath; import org.exoplatform.services.jcr.impl.Constants; /** * Created by The eXo Platform SAS. * * @author <a href="mailto:geaz@users.sourceforge.net">Gennady Azarenkov</a> * @version $Id: TestPath.java 11907 2008-03-13 15:36:21Z ksm $ */ public class TestPath extends TestCase { public void testParseQName() throws Exception { InternalQName qname = InternalQName.parse(Constants.PRIMARY_TYPE_URI); assertEquals(Constants.PRIMARY_TYPE_URI, qname.getAsString()); assertEquals("primaryType", qname.getName()); assertEquals("http://www.jcp.org/jcr/1.0", qname.getNamespace()); qname = InternalQName.parse("[]test"); assertEquals("[]test", qname.getAsString()); assertEquals("test", qname.getName()); assertEquals("", qname.getNamespace()); InternalQName qname1 = InternalQName.parse("[]test"); InternalQName qname2 = InternalQName.parse("[]test1"); assertTrue(qname.equals(qname1)); assertFalse(qname.equals(qname2)); try { qname = InternalQName.parse("test"); fail("Exception should have been thrown"); } catch (IllegalNameException e) { } } public void testParseQPath() throws Exception { QPath path = QPath.parse(Constants.ROOT_URI); assertEquals("", path.getName().getName()); assertEquals("", path.getName().getNamespace()); assertEquals(1, path.getIndex()); assertEquals(1, path.getDepth() + 1); assertEquals(Constants.ROOT_URI, path.getAsString()); path = QPath.parse("[]:1[]root:2[]node1:1[http://www.exoplatform.com/jcr/exo/1.0]node2:3"); assertEquals("[]:1[]root:2[]node1:1[http://www.exoplatform.com/jcr/exo/1.0]node2:3", path.getAsString()); assertEquals(3, path.getIndex()); assertEquals(3, path.getDepth()); QPath path1 = QPath.parse("[]:1[]root:2[]node1:1[http://www.exoplatform.com/jcr/exo/1.0]node2:3"); assertTrue(path.equals(path1)); path = QPath.parse("[]:1[]root:1[]node1:1[http://www.exoplatform.com/jcr/exo/1.0]node2"); assertEquals("[]:1[]root:1[]node1:1[http://www.exoplatform.com/jcr/exo/1.0]node2:1", path.getAsString()); assertEquals(1, path.getIndex()); assertEquals("[http://www.exoplatform.com/jcr/exo/1.0]node2", path.getName().getAsString()); assertFalse(path.equals(path1)); } public void testMakeQPath() throws Exception { QPath root = QPath.parse(Constants.ROOT_URI); QPath path = QPath.makeChildPath(root, InternalQName.parse("[http://www.exoplatform.com/jcr/exo/1.0]test")); assertEquals(1, path.getIndex()); assertEquals("test", path.getName().getName()); assertTrue(path.isDescendantOf(root, true)); assertEquals(root, path.makeParentPath()); } }