Author: mattmann
Date: Wed Mar 28 04:05:10 2012
New Revision: 1306147

URL: http://svn.apache.org/viewvc?rev=1306147&view=rev
Log:
- TIKA-593: improvement: use CXF client for test harnesses, remove all 
extraneous pom.xml dependencies and remove dep on commons-httpclient

Modified:
    tika/trunk/tika-server/pom.xml
    tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java
    
tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java
    
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java
    
tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java

Modified: tika/trunk/tika-server/pom.xml
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/pom.xml?rev=1306147&r1=1306146&r2=1306147&view=diff
==============================================================================
--- tika/trunk/tika-server/pom.xml (original)
+++ tika/trunk/tika-server/pom.xml Wed Mar 28 04:05:10 2012
@@ -70,32 +70,6 @@
                   <version>2.5.2</version>
                </dependency>           
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-jdk14</artifactId>
-            <version>1.6.1</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-httpclient</groupId>
-            <artifactId>commons-httpclient</artifactId>
-            <version>3.1</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>commons-logging</groupId>
-            <artifactId>commons-logging</artifactId>
-            <version>1.1.1</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-codec</groupId>
-            <artifactId>commons-codec</artifactId>
-            <version>1.3</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-collections</groupId>
-            <artifactId>commons-collections</artifactId>
-            <version>3.2.1</version>
-        </dependency>
-        <dependency>
             <groupId>commons-cli</groupId>
             <artifactId>commons-cli</artifactId>
             <version>1.2</version>
@@ -105,12 +79,6 @@
             <artifactId>commons-lang</artifactId>
             <version>2.5</version>
         </dependency>
-           <dependency>
-              <groupId>javax.servlet</groupId>
-              <artifactId>servlet-api</artifactId>
-              <version>2.4</version>
-              <scope>provided</scope>
-           </dependency>        
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java?rev=1306147&r1=1306146&r2=1306147&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java 
(original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java 
Wed Mar 28 04:05:10 2012
@@ -17,176 +17,21 @@
 
 package org.apache.tika.server;
 
-import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.ws.rs.core.HttpHeaders;
-
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.compress.archivers.ArchiveEntry;
 import org.apache.commons.compress.archivers.ArchiveInputStream;
-import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
-import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
 import org.apache.commons.compress.utils.IOUtils;
-import org.apache.commons.httpclient.Header;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.methods.PutMethod;
 import org.apache.cxf.io.CachedOutputStream;
-import org.apache.tika.io.CloseShieldInputStream;
-
-import au.com.bytecode.opencsv.CSVReader;
 import junit.framework.TestCase;
 
 public class CXFTestBase extends TestCase {
 
-       protected Map<String, String> putAndGetMet(String address,
-                       InputStream content) throws Exception {
-               Map<String, String> met = new HashMap<String, String>();
-               PutMethod put = new PutMethod(address);
-               put.setRequestBody(content);
-               HttpClient httpClient = new HttpClient();
-               InputStreamReader reader = null;
-
-               try {
-                       httpClient.executeMethod(put);
-                       CSVReader csvReader = new CSVReader(new 
InputStreamReader(
-                                       put.getResponseBodyAsStream()));
-
-                       String[] nextLine;
-                       while ((nextLine = csvReader.readNext()) != null) {
-                               met.put(nextLine[0], nextLine[1]);
-                       }
-
-               } finally {
-                       put.releaseConnection();
-               }
-
-               return met;
-       }
-
-       protected String getAndReturnResp(String address) throws HttpException,
-                       IOException {
-               String resp = null;
-               GetMethod get = new GetMethod(address);
-               HttpClient httpClient = new HttpClient();
-               InputStreamReader reader = null;
-
-               try {
-                       httpClient.executeMethod(get);
-                       resp = get.getResponseBodyAsString();
-               } finally {
-                       get.releaseConnection();
-               }
-
-               return resp;
-       }
-
-       protected void putAndCheckStatus(String address, InputStream content,
-                       int expectedStatus) throws Exception {
-               putAndCheckStatus(address, null, content, expectedStatus);
-       }
-       
-       protected void putAndCheckStatus(String address, String contentType, 
InputStream content,
-                       int expectedStatus) throws Exception {
-               PutMethod put = new PutMethod(address);
-               put.setRequestBody(content);
-               if(contentType != null) 
-                       put.setRequestHeader(HttpHeaders.CONTENT_TYPE, 
contentType);
-               HttpClient httpClient = new HttpClient();
-               try {
-                       int result = httpClient.executeMethod(put);
-                       assertEquals(expectedStatus, result);
-               } finally {
-                       put.releaseConnection();
-               }
-       }
-
-       protected String putAndGetString(String address, InputStream content)
-                       throws Exception {
-               String resp = null;
-               PutMethod put = new PutMethod(address);
-               put.setRequestBody(content);
-               HttpClient httpClient = new HttpClient();
-               InputStreamReader reader = null;
-
-               try {
-                       httpClient.executeMethod(put);
-                       resp = put.getResponseBodyAsString();
-               } finally {
-                       put.releaseConnection();
-               }
-
-               return resp;
-       }
-
-       protected Map<String,String> putAndGetMapData(String address,
-                       InputStream content, boolean zip) throws Exception {
-               PutMethod put = new PutMethod(address);
-               put.setRequestBody(content);
-               HttpClient httpClient = new HttpClient();
-        Map<String,String> data = new HashMap<String, String>();
-               
-               try {
-                       httpClient.executeMethod(put);
-                       data = readArchive(zip ? 
-                                       new 
ZipArchiveInputStream(put.getResponseBodyAsStream()):
-                                               new 
TarArchiveInputStream(put.getResponseBodyAsStream()));
-               } finally {
-                       put.releaseConnection();
-               }
-
-               return data;
-       }
-       
-       protected String putAndGetArchiveText(String address,
-                       InputStream content, boolean zip) throws Exception {
-               PutMethod put = new PutMethod(address);
-               put.setRequestBody(content);
-               HttpClient httpClient = new HttpClient();
-        String archiveText = null;
-               
-               try {
-                       httpClient.executeMethod(put);
-                       archiveText = readArchiveText(zip ? 
-                                       new 
ZipArchiveInputStream(put.getResponseBodyAsStream()):
-                                               new 
TarArchiveInputStream(put.getResponseBodyAsStream()));
-               } finally {
-                       //put.releaseConnection();
-               }
-
-               return archiveText;
-       }       
-
-       protected void getAndCompare(String address, String expectedValue,
-                       String acceptType, String expectedContentType, int 
expectedStatus)
-                       throws Exception {
-               GetMethod get = new GetMethod(address);
-               get.setRequestHeader("Accept", acceptType);
-               get.setRequestHeader("Accept-Language", "da;q=0.8,en");
-               HttpClient httpClient = new HttpClient();
-               try {
-                       int result = httpClient.executeMethod(get);
-                       assertEquals(expectedStatus, result);
-                       String content = getStringFromInputStream(get
-                                       .getResponseBodyAsStream());
-                       assertEquals("Expected value is wrong", expectedValue, 
content);
-                       if (expectedContentType != null) {
-                               Header ct = 
get.getResponseHeader("Content-Type");
-                               assertEquals("Wrong type of response", 
expectedContentType,
-                                               ct.getValue());
-                       }
-               } finally {
-                       get.releaseConnection();
-               }
-       }
-
        protected String getStringFromInputStream(InputStream in) throws 
Exception {
                CachedOutputStream bos = new CachedOutputStream();
                IOUtils.copy(in, bos);
@@ -195,48 +40,27 @@ public class CXFTestBase extends TestCas
                return bos.getOut().toString();
        }
 
-       protected InputStream cloneInputStream(InputStream is) throws 
IOException {
-               ByteArrayOutputStream baos = new ByteArrayOutputStream();
-               // Fake code simulating the copy
-               // You can generally do better with nio if you need...
-               // And please, unlike me, do something about the Exceptions :D
-               byte[] buffer = new byte[1024];
-               int len;
-               while ((len = is.read(buffer)) > -1) {
-                       baos.write(buffer, 0, len);
-               }
-               baos.flush();
-               return new ByteArrayInputStream(baos.toByteArray());
-
-       }
-       
-
        protected Map<String, String> readArchive(ArchiveInputStream zip)
                        throws IOException {
                Map<String, String> data = new HashMap<String, String>();
 
                while (true) {
                        ArchiveEntry entry = zip.getNextEntry();
-
                        if (entry == null) {
                                break;
                        }
-
+                       
                        ByteArrayOutputStream bos = new ByteArrayOutputStream();
-
                        IOUtils.copy(zip, bos);
-
                        data.put(entry.getName(), 
DigestUtils.md5Hex(bos.toByteArray()));
                }
 
                return data;
        }
 
-       protected String readArchiveText(ArchiveInputStream zip)
-                       throws IOException {
+       protected String readArchiveText(ArchiveInputStream zip) throws 
IOException {
                while (true) {
                        ArchiveEntry entry = zip.getNextEntry();
-
                        if (entry == null) {
                                break;
                        }
@@ -246,13 +70,10 @@ public class CXFTestBase extends TestCas
                        }
 
                        ByteArrayOutputStream bos = new ByteArrayOutputStream();
-
                        IOUtils.copy(zip, bos);
-
                        return bos.toString("UTF-8");
                }
 
                return null;
-       }       
-
+       }
 }

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java?rev=1306147&r1=1306146&r2=1306147&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java
 Wed Mar 28 04:05:10 2012
@@ -17,18 +17,30 @@
 
 package org.apache.tika.server;
 
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.util.HashMap;
 import java.util.Map;
 
+import javax.ws.rs.core.Response;
+
 import org.apache.cxf.binding.BindingFactoryManager;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.jaxrs.JAXRSBindingFactory;
 import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
+import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
 import org.junit.Test;
 
+import au.com.bytecode.opencsv.CSVReader;
+
 public class MetadataResourceTest extends CXFTestBase {
        private static final String META_PATH = "/meta";
 
+       private static final String endPoint = "http://localhost:";
+                       + TikaServerCli.DEFAULT_PORT;
+
        private Server server;
 
        /*
@@ -42,7 +54,7 @@ public class MetadataResourceTest extend
                sf.setResourceClasses(MetadataResource.class);
                sf.setResourceProvider(MetadataResource.class,
                                new SingletonResourceProvider(new 
MetadataResource()));
-               sf.setAddress("http://localhost:"; + TikaServerCli.DEFAULT_PORT 
+ "/");
+               sf.setAddress(endPoint + "/");
                BindingFactoryManager manager = sf.getBus().getExtension(
                                BindingFactoryManager.class);
                JAXRSBindingFactory factory = new JAXRSBindingFactory();
@@ -51,7 +63,6 @@ public class MetadataResourceTest extend
                                factory);
                server = sf.create();
        }
-       
 
        /*
         * (non-Javadoc)
@@ -63,19 +74,30 @@ public class MetadataResourceTest extend
                server.stop();
                server.destroy();
        }
-       
 
        @Test
        public void testSimpleWord() throws Exception {
-               Map<String, String> metadata = putAndGetMet("http://localhost:";
-                               + TikaServerCli.DEFAULT_PORT + META_PATH+ "/" + 
TikaResourceTest.TEST_DOC,
-                               ClassLoader
+               Response response = WebClient
+                               .create(endPoint + META_PATH)
+                               .type("application/msword")
+                               .accept("text/csv")
+                               .put(ClassLoader
                                                
.getSystemResourceAsStream(TikaResourceTest.TEST_DOC));
-               System.out.println(metadata);
+
+               Reader reader = new InputStreamReader(
+                               (InputStream) response.getEntity());
+
+               CSVReader csvReader = new CSVReader(reader);
+
+               Map<String, String> metadata = new HashMap<String, String>();
+
+               String[] nextLine;
+               while ((nextLine = csvReader.readNext()) != null) {
+                       metadata.put(nextLine[0], nextLine[1]);
+               }
 
                assertNotNull(metadata.get("Author"));
                assertEquals("Maxim Valyanskiy", metadata.get("Author"));
        }
 
-
 }

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java?rev=1306147&r1=1306146&r2=1306147&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java
 Wed Mar 28 04:05:10 2012
@@ -17,24 +17,25 @@
 
 package org.apache.tika.server;
 
-import java.io.IOException;
-import org.apache.commons.httpclient.HttpException;
+import java.io.InputStream;
+
+import javax.ws.rs.core.Response;
 import org.apache.cxf.binding.BindingFactoryManager;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.jaxrs.JAXRSBindingFactory;
 import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
+import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
 import org.junit.Test;
 
 public class TikaResourceTest extends CXFTestBase {
-       private static final String TIKA_PATH = "tika";
+       private static final String TIKA_PATH = "/tika";
        public static final String TEST_DOC = "test.doc";
        public static final String TEST_XLSX = "16637.xlsx";
        private static final int UNPROCESSEABLE = 422;
-       private static final String service = "http://localhost:";
-                       + TikaServerCli.DEFAULT_PORT + "/";
        private static final String endPoint = "http://localhost:";
-                       + TikaServerCli.DEFAULT_PORT + "/" + TIKA_PATH;
+                       + TikaServerCli.DEFAULT_PORT;
+       private static final String WADL_MEDIA_TYPE = 
"application/vnd.sun.wadl+xml";
 
        private Server server;
 
@@ -49,7 +50,7 @@ public class TikaResourceTest extends CX
                sf.setResourceClasses(TikaResource.class);
                sf.setResourceProvider(TikaResource.class,
                                new SingletonResourceProvider(new 
TikaResource()));
-               sf.setAddress(service);
+               sf.setAddress(endPoint + "/");
                BindingFactoryManager manager = sf.getBus().getExtension(
                                BindingFactoryManager.class);
                JAXRSBindingFactory factory = new JAXRSBindingFactory();
@@ -58,7 +59,6 @@ public class TikaResourceTest extends CX
                                factory);
                server = sf.create();
        }
-       
 
        /*
         * (non-Javadoc)
@@ -70,34 +70,43 @@ public class TikaResourceTest extends CX
                server.stop();
                server.destroy();
        }
-       
 
        @Test
        public void testHelloWorld() throws Exception {
-               getAndCompare(endPoint, TikaResource.GREETING, "text/plain",
-                               "text/plain", 200);
+               Response response = WebClient.create(endPoint + TIKA_PATH)
+                               .type("text/plain").accept("text/plain").get();
+               assertEquals(TikaResource.GREETING,
+                               getStringFromInputStream((InputStream) 
response.getEntity()));
        }
 
        @Test
        public void testSimpleWord() throws Exception {
-               String responseMsg = putAndGetString(endPoint,
-                               ClassLoader
-                                               
.getSystemResourceAsStream(TikaResourceTest.TEST_DOC));
-
+               Response response = WebClient.create(endPoint + TIKA_PATH)
+                               .type("application/msword")
+                               .accept("text/plain")
+                               
.put(ClassLoader.getSystemResourceAsStream(TEST_DOC));
+               String responseMsg = getStringFromInputStream((InputStream) 
response
+                               .getEntity());
                assertTrue(responseMsg.contains("test"));
        }
 
        @Test
-       public void testApplicationWadl() throws HttpException, IOException {
-               String serviceWadl = endPoint + "/application.wadl";
-               String resp = getAndReturnResp(serviceWadl);
+       public void testApplicationWadl() throws Exception {
+               Response response = WebClient
+                               .create(endPoint + TIKA_PATH + 
"/application.wadl")
+                               .accept("text/plain").get();
+               String resp = getStringFromInputStream((InputStream) response
+                               .getEntity());
                assertTrue(resp.length() > 0);
        }
 
        @Test
        public void testPasswordXLS() throws Exception {
-               putAndCheckStatus(endPoint,
-                               
ClassLoader.getSystemResourceAsStream("password.xls"),
-                               UNPROCESSEABLE);
+               Response response = WebClient.create(endPoint + TIKA_PATH)
+                               .type("application/vnd.ms-excel")
+                               .accept("text/plain")
+                               
.put(ClassLoader.getSystemResourceAsStream("password.xls"));
+
+               assertEquals(UNPROCESSEABLE, response.getStatus());
        }
 }

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java?rev=1306147&r1=1306146&r2=1306147&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java
 Wed Mar 28 04:05:10 2012
@@ -17,16 +17,22 @@
 
 package org.apache.tika.server;
 
+import org.apache.commons.compress.archivers.ArchiveInputStream;
+import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
+import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
 import org.apache.cxf.binding.BindingFactoryManager;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.jaxrs.JAXRSBindingFactory;
 import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
+import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
 import org.junit.Test;
 
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import javax.ws.rs.core.Response;
 
 public class UnpackerResourceTest extends CXFTestBase {
        private static final String UNPACKER_PATH = "/unpacker";
@@ -55,7 +61,9 @@ public class UnpackerResourceTest extend
        private static final String DOCX_EXE2_MD5 = 
"2485435c7c22d35f2de9b4c98c0c2e1a";
        private static final String DOCX_EXE2_NAME = "Setup.exe";
        private static final String XSL_IMAGE2_MD5 = 
"8969288f4245120e7c3870287cce0ff3";
-
+       private static final String APPLICATION_MSWORD = "application/msword";
+       private static final String APPLICATION_XML = "application/xml";
+       private static final String CONTENT_TYPE = "Content-type";
 
        private Server server;
 
@@ -74,7 +82,7 @@ public class UnpackerResourceTest extend
                sf.setResourceClasses(UnpackerResource.class);
                sf.setResourceProvider(UnpackerResource.class,
                                new SingletonResourceProvider(new 
UnpackerResource()));
-               sf.setAddress(endPoint+"/");
+               sf.setAddress(endPoint + "/");
                BindingFactoryManager manager = sf.getBus().getExtension(
                                BindingFactoryManager.class);
                JAXRSBindingFactory factory = new JAXRSBindingFactory();
@@ -97,9 +105,14 @@ public class UnpackerResourceTest extend
 
        @Test
        public void testDocWAV() throws Exception {
-               Map<String, String> data = putAndGetMapData(endPoint + 
UNPACKER_PATH + 
-                               "/" + TEST_DOC_WAV,
-                               
ClassLoader.getSystemResourceAsStream(TEST_DOC_WAV), true);
+               Response response = WebClient.create(endPoint + UNPACKER_PATH)
+                               
.type(APPLICATION_MSWORD).accept("application/zip")
+                               
.put(ClassLoader.getSystemResourceAsStream(TEST_DOC_WAV));
+
+               ArchiveInputStream zip = new ZipArchiveInputStream(
+                               (InputStream) response.getEntity());
+
+               Map<String, String> data = readArchive(zip);
                assertEquals(WAV1_MD5, data.get(WAV1_NAME));
                assertEquals(WAV2_MD5, data.get(WAV2_NAME));
                assertFalse(data.containsKey(UnpackerResource.TEXT_FILENAME));
@@ -107,9 +120,14 @@ public class UnpackerResourceTest extend
 
        @Test
        public void testDocWAVText() throws Exception {
-               Map<String, String> data = putAndGetMapData(endPoint + ALL_PATH 
+ 
-                               "/" + TEST_DOC_WAV,
-                               
ClassLoader.getSystemResourceAsStream(TEST_DOC_WAV), true);
+               Response response = WebClient.create(endPoint + ALL_PATH)
+                               
.type(APPLICATION_MSWORD).accept("application/zip")
+                               
.put(ClassLoader.getSystemResourceAsStream(TEST_DOC_WAV));
+
+               ArchiveInputStream zip = new ZipArchiveInputStream(
+                               (InputStream) response.getEntity());
+
+               Map<String, String> data = readArchive(zip);
                assertEquals(WAV1_MD5, data.get(WAV1_NAME));
                assertEquals(WAV2_MD5, data.get(WAV2_NAME));
                assertTrue(data.containsKey(UnpackerResource.TEXT_FILENAME));
@@ -117,70 +135,106 @@ public class UnpackerResourceTest extend
 
        @Test
        public void testDocPicture() throws Exception {
-               Map<String, String> data = putAndGetMapData(endPoint + 
UNPACKER_PATH + 
-                               "/" + TEST_DOC_WAV,
-                               
ClassLoader.getSystemResourceAsStream(TEST_DOC_WAV), true);
+               Response response = WebClient.create(endPoint + UNPACKER_PATH)
+                               
.type(APPLICATION_MSWORD).accept("application/zip")
+                               
.put(ClassLoader.getSystemResourceAsStream(TEST_DOC_WAV));
+
+               ZipArchiveInputStream zip = new ZipArchiveInputStream(
+                               (InputStream) response.getEntity());
+               Map<String, String> data = readArchive(zip);
+
                assertEquals(JPG_MD5, data.get(JPG_NAME));
        }
 
        @Test
        public void testDocPictureNoOle() throws Exception {
-               Map<String, String> data = putAndGetMapData(endPoint + 
UNPACKER_PATH + 
-                               "/2pic.doc",
-                               
ClassLoader.getSystemResourceAsStream("2pic.doc"), true);
+               Response response = WebClient.create(endPoint + UNPACKER_PATH)
+                               
.type(APPLICATION_MSWORD).accept("application/zip")
+                               
.put(ClassLoader.getSystemResourceAsStream("2pic.doc"));
+
+               ZipArchiveInputStream zip = new ZipArchiveInputStream(
+                               (InputStream) response.getEntity());
+
+               Map<String, String> data = readArchive(zip);
                assertEquals(JPG2_MD5, data.get(JPG2_NAME));
        }
 
        @Test
        public void testImageDOCX() throws Exception {
-               Map<String, String> data = putAndGetMapData(endPoint + 
UNPACKER_PATH + 
-                               "/" + TEST_DOCX_IMAGE,
-                               
ClassLoader.getSystemResourceAsStream(TEST_DOCX_IMAGE), true);
+               Response response = WebClient.create(endPoint + UNPACKER_PATH)
+               .accept("application/zip").put(
+                               
ClassLoader.getSystemResourceAsStream(TEST_DOCX_IMAGE));
+
+               ZipArchiveInputStream zip = new ZipArchiveInputStream(
+                               (InputStream) response.getEntity());
+
+               Map<String, String> data = readArchive(zip);
                assertEquals(DOCX_IMAGE1_MD5, data.get(DOCX_IMAGE1_NAME));
                assertEquals(DOCX_IMAGE2_MD5, data.get(DOCX_IMAGE2_NAME));
        }
 
-       //FIXME: Disabled for now, pending TIKA-593 @Test
+       //FIXME: Disabled until TIKA-593 is done @Test
        public void Xtest415() throws Exception {
-               putAndCheckStatus(endPoint + UNPACKER_PATH + "/" + TEST_DOC_WAV,
-                               "xxx/xxx", 
ClassLoader.getSystemResourceAsStream(TEST_DOC_WAV), 415);
+               Response response = WebClient.create(endPoint + UNPACKER_PATH)
+                               .type("xxx/xxx").accept("application/zip")
+                               
.put(ClassLoader.getSystemResourceAsStream(TEST_DOC_WAV));
+
+               assertEquals(415, response.getStatus());
        }
 
        @Test
        public void testExeDOCX() throws Exception {
                String TEST_DOCX_EXE = "2exe.docx";
-               Map<String, String> data = putAndGetMapData(endPoint + 
UNPACKER_PATH 
-                               + "/" + TEST_DOCX_EXE,
-                               
ClassLoader.getSystemResourceAsStream(TEST_DOCX_EXE), true);
+               Response response = WebClient.create(endPoint + UNPACKER_PATH)
+                               .accept("application/zip")
+                               
.put(ClassLoader.getSystemResourceAsStream(TEST_DOCX_EXE));
+
+               ZipArchiveInputStream zip = new ZipArchiveInputStream(
+                               (InputStream) response.getEntity());
+
+               Map<String, String> data = readArchive(zip);
+
                assertEquals(DOCX_EXE1_MD5, data.get(DOCX_EXE1_NAME));
                assertEquals(DOCX_EXE2_MD5, data.get(DOCX_EXE2_NAME));
        }
 
        @Test
        public void testImageXSL() throws Exception {
-               Map<String, String> data = putAndGetMapData(endPoint + 
UNPACKER_PATH + "/" 
-                               + "pic.xls",
-                               
ClassLoader.getSystemResourceAsStream("pic.xls"), true);
+               Response response = WebClient.create(endPoint + UNPACKER_PATH)
+                               .accept("application/zip")
+                               
.put(ClassLoader.getSystemResourceAsStream("pic.xls"));
+
+               ZipArchiveInputStream zip = new ZipArchiveInputStream(
+                               (InputStream) response.getEntity());
+
+               Map<String, String> data = readArchive(zip);
                assertEquals(XSL_IMAGE1_MD5, data.get("0.jpg"));
                assertEquals(XSL_IMAGE2_MD5, data.get("1.jpg"));
        }
 
-       //FIXME: Disabled for now @Test
-       public void XtestTarDocPicture() throws Exception {
-               Map<String, String> data = putAndGetMapData(endPoint + 
UNPACKER_PATH + "/" + 
-                               TEST_DOC_WAV,
-                               
ClassLoader.getSystemResourceAsStream(TEST_DOC_WAV), false);
+       @Test
+       public void testTarDocPicture() throws Exception {
+               Response response = WebClient.create(endPoint + UNPACKER_PATH)
+                               
.type(APPLICATION_MSWORD).accept("application/x-tar")
+                               
.put(ClassLoader.getSystemResourceAsStream(TEST_DOC_WAV));
+
+               Map<String, String> data = readArchive(new 
TarArchiveInputStream(
+                               (InputStream) response.getEntity()));
+
                assertEquals(JPG_MD5, data.get(JPG_NAME));
        }
 
-       //FIXME: Disabled for now @Test
-       public void XtestText() throws Exception {
-               String responseMsg = putAndGetArchiveText(endPoint + 
UNPACKER_PATH + "/" + 
-                               "test.doc",
-                               
ClassLoader.getSystemResourceAsStream("test.doc"), true);
+       @Test
+       public void testText() throws Exception {
+               Response response = WebClient.create(endPoint + ALL_PATH)
+                               .header(CONTENT_TYPE, APPLICATION_XML)
+                               .accept("application/zip")
+                               
.put(ClassLoader.getSystemResourceAsStream("test.doc"));
+
+               String responseMsg = readArchiveText(new ZipArchiveInputStream(
+                               (InputStream) response.getEntity()));
                assertNotNull(responseMsg);
                assertTrue(responseMsg.contains("test"));
        }
 
-
 }


Reply via email to