You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2015/05/18 19:17:22 UTC
svn commit: r1680057 - in /webservices/axiom/trunk:
modules/axiom-api/src/test/java/org/apache/axiom/attachments/
modules/axiom-api/src/test/java/org/apache/axiom/om/
modules/axiom-api/src/test/resources/mtom/img/
testing/axiom-testsuite/src/main/java/...
Author: veithen
Date: Mon May 18 17:17:21 2015
New Revision: 1680057
URL: http://svn.apache.org/r1680057
Log:
Change unit tests to extract MIME parts programatically using JavaMail (instead of having the content as separate files under version control).
Removed:
webservices/axiom/trunk/modules/axiom-api/src/test/resources/mtom/img/test2.jpg
Modified:
webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java
webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/om/TestConstants.java
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestBuildWithAttachments.java
webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/MIMESample.java
webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/MTOMSample.java
Modified: webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java?rev=1680057&r1=1680056&r2=1680057&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java (original)
+++ webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java Mon May 18 17:17:21 2015
@@ -52,6 +52,7 @@ import org.apache.axiom.testutils.activa
import org.apache.axiom.testutils.io.ExceptionInputStream;
import org.apache.axiom.testutils.io.IOTestUtils;
import org.apache.axiom.ts.soap.MIMESample;
+import org.apache.axiom.ts.soap.MTOMSample;
import org.apache.axiom.util.UIDGenerator;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.output.NullOutputStream;
@@ -71,7 +72,7 @@ public class AttachmentsTest extends Abs
.getDataHandler("2.urn:uuid:A3ADBAEE51A1A87B2A11443668160994@apache.org");
InputStream dataIs = dh.getDataSource().getInputStream();
- InputStream expectedDataIs = getTestResource(TestConstants.MTOM_MESSAGE_IMAGE2);
+ InputStream expectedDataIs = TestConstants.MTOM_MESSAGE.getPart(2);
// Compare data across streams
IOTestUtils.compareStreams(dataIs, expectedDataIs);
@@ -253,12 +254,13 @@ public class AttachmentsTest extends Abs
}
public void testGetIncomingAttachmentStreams2() throws Exception {
+ MTOMSample sample = TestConstants.MTOM_MESSAGE;
IncomingAttachmentInputStream dataIs;
InputStream expectedDataIs;
- InputStream inStream = TestConstants.MTOM_MESSAGE.getInputStream();
- Attachments attachments = new Attachments(inStream, TestConstants.MTOM_MESSAGE.getContentType());
+ InputStream inStream = sample.getInputStream();
+ Attachments attachments = new Attachments(inStream, sample.getContentType());
// Since SOAP part operated independently of other streams, access it
// directly, and then get to the streams. If this sequence throws an
@@ -270,11 +272,11 @@ public class AttachmentsTest extends Abs
IncomingAttachmentStreams ias = attachments.getIncomingAttachmentStreams();
dataIs = ias.getNextStream();
- expectedDataIs = getTestResource(TestConstants.MTOM_MESSAGE_IMAGE1);
+ expectedDataIs = sample.getPart(1);
IOTestUtils.compareStreams(dataIs, expectedDataIs);
dataIs = ias.getNextStream();
- expectedDataIs = getTestResource(TestConstants.MTOM_MESSAGE_IMAGE2);
+ expectedDataIs = sample.getPart(2);
IOTestUtils.compareStreams(dataIs, expectedDataIs);
// Confirm that no more streams are left
Modified: webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/om/TestConstants.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/om/TestConstants.java?rev=1680057&r1=1680056&r2=1680057&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/om/TestConstants.java (original)
+++ webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/om/TestConstants.java Mon May 18 17:17:21 2015
@@ -40,8 +40,6 @@ public class TestConstants {
"start-info=\"application/soap+xml\"; " +
"charset=UTF-8;" +
"action=\"mtomSample\"");
- public static final String MTOM_MESSAGE_IMAGE1 = "mtom/img/test.jpg";
- public static final String MTOM_MESSAGE_IMAGE2 = "mtom/img/test2.jpg";
public static final MTOMSample MTOM_MESSAGE_2 = new MTOMSample("mtom/MTOMBuilderTestIn.txt",
"multipart/Related; charset=\"UTF-8\"; type=\"application/xop+xml\"; " +
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestBuildWithAttachments.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestBuildWithAttachments.java?rev=1680057&r1=1680056&r2=1680057&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestBuildWithAttachments.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap12/envelope/TestBuildWithAttachments.java Mon May 18 17:17:21 2015
@@ -24,7 +24,6 @@ import java.util.Iterator;
import javax.activation.DataHandler;
import org.apache.axiom.attachments.Attachments;
-import org.apache.axiom.om.AbstractTestCase;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.OMText;
@@ -33,6 +32,7 @@ import org.apache.axiom.om.TestConstants
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.testutils.io.IOTestUtils;
import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.soap.MTOMSample;
public class TestBuildWithAttachments extends AxiomTestCase {
public TestBuildWithAttachments(OMMetaFactory metaFactory) {
@@ -40,8 +40,9 @@ public class TestBuildWithAttachments ex
}
protected void runTest() throws Throwable {
- InputStream in = TestConstants.MTOM_MESSAGE.getInputStream();
- Attachments attachments = new Attachments(in, TestConstants.MTOM_MESSAGE.getContentType());
+ MTOMSample sample = TestConstants.MTOM_MESSAGE;
+ InputStream in = sample.getInputStream();
+ Attachments attachments = new Attachments(in, sample.getContentType());
SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(metaFactory, attachments).getSOAPEnvelope();
envelope.buildWithAttachments();
in.close();
@@ -50,9 +51,9 @@ public class TestBuildWithAttachments ex
OMElement image2 = (OMElement)it.next();
IOTestUtils.compareStreams(((DataHandler)((OMText)image1.getFirstOMChild()).getDataHandler()).getInputStream(),
- AbstractTestCase.getTestResource(TestConstants.MTOM_MESSAGE_IMAGE1));
+ sample.getPart(1));
IOTestUtils.compareStreams(((DataHandler)((OMText)image2.getFirstOMChild()).getDataHandler()).getInputStream(),
- AbstractTestCase.getTestResource(TestConstants.MTOM_MESSAGE_IMAGE2));
+ sample.getPart(2));
}
}
Modified: webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/MIMESample.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/MIMESample.java?rev=1680057&r1=1680056&r2=1680057&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/MIMESample.java (original)
+++ webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/MIMESample.java Mon May 18 17:17:21 2015
@@ -18,14 +18,20 @@
*/
package org.apache.axiom.ts.soap;
+import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
+import javax.activation.DataSource;
+import javax.mail.MessagingException;
import javax.mail.internet.ContentType;
+import javax.mail.internet.MimeMultipart;
import javax.mail.internet.ParseException;
public abstract class MIMESample {
private final String name;
private final String contentType;
+ private MimeMultipart multipart;
MIMESample(String name, String contentType) {
this.name = name;
@@ -67,4 +73,47 @@ public abstract class MIMESample {
public String getBoundary() {
return getParameter("boundary");
}
+
+ protected final synchronized MimeMultipart getMultipart() {
+ if (multipart == null) {
+ try {
+ multipart = new MimeMultipart(new DataSource() {
+ @Override
+ public OutputStream getOutputStream() throws IOException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public String getName() {
+ return null;
+ }
+
+ @Override
+ public InputStream getInputStream() throws IOException {
+ return MIMESample.this.getInputStream();
+ }
+
+ @Override
+ public String getContentType() {
+ return MIMESample.this.getContentType();
+ }
+ });
+ // Force the implementation to parse the message
+ multipart.getCount();
+ } catch (MessagingException ex) {
+ throw new Error(ex);
+ }
+ }
+ return multipart;
+ }
+
+ public final InputStream getPart(int part) {
+ try {
+ return getMultipart().getBodyPart(part).getInputStream();
+ } catch (IOException ex) {
+ throw new Error(ex);
+ } catch (MessagingException ex) {
+ throw new Error(ex);
+ }
+ }
}
Modified: webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/MTOMSample.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/MTOMSample.java?rev=1680057&r1=1680056&r2=1680057&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/MTOMSample.java (original)
+++ webservices/axiom/trunk/testing/soap-testsuite/src/main/java/org/apache/axiom/ts/soap/MTOMSample.java Mon May 18 17:17:21 2015
@@ -20,11 +20,8 @@ package org.apache.axiom.ts.soap;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
-import javax.activation.DataSource;
import javax.mail.BodyPart;
import javax.mail.internet.MimeMultipart;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -45,27 +42,7 @@ public class MTOMSample extends MIMESamp
public InputStream getInlinedMessage() {
try {
- MimeMultipart mp = new MimeMultipart(new DataSource() {
- @Override
- public OutputStream getOutputStream() throws IOException {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getName() {
- return null;
- }
-
- @Override
- public InputStream getInputStream() throws IOException {
- return MTOMSample.this.getInputStream();
- }
-
- @Override
- public String getContentType() {
- return MTOMSample.this.getContentType();
- }
- });
+ MimeMultipart mp = getMultipart();
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setNamespaceAware(true);
Document rootPart = documentBuilderFactory.newDocumentBuilder().parse(