You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by sc...@apache.org on 2009/06/17 13:03:01 UTC
svn commit: r785554 [2/2] - in
/webservices/commons/trunk/modules/axiom/modules:
axiom-api/src/main/java/org/apache/axiom/om/
axiom-api/src/main/java/org/apache/axiom/om/impl/
axiom-api/src/test/resources/soap/soap11/
axiom-tests/src/test/java/org/apac...
Modified: webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java?rev=785554&r1=785553&r2=785554&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java Wed Jun 17 11:03:00 2009
@@ -24,15 +24,23 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMOutputFormat;
import org.apache.axiom.om.TestConstants;
+import org.apache.axiom.om.impl.MIMEOutputUtils;
import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
import org.apache.axiom.om.impl.builder.XOPAwareStAXOMBuilder;
+import org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder;
import javax.activation.DataHandler;
+import javax.activation.FileDataSource;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringWriter;
import java.util.Arrays;
import java.util.Set;
@@ -44,6 +52,10 @@
String img1FileName = "mtom/img/test.jpg";
String img2FileName = "mtom/img/test2.jpg";
+ String inSWAFileName = "soap/soap11/SWAAttachmentStream.txt";
+
+ String contentTypeString =
+ "multipart/related; boundary=\"MIMEBoundaryurn:uuid:A3ADBAEE51A1A87B2A11443668160701\"; type=\"application/xop+xml\"; start=\"<0....@apache.org>\"; start-info=\"application/soap+xml\"; charset=UTF-8;action=\"mtomSample\"";
public void testMIMEHelper() {
}
@@ -248,6 +260,78 @@
"][" + expectedArray.length + "]");
}
}
+
+ public void testSWAWriteWithContentIDOrder() throws Exception {
+
+ // Read the stream that has soap xml followed by BAttachment then AAttachment
+ InputStream inStream = getTestResource(inSWAFileName);
+ Attachments attachments = new Attachments(inStream, contentTypeString);
+
+ // Get the contentIDs to force the reading
+ String[] contentIDs = attachments.getAllContentIDs();
+
+ // Get the root
+ XMLStreamReader reader =
+ XMLInputFactory.newInstance()
+ .createXMLStreamReader(new BufferedReader(new InputStreamReader(attachments.getSOAPPartInputStream())));
+ MTOMStAXSOAPModelBuilder builder =
+ new MTOMStAXSOAPModelBuilder(reader, attachments, null);
+ OMElement root = builder.getDocumentElement();
+ StringWriter xmlWriter = new StringWriter();
+ root.serialize(xmlWriter);
+
+ // Serialize the message using the legacy behavior (order by content id)
+ OMOutputFormat format = new OMOutputFormat();
+ format.setCharSetEncoding("utf-8");
+ format.setDoingSWA(true);
+ format.setProperty(OMOutputFormat.RESPECT_SWA_ATTACHMENT_ORDER, Boolean.FALSE);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ MIMEOutputUtils.writeSOAPWithAttachmentsMessage(xmlWriter, baos, attachments, format);
+
+ String text = baos.toString();
+ // Assert that AAttachment occurs before BAttachment since
+ // that is the natural ordering of the content ids.
+ assertTrue(text.indexOf("AAttachment") < text.indexOf("BAttachment"));
+
+ }
+
+ public void testSWAWriteWithIncomingOrder() throws Exception {
+
+ // Read the stream that has soap xml followed by BAttachment then AAttachment
+ InputStream inStream = getTestResource(inSWAFileName);
+ Attachments attachments = new Attachments(inStream, contentTypeString);
+
+ // Get the contentIDs to force the reading
+ String[] contentIDs = attachments.getAllContentIDs();
+
+ // Get the root
+ XMLStreamReader reader =
+ XMLInputFactory.newInstance()
+ .createXMLStreamReader(new BufferedReader(new InputStreamReader(attachments.getSOAPPartInputStream())));
+ MTOMStAXSOAPModelBuilder builder =
+ new MTOMStAXSOAPModelBuilder(reader, attachments, null);
+ OMElement root = builder.getDocumentElement();
+ StringWriter xmlWriter = new StringWriter();
+ root.serialize(xmlWriter);
+
+ // Serialize the message using the legacy behavior (order by content id)
+ OMOutputFormat format = new OMOutputFormat();
+ format.setCharSetEncoding("utf-8");
+ format.setDoingSWA(true);
+ format.setProperty(OMOutputFormat.RESPECT_SWA_ATTACHMENT_ORDER, Boolean.TRUE);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+ MIMEOutputUtils.writeSOAPWithAttachmentsMessage(xmlWriter, baos, attachments, format);
+
+ String text = baos.toString();
+ // Assert that AAttachment occurs before BAttachment since
+ // that is the natural ordering of the content ids.
+ assertTrue(text.indexOf("BAttachment") < text.indexOf("AAttachment"));
+
+ }
public void testGetDataHandler() throws Exception {