Author: sagara Date: Wed Oct 12 15:41:35 2011 New Revision: 1182440 URL: http://svn.apache.org/viewvc?rev=1182440&view=rev Log: Added basic test for MultipartFormDataFormatter without getting any new dependency. This is required for porting tasks related to AXIS2-3933.
Added: axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/transport/http/MultipartFormDataFormatterTest.java (with props) Added: axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/transport/http/MultipartFormDataFormatterTest.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/transport/http/MultipartFormDataFormatterTest.java?rev=1182440&view=auto ============================================================================== --- axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/transport/http/MultipartFormDataFormatterTest.java (added) +++ axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/transport/http/MultipartFormDataFormatterTest.java Wed Oct 12 15:41:35 2011 @@ -0,0 +1,128 @@ +/* + * 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.transport.http; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import javax.mail.MessagingException; +import javax.xml.namespace.QName; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; +import org.apache.axiom.om.OMOutputFormat; +import org.apache.axiom.soap.SOAPBody; +import org.apache.axiom.soap.SOAPEnvelope; +import org.apache.axiom.soap.SOAPFactory; +import org.apache.axis2.AxisFault; +import org.apache.axis2.context.MessageContext; + +import junit.framework.TestCase; + +/** + * The Class MultipartFormDataFormatterTest. + */ +public class MultipartFormDataFormatterTest extends TestCase { + + private MultipartFormDataFormatter formatter; + + private MessageContext messageContext; + + protected void setUp() throws Exception { + super.setUp(); + formatter = new MultipartFormDataFormatter(); + messageContext = new MessageContext(); + SOAPEnvelope enp = getEnvelope(); + messageContext.setEnvelope(enp); + } + + private SOAPEnvelope getEnvelope() throws IOException, MessagingException { + SOAPFactory soapFac = OMAbstractFactory.getSOAP11Factory(); + OMFactory omFac = OMAbstractFactory.getOMFactory(); + SOAPEnvelope enp = soapFac.createSOAPEnvelope(); + SOAPBody sopaBody = soapFac.createSOAPBody(); + + OMElement content = omFac.createOMElement(new QName("message")); + OMElement data1 = omFac.createOMElement(new QName("part1")); + data1.setText("sample data part 1"); + + OMElement data2 = omFac.createOMElement(new QName("part2")); + data2.setText("sample data part 2"); + + content.addChild(data1); + content.addChild(data2); + sopaBody.addChild(content); + enp.addChild(sopaBody); + return enp; + } + + public void testGetBytes() throws AxisFault { + + OMOutputFormat omOutput = new OMOutputFormat(); + String boundary = omOutput.getMimeBoundary(); + byte[] bytes = formatter.getBytes(messageContext, omOutput); + String message = new String(bytes); + + assertNotNull("bytes can not be null", bytes); + assertTrue("Can not find the content", message.contains(boundary)); + assertTrue("Can not find the content", + message.contains("Content-Disposition: form-data; name=\"part1\"")); + assertTrue("Can not find the content", + message.contains("Content-Disposition: form-data; name=\"part2\"")); + assertTrue("Can not find the content", + message.contains("Content-Type: text/plain; charset=US-ASCII")); + assertTrue("Can not find the content", message.contains("Content-Transfer-Encoding: 8bit")); + assertTrue("Can not find the content", message.contains("sample data part 1")); + assertTrue("Can not find the content", message.contains("sample data part 2")); + + } + + public void testWriteTo() throws AxisFault { + + OMOutputFormat omOutput = new OMOutputFormat(); + String boundary = omOutput.getMimeBoundary(); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + formatter.writeTo(messageContext, omOutput, out, false); + String message = new String(out.toByteArray()); + + assertTrue("Can not find the content", message.contains(boundary)); + assertTrue("Can not find the content", + message.contains("Content-Disposition: form-data; name=\"part1\"")); + assertTrue("Can not find the content", + message.contains("Content-Disposition: form-data; name=\"part2\"")); + assertTrue("Can not find the content", + message.contains("Content-Type: text/plain; charset=US-ASCII")); + assertTrue("Can not find the content", message.contains("Content-Transfer-Encoding: 8bit")); + assertTrue("Can not find the content", message.contains("sample data part 1")); + assertTrue("Can not find the content", message.contains("sample data part 2")); + } + + public void testGetContentType() { + OMOutputFormat omOutput = new OMOutputFormat(); + String boundary = omOutput.getMimeBoundary(); + String type = formatter.getContentType(messageContext, omOutput, null); + + assertTrue("Can not find the content", type.startsWith("multipart/form-data;")); + assertTrue("Can not find the content", type.endsWith((boundary))); + + } + +} Propchange: axis/axis2/java/core/trunk/modules/kernel/test/org/apache/axis2/transport/http/MultipartFormDataFormatterTest.java ------------------------------------------------------------------------------ svn:eol-style = native