You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrf-dev@ws.apache.org by ip...@apache.org on 2005/02/01 19:10:51 UTC

svn commit: r149427 - in incubator/apollo/trunk/src: java/org/apache/ws/util/XmlBeanUtils.java test/org/apache/ws/util/XmlBeanUtilsTestCase.java

Author: ips
Date: Tue Feb  1 10:10:49 2005
New Revision: 149427

URL: http://svn.apache.org/viewcvs?view=rev&rev=149427
Log:
fixed addChildElement() methods

Modified:
    incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java
    incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java

Modified: incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java?view=diff&r1=149426&r2=149427
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/util/XmlBeanUtils.java Tue Feb  1 10:10:49 2005
@@ -268,10 +268,14 @@
     public static void addChildElement( XmlObject parentXBean,
                                         XmlObject childXBean )
     {
+        parentXBean = getRootElement( parentXBean );
         XmlCursor xCursor = parentXBean.newCursor();
-        xCursor.toEndDoc();
+        if ( xCursor.toLastChild() )
+        {
+            xCursor.toEndToken();
+        }
+        xCursor.toNextToken();
         childXBean = getRootElement( childXBean );
-        xCursor.toPrevToken();
         xCursor.insertElement( getName( childXBean ) );
         xCursor.toPrevSibling();
         xCursor.getObject().set( childXBean );
@@ -285,11 +289,15 @@
      * @param childName
      */
     public static XmlObject addChildElement( XmlObject parentXBean,
-                                        QName childName )
+                                             QName childName )
     {
+        parentXBean = getRootElement( parentXBean );
         XmlCursor xCursor = parentXBean.newCursor();
-        xCursor.toEndDoc();
-        xCursor.toPrevToken();
+        if ( xCursor.toLastChild() )
+        {
+            xCursor.toEndToken();
+        }
+        xCursor.toNextToken();
         xCursor.insertElement( childName );
         xCursor.toPrevSibling();
         XmlObject childXBean = xCursor.getObject();

Modified: incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java?view=diff&r1=149426&r2=149427
==============================================================================
--- incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java (original)
+++ incubator/apollo/trunk/src/test/org/apache/ws/util/XmlBeanUtilsTestCase.java Tue Feb  1 10:10:49 2005
@@ -20,6 +20,9 @@
 import org.apache.ws.resource.properties.impl.XmlBeansResourcePropertySet;
 import org.apache.xmlbeans.XmlObject;
 import org.apache.xmlbeans.XmlString;
+import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceDocument;
+import org.xmlsoap.schemas.ws.x2003.x03.addressing.EndpointReferenceType;
+import org.xmlsoap.schemas.ws.x2003.x03.addressing.ReferencePropertiesType;
 
 import javax.xml.namespace.QName;
 
@@ -29,76 +32,114 @@
  * @author Ian Springer
  */
 public class XmlBeanUtilsTestCase
-   extends AbstractResourcePropertiesTestCase
+        extends AbstractResourcePropertiesTestCase
 {
 
-   private XmlObject m_propsDoc;
+    private XmlObject m_propsDoc;
 
-   /**
-    * DOCUMENT_ME
-    *
-    * @throws Exception DOCUMENT_ME
-    */
-   public void setUp(  )
-   throws Exception
-   {
-      initResourcePropsDoc();
-      m_propsDoc = ((XmlBeansResourcePropertySet)m_resourcePropSet).toXmlObject();
-   }
-
-   /**
-    * Test for {@link XmlBeanUtils#addChildElement(org.apache.xmlbeans.XmlObject, org.apache.xmlbeans.XmlObject)}.
-    *
-    * @throws Exception on error
-    */
-   public void testAddChildElement(  )
-   throws Exception
-   {
-      final QName elemName = SushiPropertyQNames.IKA;
-      final String elemValue = "whatever";
-      XmlObject xBean = XmlObject.Factory.parse( "<" + elemName.getLocalPart() + " xmlns=\"" + elemName.getNamespaceURI() + "\">" + elemValue + "</" + elemName.getLocalPart() + ">" );
-      XmlBeanUtils.addChildElement( m_propsDoc, xBean );
-      XmlObject[] childElems = XmlBeanUtils.getChildElements( m_propsDoc, elemName );
-      assertEquals( 2, childElems.length );
-      assertTrue( childElems[1] instanceof XmlString );
-   }
-
-   /**
-    * DOCUMENT_ME
-    */
-   public void testGetChildElements(  )
-   {
-      XmlObject[] childElems = XmlBeanUtils.getChildElements( m_propsDoc, SushiPropertyQNames.IKA );
-      assertEquals( 1, childElems.length );
-      assertTrue( childElems[0] instanceof XmlString );
-   }
-
-   /**
-    * DOCUMENT_ME
-    */
-   public void testGetName(  )
-   {
-      assertEquals( SushiPropertyQNames.OPEN_SUSHI_PROPERTIES,
-                    XmlBeanUtils.getName( m_propsDoc ) );
-      // TODO: use reflection to reenable the below assertions
-      //assertEquals( SushiPropertyQNames.SUSHI_PROPERTIES,
-      //              XmlBeanUtils.getName( m_propsDoc.getSushiProperties() ) );
-      //assertEquals( SushiPropertyQNames.EBI,
-      //              XmlBeanUtils.getName( m_propsDoc.getSushiProperties(  ).xgetEbi(  ) ) );
-   }
-
-   /**
-    * DOCUMENT_ME
-    */
-   public void testRemoveChildElements(  )
-   {
-      XmlObject[] ebiChildElems = XmlBeanUtils.getChildElements( m_propsDoc, SushiPropertyQNames.EBI );
-      assertEquals( 1, ebiChildElems.length );
-      int totalChildElemsBefore = XmlBeanUtils.getChildElements( m_propsDoc, SushiPropertyQNames.EBI ).length;
-      XmlBeanUtils.removeChildElements( m_propsDoc, SushiPropertyQNames.EBI );
-      ebiChildElems = XmlBeanUtils.getChildElements( m_propsDoc, SushiPropertyQNames.EBI );
-      assertEquals( 0, ebiChildElems.length );
-      int totalChildElemsAfter = XmlBeanUtils.getChildElements( m_propsDoc, SushiPropertyQNames.EBI ).length;
-      assertEquals( 1, totalChildElemsBefore - totalChildElemsAfter );
-   }
+    /**
+     * DOCUMENT_ME
+     *
+     * @throws Exception DOCUMENT_ME
+     */
+    public void setUp()
+            throws Exception
+    {
+        initResourcePropsDoc();
+        m_propsDoc = ( (XmlBeansResourcePropertySet) m_resourcePropSet ).toXmlObject();
+    }
+
+    /**
+     * Test for {@link XmlBeanUtils#addChildElement(org.apache.xmlbeans.XmlObject, org.apache.xmlbeans.XmlObject)}.
+     * NOTE: This test relies on {@link XmlBeanUtils#getChildElements(org.apache.xmlbeans.XmlObject, javax.xml.namespace.QName)},
+     *       so it assumes that method has been tested elsewhere.
+     *
+     * @throws Exception on error
+     */
+    public void testAddChildElement()
+            throws Exception
+    {
+        final QName elemName = SushiPropertyQNames.IKA;
+        final String elemValue = "whatever";
+        final XmlObject xBean = XmlObject.Factory.parse(
+                "<" + elemName.getLocalPart() + " xmlns=\"" + elemName.getNamespaceURI() + "\">" + elemValue + "</" +
+                elemName.getLocalPart() +
+                ">" );
+        // first test adding to an element that already has children...
+        XmlBeanUtils.addChildElement( m_propsDoc, xBean );
+        XmlObject[] childElems = XmlBeanUtils.getChildElements( m_propsDoc, elemName );
+        assertEquals( 2, childElems.length );
+        assertTrue( childElems[1] instanceof XmlString );
+        // now test adding to a childless element...
+        EndpointReferenceDocument eprDoc = EndpointReferenceDocument.Factory.newInstance();
+        EndpointReferenceType epr = eprDoc.addNewEndpointReference();
+        ReferencePropertiesType refPropsType = epr.addNewReferenceProperties();
+        XmlBeanUtils.addChildElement( refPropsType, xBean );
+        childElems = XmlBeanUtils.getChildElements( refPropsType, elemName );
+        assertEquals( 1, childElems.length );
+        assertTrue( childElems[0] instanceof XmlString );
+    }
+
+    /**
+     * Test for {@link XmlBeanUtils#addChildElement(org.apache.xmlbeans.XmlObject, QName)}.
+     * NOTE: This test relies on {@link XmlBeanUtils#getChildElements(org.apache.xmlbeans.XmlObject, javax.xml.namespace.QName)},
+     *       so it assumes that method has been tested elsewhere.
+     *
+     * @throws Exception on error
+     */
+    public void testAddChildElementByName()
+            throws Exception
+    {
+        final QName elemName = SushiPropertyQNames.IKA;
+        // first test adding to an element that already has children...
+        XmlBeanUtils.addChildElement( m_propsDoc, elemName );
+        XmlObject[] childElems = XmlBeanUtils.getChildElements( m_propsDoc, elemName );
+        assertEquals( 2, childElems.length );
+        // now test adding to a childless element...
+        EndpointReferenceDocument eprDoc = EndpointReferenceDocument.Factory.newInstance();
+        EndpointReferenceType epr = eprDoc.addNewEndpointReference();
+        ReferencePropertiesType refPropsType = epr.addNewReferenceProperties();
+        XmlBeanUtils.addChildElement( refPropsType, elemName );
+        childElems = XmlBeanUtils.getChildElements( refPropsType, elemName );
+        assertEquals( 1, childElems.length );
+    }
+
+    /**
+     * DOCUMENT_ME
+     */
+    public void testGetChildElements()
+    {
+        XmlObject[] childElems = XmlBeanUtils.getChildElements( m_propsDoc, SushiPropertyQNames.IKA );
+        assertEquals( 1, childElems.length );
+        assertTrue( childElems[0] instanceof XmlString );
+    }
+
+    /**
+     * DOCUMENT_ME
+     */
+    public void testGetName()
+    {
+        assertEquals( SushiPropertyQNames.OPEN_SUSHI_PROPERTIES,
+                XmlBeanUtils.getName( m_propsDoc ) );
+        // TODO: use reflection to reenable the below assertions
+        //assertEquals( SushiPropertyQNames.SUSHI_PROPERTIES,
+        //              XmlBeanUtils.getName( m_propsDoc.getSushiProperties() ) );
+        //assertEquals( SushiPropertyQNames.EBI,
+        //              XmlBeanUtils.getName( m_propsDoc.getSushiProperties(  ).xgetEbi(  ) ) );
+    }
+
+    /**
+     * DOCUMENT_ME
+     */
+    public void testRemoveChildElements()
+    {
+        XmlObject[] ebiChildElems = XmlBeanUtils.getChildElements( m_propsDoc, SushiPropertyQNames.EBI );
+        assertEquals( 1, ebiChildElems.length );
+        int totalChildElemsBefore = XmlBeanUtils.getChildElements( m_propsDoc, SushiPropertyQNames.EBI ).length;
+        XmlBeanUtils.removeChildElements( m_propsDoc, SushiPropertyQNames.EBI );
+        ebiChildElems = XmlBeanUtils.getChildElements( m_propsDoc, SushiPropertyQNames.EBI );
+        assertEquals( 0, ebiChildElems.length );
+        int totalChildElemsAfter = XmlBeanUtils.getChildElements( m_propsDoc, SushiPropertyQNames.EBI ).length;
+        assertEquals( 1, totalChildElemsBefore - totalChildElemsAfter );
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: apollo-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: apollo-dev-help@ws.apache.org