Author: davsclaus
Date: Tue Aug 23 06:58:27 2011
New Revision: 1160565
URL: http://svn.apache.org/viewvc?rev=1160565&view=rev
Log:
Added unit test based on user forum issue.
Added:
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerTemplateTest.java
- copied, changed from r1160554,
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java
Copied:
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerTemplateTest.java
(from r1160554,
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerTemplateTest.java?p2=camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerTemplateTest.java&p1=camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java&r1=1160554&r2=1160565&rev=1160565&view=diff
==============================================================================
---
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpDeleteFileTest.java
(original)
+++
camel/trunk/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FtpConsumerTemplateTest.java
Tue Aug 23 06:58:27 2011
@@ -21,18 +21,13 @@ import java.io.File;
import org.apache.camel.Endpoint;
import org.apache.camel.Exchange;
import org.apache.camel.Producer;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
import org.junit.Before;
import org.junit.Test;
-/**
- * Unit test to test delete option.
- */
-public class FromFtpDeleteFileTest extends FtpServerTestSupport {
+public class FtpConsumerTemplateTest extends FtpServerTestSupport {
protected String getFtpUrl() {
- return "ftp://admin@localhost:" + getPort() +
"/deletefile?password=admin&binary=false&delete=true";
+ return "ftp://admin@localhost:" + getPort() +
"/template?password=admin";
}
@Override
@@ -41,29 +36,76 @@ public class FromFtpDeleteFileTest exten
super.setUp();
prepareFtpServer();
}
-
+
+ @Override
+ public boolean isUseRouteBuilder() {
+ return false;
+ }
+
+ @Test
+ public void testConsumerTemplate() throws Exception {
+ Exchange exchange = consumer.receive(getFtpUrl(), 5000);
+ assertNotNull(exchange);
+ assertEquals("hello.txt",
exchange.getIn().getHeader(Exchange.FILE_NAME));
+ assertEquals("Hello World", exchange.getIn().getBody(String.class));
+
+ // must done when we are done using the exchange
+ consumer.doneUoW(exchange);
+
+ Thread.sleep(500);
+
+ // poll the same file again
+ exchange = consumer.receive(getFtpUrl(), 5000);
+ assertNotNull(exchange);
+ assertEquals("hello.txt",
exchange.getIn().getHeader(Exchange.FILE_NAME));
+ assertEquals("Hello World", exchange.getIn().getBody(String.class));
+
+ // must done when we are done using the exchange
+ consumer.doneUoW(exchange);
+
+ // file should still exists
+ Thread.sleep(500);
+ File file = new File(FTP_ROOT_DIR + "template/hello.txt");
+ file = file.getAbsoluteFile();
+ assertTrue("The file should exist: " + file, file.exists());
+ }
+
@Test
- public void testPollFileAndShouldBeDeleted() throws Exception {
- MockEndpoint mock = getMockEndpoint("mock:result");
- mock.expectedMessageCount(1);
- mock.expectedBodiesReceived("Hello World this file will be deleted");
+ public void testConsumerTemplateNotDone() throws Exception {
+ Exchange exchange = consumer.receive(getFtpUrl(), 5000);
+ assertNotNull(exchange);
+ assertEquals("hello.txt",
exchange.getIn().getHeader(Exchange.FILE_NAME));
+ assertEquals("Hello World", exchange.getIn().getBody(String.class));
- mock.assertIsSatisfied();
+ // forget to call done
Thread.sleep(500);
- // assert the file is deleted
- File file = new File(FTP_ROOT_DIR + "deletefile/hello.txt");
+ // try poll the same file again
+ Exchange exchange2 = consumer.receive(getFtpUrl(), 2000);
+ assertNull(exchange2);
+
+ // now done the original exchange
+ consumer.doneUoW(exchange);
+
+ // now we can poll the file again as we have done the exchange
+ exchange2 = consumer.receive(getFtpUrl(), 2000);
+ assertNotNull(exchange2);
+ assertEquals("hello.txt",
exchange2.getIn().getHeader(Exchange.FILE_NAME));
+ assertEquals("Hello World", exchange2.getIn().getBody(String.class));
+ consumer.doneUoW(exchange2);
+
+ // file should still exists
+ Thread.sleep(500);
+ File file = new File(FTP_ROOT_DIR + "template/hello.txt");
file = file.getAbsoluteFile();
- assertFalse("The file should have been deleted", file.exists());
+ assertTrue("The file should exist: " + file, file.exists());
}
private void prepareFtpServer() throws Exception {
- // prepares the FTP Server by creating a file on the server that we
want to unit
- // test that we can pool and store as a local file
Endpoint endpoint = context.getEndpoint(getFtpUrl());
Exchange exchange = endpoint.createExchange();
- exchange.getIn().setBody("Hello World this file will be deleted");
+ exchange.getIn().setBody("Hello World");
exchange.getIn().setHeader(Exchange.FILE_NAME, "hello.txt");
Producer producer = endpoint.createProducer();
producer.start();
@@ -71,16 +113,9 @@ public class FromFtpDeleteFileTest exten
producer.stop();
// assert file is created
- File file = new File(FTP_ROOT_DIR + "deletefile/hello.txt");
+ File file = new File(FTP_ROOT_DIR + "template/hello.txt");
file = file.getAbsoluteFile();
- assertTrue("The file should exists", file.exists());
+ assertTrue("The file should exist: " + file, file.exists());
}
- protected RouteBuilder createRouteBuilder() throws Exception {
- return new RouteBuilder() {
- public void configure() throws Exception {
- from(getFtpUrl()).to("mock:result");
- }
- };
- }
}
\ No newline at end of file