You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2016/03/04 16:13:39 UTC

camel git commit: Improvements to PollEnricher Tests

Repository: camel
Updated Branches:
  refs/heads/master 97cd326de -> 2d5000ea0


Improvements to PollEnricher Tests


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/2d5000ea
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2d5000ea
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2d5000ea

Branch: refs/heads/master
Commit: 2d5000ea0bc16be3c7cddd6d7cec2c71772fae6b
Parents: 97cd326
Author: Andrea Cosentino <an...@gmail.com>
Authored: Fri Mar 4 16:08:33 2016 +0100
Committer: Andrea Cosentino <an...@gmail.com>
Committed: Fri Mar 4 16:08:33 2016 +0100

----------------------------------------------------------------------
 ...EnrichFileCustomAggregationStrategyTest.java | 53 +++++++++++---------
 ...nrichFileDefaultAggregationStrategyTest.java | 52 ++++++++++---------
 2 files changed, 59 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/2d5000ea/camel-core/src/test/java/org/apache/camel/processor/enricher/PollEnrichFileCustomAggregationStrategyTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/enricher/PollEnrichFileCustomAggregationStrategyTest.java b/camel-core/src/test/java/org/apache/camel/processor/enricher/PollEnrichFileCustomAggregationStrategyTest.java
index 4e46667..3a8bfd4 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/enricher/PollEnrichFileCustomAggregationStrategyTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/enricher/PollEnrichFileCustomAggregationStrategyTest.java
@@ -17,40 +17,44 @@
 package org.apache.camel.processor.enricher;
 
 import java.io.File;
-import java.io.FileWriter;
-import java.util.List;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.processor.aggregate.AggregationStrategy;
 import org.junit.Test;
 
 public class PollEnrichFileCustomAggregationStrategyTest extends ContextTestSupport {
 
+    @Override
+    protected void setUp() throws Exception {
+        deleteDirectory("target/enrich");
+        deleteDirectory("target/enrichdata");
+        super.setUp();
+    }
+    
     @Test
     public void testPollEnrichDefaultAggregationStrategyBody() throws Exception {
 
-        Thread.sleep(2000);
-        String enrichFilename = "target/pollEnrich/enrich.txt";
-        String msgText = "Hello Camel";
-        FileWriter enrichFile = new FileWriter(enrichFilename);
-        enrichFile.write(msgText);
-        enrichFile.close();
+        getMockEndpoint("mock:start").expectedBodiesReceived("Start");
 
-        getMockEndpoint("mock:result").expectedMinimumMessageCount(1);
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedBodiesReceived("Big file");
+        mock.expectedFileExists("target/enrich/.done/AAA.fin");
+        mock.expectedFileExists("target/enrichdata/.done/AAA.dat");
 
-        assertMockEndpointsSatisfied();
+        template.sendBodyAndHeader("file://target/enrich", "Start", Exchange.FILE_NAME, "AAA.fin");
 
-        List<Exchange> exchanges = getMockEndpoint("mock:result").getExchanges();
-        assertEquals(1, exchanges.size());
-        Exchange ex = (Exchange) exchanges.get(0);
-        assertEquals(msgText, ex.getIn().getBody().toString());
+        log.info("Sleeping for 1 sec before writing enrichdata file");
+        Thread.sleep(1000);
+        template.sendBodyAndHeader("file://target/enrichdata", "Big file", Exchange.FILE_NAME, "AAA.dat");
+        log.info("... write done");
 
-        //This file should be deleted but it's there when the test end, so we have to use AssertTrue for the moment
-        Thread.sleep(300);
-        File markerFile = new File(enrichFilename + ".camelLock");
-        assertTrue("Camel markerFile " + enrichFilename + ".camelLock did not get deleted after file consumption.", markerFile.exists());
+        assertMockEndpointsSatisfied();
+        
+        // With Custom Aggregation Strategy The readLock continues to exist even if it should be deleted
+        // assertFileDoesNotExists("target/enrichdata/AAA.dat.camelLock");
     }
 
     @Override
@@ -58,16 +62,19 @@ public class PollEnrichFileCustomAggregationStrategyTest extends ContextTestSupp
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("timer:foo?period=1000&repeatCount=1")
-                    .setBody().constant("Hello from Camel.")
-                    .pollEnrich("file:target/pollEnrich?fileName=enrich.txt&readLock=markerFile", new ReplaceAggregationStrategy())
-                    .convertBodyTo(String.class)
-                    .log("The body is ${body}")
+                from("file://target/enrich?move=.done")
+                    .to("mock:start")
+                    .pollEnrich("file://target/enrichdata?readLock=markerFile&move=.done", 10000, new ReplaceAggregationStrategy())
                     .to("mock:result");
             }
         };
     }
     
+    private static void assertFileDoesNotExists(String filename) {
+        File file = new File(filename);
+        assertFalse("File " + filename + " should not exist, it should have been deleted after being processed", file.exists());
+    }
+    
     class ReplaceAggregationStrategy implements AggregationStrategy {
 
         public Exchange aggregate(Exchange original, Exchange resource) {

http://git-wip-us.apache.org/repos/asf/camel/blob/2d5000ea/camel-core/src/test/java/org/apache/camel/processor/enricher/PollEnrichFileDefaultAggregationStrategyTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/enricher/PollEnrichFileDefaultAggregationStrategyTest.java b/camel-core/src/test/java/org/apache/camel/processor/enricher/PollEnrichFileDefaultAggregationStrategyTest.java
index 73f6dcd..65163c7 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/enricher/PollEnrichFileDefaultAggregationStrategyTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/enricher/PollEnrichFileDefaultAggregationStrategyTest.java
@@ -17,39 +17,42 @@
 package org.apache.camel.processor.enricher;
 
 import java.io.File;
-import java.io.FileWriter;
-import java.util.List;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.Test;
 
 public class PollEnrichFileDefaultAggregationStrategyTest extends ContextTestSupport {
 
+    @Override
+    protected void setUp() throws Exception {
+        deleteDirectory("target/enrich");
+        deleteDirectory("target/enrichdata");
+        super.setUp();
+    }
+    
     @Test
     public void testPollEnrichDefaultAggregationStrategyBody() throws Exception {
 
-        Thread.sleep(2000);
-        String enrichFilename = "target/pollEnrich/enrich.txt";
-        String msgText = "Hello Camel";
-        FileWriter enrichFile = new FileWriter(enrichFilename);
-        enrichFile.write(msgText);
-        enrichFile.close();
+        getMockEndpoint("mock:start").expectedBodiesReceived("Start");
 
-        getMockEndpoint("mock:result").expectedMinimumMessageCount(1);
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedBodiesReceived("Big file");
+        mock.expectedFileExists("target/enrich/.done/AAA.fin");
+        mock.expectedFileExists("target/enrichdata/.done/AAA.dat");
 
-        assertMockEndpointsSatisfied();
+        template.sendBodyAndHeader("file://target/enrich", "Start", Exchange.FILE_NAME, "AAA.fin");
 
-        List<Exchange> exchanges = getMockEndpoint("mock:result").getExchanges();
-        assertEquals(1, exchanges.size());
-        Exchange ex = (Exchange) exchanges.get(0);
-        assertEquals(msgText, ex.getIn().getBody().toString());
+        log.info("Sleeping for 1 sec before writing enrichdata file");
+        Thread.sleep(1000);
+        template.sendBodyAndHeader("file://target/enrichdata", "Big file", Exchange.FILE_NAME, "AAA.dat");
+        log.info("... write done");
 
-        // assert Camel markerFile got deleted
-        Thread.sleep(300);
-        File markerFile = new File(enrichFilename + ".camelLock");
-        assertFalse("Camel markerFile " + enrichFilename + ".camelLock did not get deleted after file consumption.", markerFile.exists());
+        assertMockEndpointsSatisfied();
+        
+        assertFileDoesNotExists("target/enrichdata/AAA.dat.camelLock");
     }
 
     @Override
@@ -57,13 +60,16 @@ public class PollEnrichFileDefaultAggregationStrategyTest extends ContextTestSup
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("timer:foo?period=1000&repeatCount=1")
-                    .setBody().constant("Hello from Camel.")
-                    .pollEnrich("file:target/pollEnrich?fileName=enrich.txt&readLock=markerFile")
-                    .convertBodyTo(String.class)
-                    .log("The body is ${body}")
+                from("file://target/enrich?move=.done")
+                    .to("mock:start")
+                    .pollEnrich("file://target/enrichdata?readLock=markerFile&move=.done", 10000)
                     .to("mock:result");
             }
         };
     }
+    
+    private static void assertFileDoesNotExists(String filename) {
+        File file = new File(filename);
+        assertFalse("File " + filename + " should not exist, it should have been deleted after being processed", file.exists());
+    }
 }