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