Author: veithen
Date: Wed Feb  4 19:50:18 2009
New Revision: 740841

URL: http://svn.apache.org/viewvc?rev=740841&view=rev
Log:
WSCOMMONS-419: Load test files as classpath resources instead of accessing them 
directly. This will allow us to reuse test files across multiple Maven modules.

Modified:
    webservices/commons/trunk/modules/axiom/modules/axiom-tests/pom.xml
    
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/attachments/AttachmentsTest.java
    
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/AbstractTestCase.java
    
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/CompareOMWithDOMTest.java

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-tests/pom.xml
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/pom.xml?rev=740841&r1=740840&r2=740841&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-tests/pom.xml 
(original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-tests/pom.xml Wed Feb 
 4 19:50:18 2009
@@ -117,6 +117,11 @@
         </dependency>
     </dependencies>
     <build>
+        <testResources>
+            <testResource>
+                <directory>test-resources</directory>
+            </testResource>
+        </testResources>
         <plugins>
             <plugin>
                 <artifactId>maven-surefire-plugin</artifactId>

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=740841&r1=740840&r2=740841&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 Feb  4 19:50:18 2009
@@ -19,6 +19,7 @@
 
 package org.apache.axiom.attachments;
 
+import org.apache.axiom.attachments.utils.IOUtils;
 import org.apache.axiom.om.AbstractTestCase;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMOutputFormat;
@@ -30,8 +31,6 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Arrays;
@@ -296,8 +295,7 @@
 
     public void testGetAllContentIDs() throws Exception {
 
-        File f = getTestResourceFile(inMimeFileName);
-        InputStream inStream = new FileInputStream(f);
+        InputStream inStream = getTestResource(inMimeFileName);
         Attachments attachments = new Attachments(inStream, contentTypeString);
 
         String[] contentIDs = attachments.getAllContentIDs();
@@ -313,7 +311,7 @@
         
         // Make sure the length is correct
         long length = attachments.getContentLength();
-        long fileSize = f.length();
+        long fileSize = 
IOUtils.getStreamAsByteArray(getTestResource(inMimeFileName)).length;
         assertTrue("Expected MessageContent Length of " + fileSize + " but 
received " + length,
                    length == fileSize);
     }

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/AbstractTestCase.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/AbstractTestCase.java?rev=740841&r1=740840&r2=740841&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/AbstractTestCase.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/AbstractTestCase.java
 Wed Feb  4 19:50:18 2009
@@ -20,28 +20,35 @@
 package org.apache.axiom.om;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.InputStream;
+import java.net.URL;
 
 import javax.activation.DataSource;
-import javax.activation.FileDataSource;
+import javax.activation.URLDataSource;
 
 import org.custommonkey.xmlunit.XMLTestCase;
 
 /** Abstract base class for test cases. */
 public abstract class AbstractTestCase
         extends XMLTestCase {
-    protected String testDir = "test" + File.separator;
-    protected String sampleDir = "samples" + File.separator;
-    protected String outDir = "target" + File.separator + "generated" +
-            File.separator +
-            "samples" +
-            File.separator;
     protected String tempDir = "target" + File.separator + "generated" +
             File.separator +
             "temp";
-    protected String testResourceDir = "test-resources";
+    
+    public static final String[] soapFiles = {
+        "emtyBodymessage.xml",
+        "invalidMustUnderstandSOAP12.xml",
+        "minimalMessage.xml",
+        "OMElementTest.xml",
+        "reallyReallyBigMessage.xml",
+        "sample1.xml",
+        "security2-soap.xml",
+        "soap12message.xml",
+        "soap12RoleMessage.xml",
+        "soapmessage.xml",
+        "soapmessage1.xml",
+        "whitespacedMessage.xml"
+    };
 
     /** Basedir for all file I/O. Important when running tests from the 
reactor. */
     public String basedir = System.getProperty("basedir");
@@ -56,27 +63,23 @@
         if (basedir == null) {
             basedir = new File(".").getAbsolutePath();
         }
-        testDir = new File(basedir, testDir).getAbsolutePath();
-        sampleDir = new File(basedir, sampleDir).getAbsolutePath();
-        outDir = new File(basedir, outDir).getAbsolutePath();
         tempDir = new File(basedir, tempDir).getAbsolutePath();
     }
 
-    public File getTestResourceFile(String relativePath) {
-        return new File(testResourceDir, relativePath);
-    }
-    
     public DataSource getTestResourceDataSource(String relativePath) {
-        return new FileDataSource(getTestResourceFile(relativePath));
+        URL url = 
AbstractTestCase.class.getClassLoader().getResource(relativePath);
+        if (url == null) {
+            fail("The test resource " + relativePath + " could not be found");
+        }
+        return new URLDataSource(url);
     }
 
     public InputStream getTestResource(String relativePath) {
-        try {
-            return new FileInputStream(getTestResourceFile(relativePath));
-        } catch (FileNotFoundException ex) {
+        InputStream in = 
AbstractTestCase.class.getClassLoader().getResourceAsStream(relativePath);
+        if (in == null) {
             fail("The test resource " + relativePath + " could not be found");
-            return null;
         }
+        return in;
     }
 
     public File getTempOutputFile(String filename) {

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/CompareOMWithDOMTest.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/CompareOMWithDOMTest.java?rev=740841&r1=740840&r2=740841&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/CompareOMWithDOMTest.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/CompareOMWithDOMTest.java
 Wed Feb  4 19:50:18 2009
@@ -24,7 +24,6 @@
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
-import java.io.File;
 
 /** @version $Rev: $ $Date: $ */
 public class CompareOMWithDOMTest extends AbstractTestCase {
@@ -34,24 +33,16 @@
     }
 
     public void testAllMessagesInSOAP() throws OMException, Exception {
-        File dir = new File(testResourceDir, "soap");
-        File[] files = dir.listFiles();
-        if (files != null) {
-            for (int i = 0; i < files.length; i++) {
-                if (files[i].isFile() && files[i].getName().endsWith(".xml") &&
-                        !files[i].getName().startsWith("wrong")) {
-                    SOAPEnvelope soapEnvelope = (SOAPEnvelope) 
OMTestUtils.getOMBuilder(
-                            files[i])
-                            .getDocumentElement();
-                    DocumentBuilderFactory dbf = 
DocumentBuilderFactory.newInstance();
-                    dbf.setNamespaceAware(true);
-                    DocumentBuilder builder = dbf.newDocumentBuilder();
-                    Document doc = builder.parse(files[i].getAbsolutePath());
-                    OMTestUtils.compare(doc.getDocumentElement(),
-                                        soapEnvelope);
-                }
-            }
-
+        for (int i = 0; i < soapFiles.length; i++) {
+            String file = "soap/" + soapFiles[i];
+            SOAPEnvelope soapEnvelope = (SOAPEnvelope) 
OMTestUtils.getOMBuilder(
+                    getTestResource(file)).getDocumentElement();
+            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+            dbf.setNamespaceAware(true);
+            DocumentBuilder builder = dbf.newDocumentBuilder();
+            Document doc = builder.parse(getTestResource(file));
+            OMTestUtils.compare(doc.getDocumentElement(),
+                                soapEnvelope);
         }
     }
 }


Reply via email to