blob: 6105a347b811bf72505411e28b3ddefc1747cd7d [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.axis2.saaj;
import junit.framework.Assert;
import junit.framework.TestCase;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.w3c.dom.Comment;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.MimeHeaders;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPFactory;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.Text;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@RunWith(SAAJTestRunner.class)
public class TextTest extends Assert {
//Test SAAJ addTextNode performance
@Validated @Test
public void testAddTextNode() throws Exception {
SOAPFactory soapFactory = SOAPFactory.newInstance();
MessageFactory factory = MessageFactory.newInstance();
SOAPMessage message = factory.createMessage();
SOAPBody body = message.getSOAPBody();
// Create the base element
Name bodyName = soapFactory.createName("VBGenReceiver", "xsi",
"http://www.w3.org/2001/XMLSchema-instance");
SOAPBodyElement bodyElement = body.addBodyElement(bodyName);
// Create the MetaData Tag
Name name = soapFactory.createName("MetaData");
SOAPElement metaData = bodyElement.addChildElement(name);
//Create the SKey Tag
name = soapFactory.createName("SKey");
SOAPElement sKey = metaData.addChildElement(name);
sKey.addTextNode("SKEY001");
//Create Object Tag
name = soapFactory.createName("Object");
SOAPElement object = bodyElement.addChildElement(name);
//Create Book ID Tag
name = soapFactory.createName("BookID");
SOAPElement bookID = object.addChildElement(name);
bookID.addTextNode("BookID002");
//Create OrderID tag
name = soapFactory.createName("OrderID");
SOAPElement orderID = object.addChildElement(name);
orderID.addTextNode("OrderID003");
//create PurchaseID tage
name = soapFactory.createName("PurchaseID");
SOAPElement purchaseID = object.addChildElement(name);
purchaseID.addTextNode("PurchaseID005");
//create LanguageID Tag
name = soapFactory.createName("LanguageID");
SOAPElement languageID = object.addChildElement(name);
languageID.addTextNode("LanguageID004");
//create LanguageID Tag
name = soapFactory.createName("LanguageName");
SOAPElement languageName = object.addChildElement(name);
languageName.addTextNode("LanguageName006");
//create LanguageID Tag
name = soapFactory.createName("Title");
SOAPElement title = object.addChildElement(name);
title.addTextNode("Title007");
//create LanguageID Tag
name = soapFactory.createName("Author");
SOAPElement author = object.addChildElement(name);
author.addTextNode("Author008");
//create LanguageID Tag
name = soapFactory.createName("Format");
SOAPElement format = bodyElement.addChildElement(name);
//create LanguageID Tag
name = soapFactory.createName("Type");
SOAPElement formatType = format.addChildElement(name);
formatType.addTextNode("Type009");
//create LanguageID Tag
name = soapFactory.createName("Delivery");
SOAPElement delivery = bodyElement.addChildElement(name);
//create LanguageID Tag
name = soapFactory.createName("Name");
SOAPElement delName = delivery.addChildElement(name);
delName.addTextNode("Name010");
//create LanguageID Tag
name = soapFactory.createName("Address1");
SOAPElement address1 = delivery.addChildElement(name);
address1.addTextNode("Address1011");
//create LanguageID Tag
name = soapFactory.createName("Address2");
SOAPElement address2 = delivery.addChildElement(name);
address2.addTextNode("Address2012");
//create LanguageID Tag
name = soapFactory.createName("City");
SOAPElement city = delivery.addChildElement(name);
city.addTextNode("City013");
//create LanguageID Tag
name = soapFactory.createName("State");
SOAPElement state = delivery.addChildElement(name);
state.addTextNode("State014");
//create LanguageID Tag
name = soapFactory.createName("PostalCode");
SOAPElement postalCode = delivery.addChildElement(name);
postalCode.addTextNode("PostalCode015");
//message.writeTo(System.out);
//System.out.flush();
}
@Validated @Test
public void testComment() throws SOAPException, IOException {
String xmlString = "<?xml version='1.0' encoding='utf-8'?> " +
"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
"<soapenv:Header></soapenv:Header>" +
"<soapenv:Body>" +
"<Node:abc xmlns:Node=\"http://www.simpletest.org\">" +
"This is some text" +
"<!--This is comment-->This is other text" +
"<!--This is another comment-->This is some other text" +
"</Node:abc>" +
"</soapenv:Body>" +
"</soapenv:Envelope>";
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage message =
mf.createMessage(new MimeHeaders(), new ByteArrayInputStream(xmlString.getBytes()));
SOAPBody body = message.getSOAPBody();
Node bodyElement = body.getFirstChild();
NodeList textNodes = bodyElement.getChildNodes();
assertEquals(5, textNodes.getLength());
for (int i = 0; i < textNodes.getLength(); i++) {
Node node = textNodes.item(i);
boolean isComment;
isComment = ((Text)node).isComment();
if (i == 1 || i == 3) {
assertEquals(true, isComment);
assertTrue(node instanceof Comment);
} else {
assertEquals(false, isComment);
assertFalse(node instanceof Comment);
}
}
}
}