blob: 8e6e9b919327ada163944dffd6c3d610145ba344 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 org.apache.axiom.soap.impl.llom;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMComment;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMTestCase;
import org.apache.axiom.om.OMText;
import org.apache.axiom.om.OMXMLBuilderFactory;
import javax.xml.stream.XMLStreamException;
import java.util.Iterator;
public class OMElementTest extends OMTestCase {
OMFactory factory = OMAbstractFactory.getOMFactory();
private OMElement firstElement;
private OMElement secondElement;
/*
* @see TestCase#setUp()
*/
@Override
protected void setUp() throws Exception {
OMNamespace testingNamespace = factory.createOMNamespace(
"http://testing.ws.org", "ws");
firstElement = factory.createOMElement("FirstElement", testingNamespace);
secondElement = factory.createOMElement("SecondElement", factory.createOMNamespace(
"http://moretesting.ws.org", "ws"), firstElement);
}
@Override
protected void tearDown() throws Exception {
}
public void testChildDetachment() {
OMNamespace testNamespace2 = factory.createOMNamespace("ftp://anotherTest.ws.org", "ws");
secondElement.detach();
assertTrue("OMElement children detachment has not worked properly",
!secondElement.equals(firstElement.getFirstElement()));
assertNull("First Element should not contain elements after detaching. ",
firstElement.getFirstElement());
assertNull("First Element should not contain elements after detaching. ",
firstElement.getFirstOMChild());
assertNull(secondElement.findNamespace(testNamespace2.getNamespaceURI(),
testNamespace2.getPrefix()));
firstElement.addChild(secondElement);
factory.createOMText(firstElement, "Some Sample Text");
assertTrue("First added child must be the first child",
secondElement.equals(firstElement.getFirstOMChild()));
Iterator children = firstElement.getChildren();
int childCount = 0;
while (children.hasNext()) {
children.next();
childCount++;
}
assertEquals("Children count should be two", childCount, 2);
secondElement.detach();
assertTrue("First child should be the text child",
firstElement.getFirstOMChild() instanceof OMText);
}
public void testAddDOOMElementAsChild() throws XMLStreamException {
OMFactory doomFactory = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM).getOMFactory();
OMFactory llomFactory = OMAbstractFactory.getOMFactory();
String text = "This was a DOOM Text";
OMElement llomRoot = llomFactory.createOMElement("root", null);
OMElement doomElement = doomFactory.createOMElement("second", "test", "a");
doomElement.setText(text);
llomRoot.addChild(doomElement);
OMElement newElement = (OMXMLBuilderFactory.createStAXOMBuilder(this.factory, llomRoot
.getXMLStreamReader())).getDocumentElement();
newElement.build();
OMElement secondElement = newElement.getFirstElement();
assertNotNull(secondElement);
assertEquals(secondElement.getText(), text);
}
public void testAddDOOMTextAsChild() throws XMLStreamException {
OMFactory doomFactory = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM).getOMFactory();
OMFactory llomFactory = OMAbstractFactory.getOMFactory();
String text = "This was a DOOM Text";
OMElement llomRoot = llomFactory.createOMElement("root", null);
OMText doomText = doomFactory.createOMText(text);
llomRoot.addChild(doomText);
OMElement newElement = (OMXMLBuilderFactory.createStAXOMBuilder(this.factory, llomRoot
.getXMLStreamReader())).getDocumentElement();
newElement.build();
assertEquals(newElement.getText(), text);
}
public void testAddLLOMElementChildToDOOM() throws XMLStreamException {
OMFactory doomFactory = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM).getOMFactory();
OMFactory llomFactory = OMAbstractFactory.getOMFactory();
String text = "This was a LLOM Text";
OMElement doomRoot = doomFactory.createOMElement("root", null);
OMElement llomElement = llomFactory.createOMElement("second", "test", "a");
llomElement.setText(text);
doomRoot.addChild(llomElement);
OMElement newElement = (OMXMLBuilderFactory.createStAXOMBuilder(this.factory, doomRoot
.getXMLStreamReader())).getDocumentElement();
newElement.build();
OMElement secondElement = newElement.getFirstElement();
assertNotNull(secondElement);
assertEquals(secondElement.getText(), text);
}
public void testAddLLOMTextChildToDOOM() throws XMLStreamException {
OMFactory doomFactory = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM).getOMFactory();
OMFactory llomFactory = OMAbstractFactory.getOMFactory();
String text = "This was a DOOM Text";
OMElement doomRoot = doomFactory.createOMElement("root", null);
OMText llomText = llomFactory.createOMText(text);
OMComment comment = llomFactory.createOMComment(null, "comment");
doomRoot.addChild(llomText);
doomRoot.addChild(comment);
OMElement newElement = (OMXMLBuilderFactory.createStAXOMBuilder(this.factory, doomRoot
.getXMLStreamReader())).getDocumentElement();
newElement.build();
assertEquals(newElement.getText(), text);
}
}