Author: davsclaus
Date: Wed Apr  6 08:26:11 2011
New Revision: 1089348

URL: http://svn.apache.org/viewvc?rev=1089348&view=rev
Log:
CAMEL-3838: Added unit test.

Added:
    
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileIssueTest.java
    
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileStopIssueTest.java
      - copied, changed from r1088914, 
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java
Modified:
    
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java

Added: 
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileIssueTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileIssueTest.java?rev=1089348&view=auto
==============================================================================
--- 
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileIssueTest.java
 (added)
+++ 
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileIssueTest.java
 Wed Apr  6 08:26:11 2011
@@ -0,0 +1,90 @@
+/**
+ * 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.
+ */
+package org.apache.camel.component.jetty;
+
+import java.io.File;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.converter.stream.CachedOutputStream;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @version 
+ */
+public class HttpStreamCacheFileIssueTest extends BaseJettyTest {
+
+    private String body = "12345678901234567890123456789012345678901234567890";
+
+    @Override
+    @Before
+    public void setUp() throws Exception {
+        deleteDirectory("./target/cachedir");
+        createDirectory("./target/cachedir");
+        super.setUp();
+    }
+
+    @Test
+    public void testStreamCacheToFileShouldBeDeletedInCaseOfStop() throws 
Exception {
+        getMockEndpoint("mock:result").expectedMessageCount(1);
+
+        String out = template.requestBody("direct:start", "Hello World", 
String.class);
+        assertEquals(body, out);
+
+        // the temporary files should have been deleted
+        File file = new File("./target/cachedir");
+        String[] files = file.list();
+        assertEquals("There should be no files", 0, files.length);
+
+       assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                // enable stream caching and use a low threshold so its forced 
to write to file
+                context.getProperties().put(CachedOutputStream.TEMP_DIR, 
"./target/cachedir");
+                context.getProperties().put(CachedOutputStream.THRESHOLD, 
"16");
+                context.setStreamCaching(true);
+
+                // use a route so we got an unit of work
+                from("direct:start")
+                    .to("http://localhost:{{port}}/myserver";)
+                    .process(new Processor() {
+                        public void process(Exchange exchange) throws 
Exception {
+                            // there should be a temp cache file
+                            File file = new File("./target/cachedir");
+                            String[] files = file.list();
+                            assertTrue("There should be a temp cache file", 
files.length > 0);
+                        }
+                    })
+                    // TODO: CAMEL-3839: need to convert the body to a String 
as the tmp file will be deleted
+                    // before the producer template can convert the result back
+                    .convertBodyTo(String.class)
+                    .to("mock:result");
+
+                from("jetty://http://localhost:{{port}}/myserver";)
+                    .transform().constant(body);
+            }
+        };
+    }
+
+}

Copied: 
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileStopIssueTest.java
 (from r1088914, 
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java)
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileStopIssueTest.java?p2=camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileStopIssueTest.java&p1=camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java&r1=1088914&r2=1089348&rev=1089348&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java
 (original)
+++ 
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileStopIssueTest.java
 Wed Apr  6 08:26:11 2011
@@ -18,19 +18,17 @@ package org.apache.camel.component.jetty
 
 import java.io.File;
 
-import org.apache.camel.CamelExecutionException;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.http.HttpOperationFailedException;
 import org.apache.camel.converter.stream.CachedOutputStream;
 import org.junit.Before;
 import org.junit.Test;
 
 /**
- * @version 
+ * @version
  */
-public class HttpStreamCacheFileTest extends BaseJettyTest {
+public class HttpStreamCacheFileStopIssueTest extends BaseJettyTest {
 
     private String body = "12345678901234567890123456789012345678901234567890";
 
@@ -43,37 +41,18 @@ public class HttpStreamCacheFileTest ext
     }
 
     @Test
-    public void testStreamCacheToFileShouldBeDeletedInCaseOfResponse() throws 
Exception {
-        String out = template.requestBody("direct:start", "Hello World", 
String.class);
-        assertEquals("Bye World", out);
+    public void testStreamCacheToFileShouldBeDeletedInCaseOfStop() throws 
Exception {
+        getMockEndpoint("mock:result").expectedMessageCount(0);
 
-        // give time for files to be deleted etc.
-        Thread.sleep(2000);
+        String out = template.requestBody("direct:start", "Hello World", 
String.class);
+        assertEquals(body, out);
 
         // the temporary files should have been deleted
         File file = new File("./target/cachedir");
         String[] files = file.list();
         assertEquals("There should be no files", 0, files.length);
-    }
-
-    @Test
-    public void testStreamCacheToFileShouldBeDeletedInCaseOfException() throws 
Exception {
-        try {
-            template.requestBody("direct:start", null, String.class);
-            fail("Should have thrown an exception");
-        } catch (CamelExecutionException e) {
-            HttpOperationFailedException hofe = 
assertIsInstanceOf(HttpOperationFailedException.class, e.getCause());
-            String s = context.getTypeConverter().convertTo(String.class, 
hofe.getResponseBody());
-            assertEquals("Response body", body, s);
-        }
 
-        // give time for files to be deleted etc.
-        Thread.sleep(2000);
-
-        // the temporary files should have been deleted
-        File file = new File("./target/cachedir");
-        String[] files = file.list();
-        assertEquals("There should be no files", 0, files.length);
+       assertMockEndpointsSatisfied();
     }
 
     @Override
@@ -87,19 +66,25 @@ public class HttpStreamCacheFileTest ext
                 context.setStreamCaching(true);
 
                 // use a route so we got an unit of work
-                from("direct:start").to("http://localhost:{{port}}/myserver";);
+                from("direct:start")
+                    .to("http://localhost:{{port}}/myserver";)
+                    .process(new Processor() {
+                        public void process(Exchange exchange) throws 
Exception {
+                            // there should be a temp cache file
+                            File file = new File("./target/cachedir");
+                            String[] files = file.list();
+                            assertTrue("There should be a temp cache file", 
files.length > 0);
+                        }
+                    })
+                    // TODO: CAMEL-3839: need to convert the body to a String 
as the tmp file will be deleted
+                    // before the producer template can convert the result back
+                    .convertBodyTo(String.class)
+                    // mark the exchange to stop continue routing
+                    .stop()
+                    .to("mock:result");
 
                 from("jetty://http://localhost:{{port}}/myserver";)
-                        .process(new Processor() {
-                            public void process(Exchange exchange) throws 
Exception {
-                                if (exchange.getIn().getBody() == null) {
-                                    
exchange.getOut().setBody("12345678901234567890123456789012345678901234567890");
-                                    
exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 500);
-                                } else {
-                                    exchange.getOut().setBody("Bye World");
-                                }
-                            }
-                        });
+                    .transform().constant(body);
             }
         };
     }

Modified: 
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java?rev=1089348&r1=1089347&r2=1089348&view=diff
==============================================================================
--- 
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java
 (original)
+++ 
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpStreamCacheFileTest.java
 Wed Apr  6 08:26:11 2011
@@ -47,9 +47,6 @@ public class HttpStreamCacheFileTest ext
         String out = template.requestBody("direct:start", "Hello World", 
String.class);
         assertEquals("Bye World", out);
 
-        // give time for files to be deleted etc.
-        Thread.sleep(2000);
-
         // the temporary files should have been deleted
         File file = new File("./target/cachedir");
         String[] files = file.list();
@@ -67,9 +64,6 @@ public class HttpStreamCacheFileTest ext
             assertEquals("Response body", body, s);
         }
 
-        // give time for files to be deleted etc.
-        Thread.sleep(2000);
-
         // the temporary files should have been deleted
         File file = new File("./target/cachedir");
         String[] files = file.list();
@@ -93,7 +87,7 @@ public class HttpStreamCacheFileTest ext
                         .process(new Processor() {
                             public void process(Exchange exchange) throws 
Exception {
                                 if (exchange.getIn().getBody() == null) {
-                                    
exchange.getOut().setBody("12345678901234567890123456789012345678901234567890");
+                                    exchange.getOut().setBody(body);
                                     
exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 500);
                                 } else {
                                     exchange.getOut().setBody("Bye World");


Reply via email to