integrationtest.java
来自「开源的axis2框架的源码。用于开发WEBSERVER」· Java 代码 · 共 378 行 · 第 1/2 页
JAVA
378 行
/*
* 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.integration;
import junit.extensions.TestSetup;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.util.Utils;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.xml.namespace.QName;
import javax.xml.soap.AttachmentPart;
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.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPHeaderElement;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
public class IntegrationTest extends TestCase {
static int port;
public static final QName SERVICE_NAME = new QName("Echo");
public static final QName OPERATION_NAME = new QName("echo");
public static final String SAAJ_REPO =
System.getProperty("basedir", ".") + "/" + "target/test-resources/saaj-repo";
public IntegrationTest(String name) {
super(name);
}
protected static String getAddress() {
return "http://127.0.0.1:" +
port +
"/axis2/services/Echo";
}
public static Test suite() {
return new TestSetup(new TestSuite(IntegrationTest.class)) {
public void setUp() throws Exception {
port = UtilServer.start(SAAJ_REPO);
Parameter eneblemtom = new Parameter("enableMTOM", "true");
UtilServer.getConfigurationContext().getAxisConfiguration()
.addParameter(eneblemtom);
}
public void tearDown() throws Exception {
UtilServer.stop();
}
};
}
protected void setUp() throws Exception {
final AxisService service = Utils.createSimpleService(SERVICE_NAME,
EchoService.class.getName(),
OPERATION_NAME);
UtilServer.deployService(service);
}
protected void tearDown() throws Exception {
UtilServer.unDeployService(SERVICE_NAME);
UtilServer.unDeployClientService();
}
public void testSendReceiveMessageWithEmptyNSPrefix() {
try {
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage request = mf.createMessage();
SOAPPart sPart = request.getSOAPPart();
SOAPEnvelope env = sPart.getEnvelope();
SOAPBody body = env.getBody();
//Namespace prefix is empty
body.addBodyElement(new QName("http://fakeNamespace2.org","echo"))
.addTextNode("This is some text");
SOAPConnection sCon = SOAPConnectionFactory.newInstance().createConnection();
SOAPMessage response = sCon.call(request, getAddress());
assertFalse(response.getAttachments().hasNext());
assertEquals(0, response.countAttachments());
String requestStr = printSOAPMessage(request);
String responseStr = printSOAPMessage(response);
assertTrue(responseStr.indexOf("echo") > -1);
sCon.close();
} catch (SOAPException e) {
e.printStackTrace();
fail("Unexpected Exception while running test: " + e);
} catch (IOException e) {
fail("Unexpected Exception while running test: " + e);
}
}
public void testSendReceiveSimpleSOAPMessage() {
try {
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage request = mf.createMessage();
createSimpleSOAPPart(request);
SOAPConnection sCon = SOAPConnectionFactory.newInstance().createConnection();
SOAPMessage response = sCon.call(request, getAddress());
assertFalse(response.getAttachments().hasNext());
assertEquals(0, response.countAttachments());
String requestStr = printSOAPMessage(request);
String responseStr = printSOAPMessage(response);
assertTrue(responseStr.indexOf("echo") != -1);
sCon.close();
} catch (SOAPException e) {
e.printStackTrace();
fail("Unexpected Exception while running test: " + e);
} catch (IOException e) {
fail("Unexpected Exception while running test: " + e);
}
}
private String printSOAPMessage(final SOAPMessage msg) throws SOAPException, IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
msg.writeTo(baos);
String responseStr = baos.toString();
assertTrue(responseStr.indexOf("This is some text") != -1);
return responseStr;
}
public void testSendReceiveMessageWithAttachment() throws Exception {
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage request = mf.createMessage();
//create the SOAPPart
createSOAPPart(request);
//Attach a text/plain object with the SOAP request
String sampleMessage = "Sample Message: Hello World!";
AttachmentPart textAttach = request.createAttachmentPart(sampleMessage, "text/plain");
textAttach.addMimeHeader("Content-Transfer-Encoding", "binary");
textAttach.setContentId("submitSampleText@apache.org");
request.addAttachmentPart(textAttach);
//Attach a java.awt.Image object to the SOAP request
String jpgfilename = System.getProperty("basedir", ".") + "/" + "test-resources/axis2.jpg";
File myfile = new File(jpgfilename);
FileDataSource fds = new FileDataSource(myfile);
DataHandler imageDH = new DataHandler(fds);
AttachmentPart jpegAttach = request.createAttachmentPart(imageDH);
jpegAttach.addMimeHeader("Content-Transfer-Encoding", "binary");
jpegAttach.setContentId("submitSampleImage@apache.org");
jpegAttach.setContentType("image/jpg");
request.addAttachmentPart(jpegAttach);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?