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(