Author: olamy
Date: Fri Mar 16 23:35:00 2012
New Revision: 1301823

URL: http://svn.apache.org/viewvc?rev=1301823&view=rev
Log:
add an upload file unit test

Added:
    tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/
    tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/
    tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/org/
    
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/org/apache/
    
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/org/apache/tomcat/
    
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/org/apache/tomcat/maven/
    
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/org/apache/tomcat/maven/common/
    
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/org/apache/tomcat/maven/common/TomcatManagerTest.java
   (with props)
    tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/resources/
    
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/resources/test.txt
   (with props)
Modified:
    tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/pom.xml

Modified: tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/pom.xml
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/pom.xml?rev=1301823&r1=1301822&r2=1301823&view=diff
==============================================================================
--- tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/pom.xml (original)
+++ tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/pom.xml Fri Mar 16 
23:35:00 2012
@@ -77,6 +77,27 @@
     </dependency>
 
     <dependency>
+      <groupId>org.apache.tomcat.embed</groupId>
+      <artifactId>tomcat-embed-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>tomcat-juli</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.tomcat.embed</groupId>
+      <artifactId>tomcat-embed-logging-juli</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.tomcat</groupId>
+      <artifactId>tomcat-servlet-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-component-annotations</artifactId>
       <version>1.5.5</version>
@@ -109,6 +130,15 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <systemPropertyVariables>
+            <basedir>${basedir}</basedir>
+          </systemPropertyVariables>
+        </configuration>
+      </plugin>
     </plugins>
 
   </build>

Added: 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/org/apache/tomcat/maven/common/TomcatManagerTest.java
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/org/apache/tomcat/maven/common/TomcatManagerTest.java?rev=1301823&view=auto
==============================================================================
--- 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/org/apache/tomcat/maven/common/TomcatManagerTest.java
 (added)
+++ 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/org/apache/tomcat/maven/common/TomcatManagerTest.java
 Fri Mar 16 23:35:00 2012
@@ -0,0 +1,141 @@
+package org.apache.tomcat.maven.common;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import junit.framework.TestCase;
+import org.apache.catalina.Context;
+import org.apache.catalina.startup.Tomcat;
+import org.apache.commons.io.IOUtils;
+import org.apache.tomcat.maven.common.deployer.TomcatManager;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Olivier Lamy
+ */
+public class TomcatManagerTest
+    extends TestCase
+{
+
+    Tomcat tomcat;
+
+    UploadServlet uploadServlet;
+
+    int port;
+
+    public static String getBasedir()
+    {
+        return System.getProperty( "basedir" );
+    }
+
+    @Override
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+        tomcat = new Tomcat();
+        tomcat.setBaseDir( System.getProperty( "java.io.tmpdir" ) );
+        tomcat.setPort( 0 );
+
+        Context context = tomcat.addContext( "", System.getProperty( 
"java.io.tmpdir" ) );
+        uploadServlet = new UploadServlet();
+        tomcat.addServlet( context, "foo", uploadServlet );
+        context.addServletMapping( "/*", "foo" );
+
+        tomcat.start();
+
+        port = tomcat.getConnector().getLocalPort();
+
+        System.out.println( "Tomcat started on port:" + port );
+    }
+
+    @Override
+    protected void tearDown()
+        throws Exception
+    {
+        super.tearDown();
+        tomcat.stop();
+    }
+
+
+    public void testDeployWar()
+        throws Exception
+    {
+        TomcatManager tomcatManager = new TomcatManager( new URL( 
"http://localhost:"; + this.port + "/foo/bar" ) );
+        tomcatManager.deploy( "foo", new FileInputStream( new File( 
getBasedir(), "src/test/resources/test.txt" ) ) );
+        StringWriter sw = new StringWriter();
+        assertEquals( 1, uploadServlet.uploadedResources.size() );
+        FileInputStream fileInputStream = new FileInputStream( 
uploadServlet.uploadedResources.get( 0 ).uploadedFile );
+        try
+        {
+            IOUtils.copy( fileInputStream, sw );
+            assertTrue( sw.toString().contains( "Apache Tomcat rocks!!" ) );
+        }
+        finally
+        {
+            fileInputStream.close();
+        }
+    }
+
+    //-----------------------------
+    // internal for tests
+    //-----------------------------
+
+    public class UploadedResource
+    {
+        public String requestUri;
+
+        public File uploadedFile;
+
+        public UploadedResource( String requestUri, File uploadedFile )
+        {
+            this.requestUri = requestUri;
+            this.uploadedFile = uploadedFile;
+        }
+    }
+
+    public class UploadServlet
+        extends HttpServlet
+    {
+
+        public List<UploadedResource> uploadedResources = new 
ArrayList<UploadedResource>();
+
+        @Override
+        protected void doPut( HttpServletRequest req, HttpServletResponse resp 
)
+            throws ServletException, IOException
+        {
+            System.out.println( "put ok:" + req.getRequestURI() );
+            super.doPut( req, resp );
+            File file = File.createTempFile( "tomcat-unit-test", "tmp" );
+            uploadedResources.add( new UploadedResource( req.getRequestURI(), 
file ) );
+            IOUtils.copy( req.getInputStream(), new FileOutputStream( file ) );
+        }
+    }
+}

Propchange: 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/org/apache/tomcat/maven/common/TomcatManagerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/java/org/apache/tomcat/maven/common/TomcatManagerTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/resources/test.txt
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/resources/test.txt?rev=1301823&view=auto
==============================================================================
--- 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/resources/test.txt
 (added)
+++ 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/resources/test.txt
 Fri Mar 16 23:35:00 2012
@@ -0,0 +1,2 @@
+Apache Tomcat rocks!!
+hey Apache Maven rocks too :P
\ No newline at end of file

Propchange: 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/resources/test.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tomcat/maven-plugin/trunk/common-tomcat-maven-plugin/src/test/resources/test.txt
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to