This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch sandbox/camel-3.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit fbee9c11b80bc071e082291db6a7f0818e77d9d1 Author: Jan <jbou...@redhat.com> AuthorDate: Tue Nov 13 10:28:39 2018 +0100 Refactor dopbox tests --- components/camel-dropbox/pom.xml | 32 +++++-- .../component/dropbox/DropboxConsumerTest.java | 16 ++-- .../dropbox/integration/DropboxTestSupport.java | 66 ++++++++++--- .../consumer/DropboxConsumerGetSingleTest.java | 25 ++--- .../consumer/DropboxConsumerSearchQueryTest.java | 23 ++--- .../consumer/DropboxConsumerSearchTest.java | 56 ----------- .../producer/DropboxProducerDelTest.java | 54 ++++------- .../producer/DropboxProducerGetFolderTest.java | 106 ++++++--------------- .../producer/DropboxProducerGetSingleTest.java | 61 ++++-------- .../producer/DropboxProducerMoveTest.java | 59 ++++-------- .../producer/DropboxProducerPutSingleFileTest.java | 99 +++++++++++-------- ...boxProducerPutSingleFileWithRemotePathTest.java | 96 ------------------- .../DropboxProducerPutWithRemotePathTest.java | 95 ------------------ .../producer/DropboxProducerSearchQueryTest.java | 66 +++++-------- .../producer/DropboxProducerSearchTest.java | 92 ------------------ .../src/test/resources/test-options.properties | 3 +- 16 files changed, 268 insertions(+), 681 deletions(-) diff --git a/components/camel-dropbox/pom.xml b/components/camel-dropbox/pom.xml index 5553e80..0344d28 100644 --- a/components/camel-dropbox/pom.xml +++ b/components/camel-dropbox/pom.xml @@ -97,27 +97,39 @@ </dependency> </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <excludes> + <exclude> + **/integration/** + </exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </build> + <profiles> <profile> - <id>no-integration-test</id> - <activation> - <activeByDefault>true</activeByDefault> - </activation> + <id>dropbox-test</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <excludes> - <exclude> - **/integration/** - </exclude> - </excludes> + <configuration combine.self="override"> + <includes> + <include>**/*Test.java</include> + </includes> </configuration> </plugin> </plugins> </build> + </profile> </profiles> diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/DropboxConsumerTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/DropboxConsumerTest.java index 199d5da..6fee8a6 100644 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/DropboxConsumerTest.java +++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/DropboxConsumerTest.java @@ -21,22 +21,20 @@ import org.apache.camel.Endpoint; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.dropbox.integration.DropboxTestSupport; import org.apache.camel.component.dropbox.integration.consumer.DropboxScheduledPollGetConsumer; +import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Assert; import org.junit.Test; -public class DropboxConsumerTest extends DropboxTestSupport { - - public DropboxConsumerTest() throws Exception { - } +public class DropboxConsumerTest extends CamelTestSupport { @Override - protected RouteBuilder createRouteBuilder() throws Exception { + protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { @Override public void configure() throws Exception { - from("dropbox://get?accessToken={{accessToken}}&remotePath=/path").to("mock:test1"); + from("dropbox://get?accessToken=accessToken&remotePath=/path").to("mock:test1"); - from("dropbox://get?accessToken={{accessToken}}&remotePath=/path with spaces/file").to("mock:test2"); + from("dropbox://get?accessToken=accessToken&remotePath=/path with spaces/file").to("mock:test2"); } }; } @@ -44,7 +42,7 @@ public class DropboxConsumerTest extends DropboxTestSupport { @Test public void shouldCreateGetConsumer() throws Exception { // Given - Endpoint dropboxEndpoint1 = context.getEndpoint("dropbox://get?accessToken={{accessToken}}&remotePath=/path"); + Endpoint dropboxEndpoint1 = context.getEndpoint("dropbox://get?accessToken=accessToken&remotePath=/path"); // When Consumer consumer1 = dropboxEndpoint1.createConsumer(null); @@ -53,7 +51,7 @@ public class DropboxConsumerTest extends DropboxTestSupport { Assert.assertTrue(consumer1 instanceof DropboxScheduledPollGetConsumer); // Given - Endpoint dropboxEndpoint2 = context.getEndpoint("dropbox://get?accessToken={{accessToken}}&remotePath=/path with spaces/file"); + Endpoint dropboxEndpoint2 = context.getEndpoint("dropbox://get?accessToken=accessToken&remotePath=/path with spaces/file"); // When Consumer consumer2 = dropboxEndpoint2.createConsumer(null); diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/DropboxTestSupport.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/DropboxTestSupport.java index 9636142..ef174b7 100644 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/DropboxTestSupport.java +++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/DropboxTestSupport.java @@ -16,36 +16,78 @@ */ package org.apache.camel.component.dropbox.integration; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; -import java.net.URL; import java.util.Properties; - +import com.dropbox.core.DbxDownloader; +import com.dropbox.core.DbxException; +import com.dropbox.core.DbxRequestConfig; +import com.dropbox.core.v2.DbxClientV2; +import com.dropbox.core.v2.files.FileMetadata; import org.apache.camel.test.junit4.CamelTestSupport; +import org.junit.Before; public class DropboxTestSupport extends CamelTestSupport { + protected final Properties properties; + protected String workdir; + protected String token; + private DbxClientV2 client; protected DropboxTestSupport() { - URL url = getClass().getResource("/test-options.properties"); - - InputStream inStream; - try { - inStream = url.openStream(); + properties = new Properties(); + try (InputStream inStream = getClass().getResourceAsStream("/test-options.properties")) { + properties.load(inStream); } catch (IOException e) { e.printStackTrace(); throw new IllegalAccessError("test-options.properties could not be found"); } - properties = new Properties(); + workdir = properties.getProperty("workDir"); + token = properties.getProperty("accessToken"); + + DbxRequestConfig config = DbxRequestConfig.newBuilder(properties.getProperty("clientIdentifier")).build(); + client = new DbxClientV2(config, token); + + } + + @Before + public void setUpWorkingFolder() throws DbxException { + createDir(workdir); + } + + protected void createDir(String name) throws DbxException { try { - properties.load(inStream); - } catch (IOException e) { - e.printStackTrace(); - throw new IllegalAccessError("test-options.properties could not be found"); + removeDir(name); + } finally { + client.files().createFolder(name); + } + } + + protected void removeDir(String name) throws DbxException { + client.files().delete(name); + } + + protected void createFile(String fileName, String content) throws IOException { + try { + client.files().uploadBuilder(workdir + "/" + fileName).uploadAndFinish(new ByteArrayInputStream(content.getBytes())); + } catch (DbxException e) { + log.info("folder is already created"); + } + + } + + protected String getFileContent(String path) throws DbxException, IOException { + ByteArrayOutputStream target = new ByteArrayOutputStream(); + DbxDownloader<FileMetadata> downloadedFile = client.files().download(path); + if (downloadedFile != null) { + downloadedFile.download(target); } + return new String(target.toByteArray()); } @Override diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerGetSingleTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerGetSingleTest.java index b9b340c..c923c68 100644 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerGetSingleTest.java +++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerGetSingleTest.java @@ -16,9 +16,6 @@ */ package org.apache.camel.component.dropbox.integration.consumer; -import java.util.List; - -import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.dropbox.integration.DropboxTestSupport; import org.apache.camel.component.dropbox.util.DropboxResultHeader; @@ -27,29 +24,27 @@ import org.junit.Test; public class DropboxConsumerGetSingleTest extends DropboxTestSupport { - public DropboxConsumerGetSingleTest() throws Exception { } + public static final String FILE_NAME = "myFile.txt"; @Test public void testCamelDropbox() throws Exception { + final String content = "Hi camels"; + createFile(FILE_NAME, content); - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); + context.startRoute("consumer"); - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.DOWNLOADED_FILE.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); + MockEndpoint mock = getMockEndpoint("mock:result"); + mock.expectedMinimumMessageCount(1); + mock.expectedBodiesReceived(content); + mock.expectedHeaderReceived(DropboxResultHeader.DOWNLOADED_FILE.name(), String.format("%s/%s", workdir, FILE_NAME)); + mock.assertIsSatisfied(); } @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { public void configure() { - from("dropbox://get?accessToken={{accessToken}}&remotePath=XXX") - .to("file:XXX") + from(String.format("dropbox://get?accessToken={{accessToken}}&remotePath=%s/%s", workdir, FILE_NAME)).autoStartup(false).id("consumer") .to("mock:result"); } }; diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerSearchQueryTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerSearchQueryTest.java index 253efd1..d343a75 100644 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerSearchQueryTest.java +++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerSearchQueryTest.java @@ -16,9 +16,6 @@ */ package org.apache.camel.component.dropbox.integration.consumer; -import java.util.List; - -import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.dropbox.integration.DropboxTestSupport; import org.apache.camel.component.dropbox.util.DropboxResultHeader; @@ -27,28 +24,26 @@ import org.junit.Test; public class DropboxConsumerSearchQueryTest extends DropboxTestSupport { - public DropboxConsumerSearchQueryTest() throws Exception { } + public static final String FILE_NAME = "myTestFile.txt"; @Test public void testCamelDropbox() throws Exception { + final String content = "Hi camels"; + createFile(FILE_NAME, content); - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); + context.startRoute("consumer"); - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.FOUND_FILES.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); + MockEndpoint mock = getMockEndpoint("mock:result"); + mock.expectedMinimumMessageCount(1); + mock.message(0).header(DropboxResultHeader.FOUND_FILES.name()).contains(String.format("%s/%s", workdir, FILE_NAME)); + mock.assertIsSatisfied(); } @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { public void configure() { - from("dropbox://search?accessToken={{accessToken}}&remotePath=/XXX&query=XXX") + from(String.format("dropbox://search?accessToken={{accessToken}}&remotePath=%s&query=%s", workdir, FILE_NAME)).id("consumer").autoStartup(false) .to("mock:result"); } }; diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerSearchTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerSearchTest.java deleted file mode 100644 index b6f3273..0000000 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerSearchTest.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * 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.dropbox.integration.consumer; - -import java.util.List; - -import org.apache.camel.Exchange; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.dropbox.integration.DropboxTestSupport; -import org.apache.camel.component.dropbox.util.DropboxResultHeader; -import org.apache.camel.component.mock.MockEndpoint; -import org.junit.Test; - -public class DropboxConsumerSearchTest extends DropboxTestSupport { - - public DropboxConsumerSearchTest() throws Exception { } - - @Test - public void testCamelDropbox() throws Exception { - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.FOUND_FILES.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); - } - - @Override - protected RouteBuilder createRouteBuilder() throws Exception { - return new RouteBuilder() { - public void configure() { - from("dropbox://search?accessToken={{accessToken}}&remotePath=/XXX") - .to("mock:result"); - } - }; - } -} diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerDelTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerDelTest.java index 766a22c..1934edb 100644 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerDelTest.java +++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerDelTest.java @@ -16,63 +16,41 @@ */ package org.apache.camel.component.dropbox.integration.producer; -import java.util.List; - -import org.apache.camel.Exchange; -import org.apache.camel.Processor; +import java.io.IOException; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.dropbox.integration.DropboxTestSupport; import org.apache.camel.component.dropbox.util.DropboxConstants; import org.apache.camel.component.dropbox.util.DropboxResultHeader; import org.apache.camel.component.mock.MockEndpoint; +import org.junit.Before; import org.junit.Test; public class DropboxProducerDelTest extends DropboxTestSupport { - public DropboxProducerDelTest() throws Exception { } + public static final String FILE_NAME = "file.txt"; + + @Before + public void createFile() throws IOException { + createFile(FILE_NAME, "content"); + } @Test public void testCamelDropbox() throws Exception { - template.send("direct:start", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.DELETED_PATH.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); + test("direct:start"); } @Test public void testCamelDropboxWithOptionInHeader() throws Exception { - template.send("direct:start2", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); + test("direct:start2"); + } + private void test(String endpointURI) throws InterruptedException { + template.sendBody(endpointURI, null); MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedMinimumMessageCount(1); + mock.expectedHeaderReceived(DropboxResultHeader.DELETED_PATH.name(), workdir + "/" + FILE_NAME); assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.DELETED_PATH.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); } @Override @@ -80,11 +58,11 @@ public class DropboxProducerDelTest extends DropboxTestSupport { return new RouteBuilder() { public void configure() { from("direct:start") - .to("dropbox://del?accessToken={{accessToken}}&remotePath=/XXX") + .to("dropbox://del?accessToken={{accessToken}}&remotePath=" + workdir + "/" + FILE_NAME) .to("mock:result"); from("direct:start2") - .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant("/XXX")) + .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant(workdir + "/" + FILE_NAME)) .to("dropbox://del?accessToken={{accessToken}}") .to("mock:result"); } diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetFolderTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetFolderTest.java index f39d213..6d8eb82 100644 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetFolderTest.java +++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetFolderTest.java @@ -16,120 +16,74 @@ */ package org.apache.camel.component.dropbox.integration.producer; -import java.util.List; - -import org.apache.camel.Exchange; -import org.apache.camel.Processor; +import java.io.IOException; +import java.util.Map; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.dropbox.integration.DropboxTestSupport; import org.apache.camel.component.dropbox.util.DropboxConstants; import org.apache.camel.component.dropbox.util.DropboxResultHeader; import org.apache.camel.component.mock.MockEndpoint; +import org.junit.Before; import org.junit.Test; public class DropboxProducerGetFolderTest extends DropboxTestSupport { - public DropboxProducerGetFolderTest() throws Exception { } + public static final String FILE_NAME1 = "myFile.txt"; + public static final String FILE_NAME2 = "myFile2.txt"; + private static final String CONTENT1 = "content1"; + private static final String CONTENT2 = "content2"; + + @Before + public void createFile() throws IOException { + createFile(FILE_NAME1, CONTENT1); + createFile(FILE_NAME2, CONTENT2); + } @Test public void testCamelDropbox() throws Exception { - template.send("direct:start", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.DOWNLOADED_FILES.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); + test("direct:start"); } @Test public void testCamelDropboxWithOptionInHeader() throws Exception { - template.send("direct:start2", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - - - template.send("direct:start3", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - exchange.getIn().setHeader(DropboxConstants.HEADER_REMOTE_PATH, "/XXX"); - } - }); - - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(2); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.DOWNLOADED_FILES.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); - - exchange = exchanges.get(1); - header = exchange.getIn().getHeader(DropboxResultHeader.DOWNLOADED_FILES.name()); - body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); + test("direct:start2"); } @Test public void testCamelDropboxHeaderHasPriorityOnParameter() throws Exception { - template.send("direct:start4", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); + test("direct:start3"); + } + private void test(String endpoint) throws InterruptedException { + template.sendBody(endpoint, null); MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); + mock.message(0).header(DropboxResultHeader.DOWNLOADED_FILES.name()).contains(String.format("%s/%s", workdir, FILE_NAME1)); + mock.message(0).header(DropboxResultHeader.DOWNLOADED_FILES.name()).contains(String.format("%s/%s", workdir, FILE_NAME2)); + mock.assertIsSatisfied(); - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.DOWNLOADED_FILES.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); + final Map<String, byte[]> items = mock.getExchanges().get(0).getIn().getBody(Map.class); + assertEquals(CONTENT1, new String(items.get(String.format("%s/%s", workdir, FILE_NAME1)))); + assertEquals(CONTENT2, new String(items.get(String.format("%s/%s", workdir, FILE_NAME2)))); } @Override - protected RouteBuilder createRouteBuilder() throws Exception { + protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { public void configure() { from("direct:start") - .to("dropbox://get?accessToken={{accessToken}}&remotePath=/XXX") + .to("dropbox://get?accessToken={{accessToken}}&remotePath=" + workdir) .to("mock:result"); from("direct:start2") - .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant("/XXX")) + .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant(workdir)) .to("dropbox://get?accessToken={{accessToken}}") .to("mock:result"); - from("direct:start3") - .to("dropbox://get?accessToken={{accessToken}}") - .to("mock:result"); - from("direct:start4") - .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant("/XXX")) + from("direct:start3") + .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant(workdir)) .to("dropbox://get?accessToken={{accessToken}}&remotePath=/aWrongPath") .to("mock:result"); diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetSingleTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetSingleTest.java index 27f604b..fd4cbc2 100644 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetSingleTest.java +++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetSingleTest.java @@ -16,63 +16,42 @@ */ package org.apache.camel.component.dropbox.integration.producer; -import java.util.List; - -import org.apache.camel.Exchange; -import org.apache.camel.Processor; +import java.io.IOException; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.dropbox.integration.DropboxTestSupport; import org.apache.camel.component.dropbox.util.DropboxConstants; import org.apache.camel.component.dropbox.util.DropboxResultHeader; import org.apache.camel.component.mock.MockEndpoint; +import org.junit.Before; import org.junit.Test; public class DropboxProducerGetSingleTest extends DropboxTestSupport { - public DropboxProducerGetSingleTest() throws Exception { } + public static final String FILE_NAME = "myFile.txt"; + public static final String CONTENT = "Hi camels"; + + @Before + public void createFile() throws IOException { + createFile(FILE_NAME, CONTENT); + } @Test public void testCamelDropbox() throws Exception { - template.send("direct:start", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.DOWNLOADED_FILE.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); + test("direct:start"); } @Test public void testCamelDropboxWithOptionInHeader() throws Exception { - template.send("direct:start2", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - + test("direct:start2"); + } + private void test(String endpoint) throws InterruptedException { + template.sendBody(endpoint, null); MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.DOWNLOADED_FILE.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); + mock.message(0).header(DropboxResultHeader.DOWNLOADED_FILE.name()).contains(String.format("%s/%s", workdir, FILE_NAME)); + mock.message(0).body(String.class).isEqualTo(CONTENT); + mock.assertIsSatisfied(); } @Override @@ -80,14 +59,12 @@ public class DropboxProducerGetSingleTest extends DropboxTestSupport { return new RouteBuilder() { public void configure() { from("direct:start") - .to("dropbox://get?accessToken={{accessToken}}&remotePath=/XXX") - .to("file:///XXX?fileName=XXX") + .to("dropbox://get?accessToken={{accessToken}}&remotePath=" + workdir + "/" + FILE_NAME) .to("mock:result"); from("direct:start2") - .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant("/XXX")) + .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant(workdir + "/" + FILE_NAME)) .to("dropbox://get?accessToken={{accessToken}}") - .to("file:///XXX?fileName=XXX") .to("mock:result"); } }; diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerMoveTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerMoveTest.java index f396897..086ab58 100644 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerMoveTest.java +++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerMoveTest.java @@ -16,63 +16,44 @@ */ package org.apache.camel.component.dropbox.integration.producer; -import java.util.List; - -import org.apache.camel.Exchange; -import org.apache.camel.Processor; +import java.io.IOException; +import com.dropbox.core.DbxException; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.dropbox.integration.DropboxTestSupport; import org.apache.camel.component.dropbox.util.DropboxConstants; import org.apache.camel.component.dropbox.util.DropboxResultHeader; import org.apache.camel.component.mock.MockEndpoint; +import org.junit.Before; import org.junit.Test; public class DropboxProducerMoveTest extends DropboxTestSupport { - public DropboxProducerMoveTest() throws Exception { } + public static final String COPY_WORKDIR = "/test-workdir"; + public static final String FILE = "file.txt"; + + @Before + public void removeDir() throws DbxException, IOException { + createDir(COPY_WORKDIR); + createFile(FILE, "content"); + } @Test public void testCamelDropbox() throws Exception { - template.send("direct:start", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.MOVED_PATH.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); + test("direct:start"); } @Test public void testCamelDropboxWithOptionInHeader() throws Exception { - template.send("direct:start2", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); + test("direct:start2"); + } + private void test(String endpoint) throws InterruptedException { + template.sendBody(endpoint, null); MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedMinimumMessageCount(1); + mock.expectedHeaderReceived(DropboxResultHeader.MOVED_PATH.name(), workdir + "/" + FILE); assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.MOVED_PATH.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); } @Override @@ -80,12 +61,12 @@ public class DropboxProducerMoveTest extends DropboxTestSupport { return new RouteBuilder() { public void configure() { from("direct:start") - .to("dropbox://move?accessToken={{accessToken}}&remotePath=/XXX&newRemotePath=/XXX") + .to(String.format("dropbox://move?accessToken={{accessToken}}&remotePath=%s&newRemotePath=%s", workdir + "/" + FILE, COPY_WORKDIR + "/" + FILE)) .to("mock:result"); from("direct:start2") - .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant("/XXX")) - .setHeader(DropboxConstants.HEADER_NEW_REMOTE_PATH, constant("/XXX")) + .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant(workdir + "/" + FILE)) + .setHeader(DropboxConstants.HEADER_NEW_REMOTE_PATH, constant(COPY_WORKDIR + "/" + FILE)) .to("dropbox://move?accessToken={{accessToken}}") .to("mock:result"); } diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutSingleFileTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutSingleFileTest.java index a4acea7..a7ba22d 100644 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutSingleFileTest.java +++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutSingleFileTest.java @@ -16,64 +16,85 @@ */ package org.apache.camel.component.dropbox.integration.producer; -import java.util.List; - -import org.apache.camel.Exchange; -import org.apache.camel.Processor; +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.dropbox.integration.DropboxTestSupport; import org.apache.camel.component.dropbox.util.DropboxConstants; +import org.apache.camel.component.dropbox.util.DropboxException; import org.apache.camel.component.dropbox.util.DropboxResultHeader; import org.apache.camel.component.dropbox.util.DropboxUploadMode; import org.apache.camel.component.mock.MockEndpoint; +import org.hamcrest.core.IsInstanceOf; +import org.junit.Assert; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; public class DropboxProducerPutSingleFileTest extends DropboxTestSupport { + public static final String FILENAME = "newFile.txt"; - public DropboxProducerPutSingleFileTest() throws Exception { } + @Rule + public ExpectedException thrown = ExpectedException.none(); @Test - public void testCamelDropbox() throws Exception { - template.send("direct:start", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); + public void testCamelDropboxWithOptionInHeader() throws Exception { + final Path file = Files.createTempFile("camel", ".txt"); + final Map<String, Object> headers = new HashMap<>(); + headers.put(DropboxConstants.HEADER_LOCAL_PATH, file.toAbsolutePath().toString()); + headers.put(DropboxConstants.HEADER_UPLOAD_MODE, DropboxUploadMode.add); + template.sendBodyAndHeaders("direct:start", null, headers); + assertFileUploaded(); + } - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); + @Test + public void uploadBodyTest() throws Exception { + template.sendBodyAndHeader("direct:start", "Helo Camels", DropboxConstants.HEADER_UPLOAD_MODE, DropboxUploadMode.add); - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.UPLOADED_FILE.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); + assertFileUploaded(); } @Test - public void testCamelDropboxWithOptionInHeader() throws Exception { - template.send("direct:start2", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); + public void uploadIfExistsAddTest() throws Exception { + thrown.expectCause(IsInstanceOf.instanceOf(DropboxException.class)); + createFile(FILENAME, "content"); + final Path file = Files.createTempFile("camel", ".txt"); + final Map<String, Object> headers = new HashMap<>(); + headers.put(DropboxConstants.HEADER_LOCAL_PATH, file.toAbsolutePath().toString()); + headers.put(DropboxConstants.HEADER_UPLOAD_MODE, DropboxUploadMode.add); + template.sendBodyAndHeaders("direct:start", null, headers); + } + + @Test + public void uploadIfExistsForceTest() throws Exception { + final String newContent = UUID.randomUUID().toString(); + createFile(FILENAME, "Hi camels"); + final Path file = Files.createTempFile("camel", ".txt"); + try (BufferedWriter bw = new BufferedWriter(new FileWriter(file.toFile()))) { + bw.write(newContent); + bw.flush(); + } + final Map<String, Object> headers = new HashMap<>(); + headers.put(DropboxConstants.HEADER_LOCAL_PATH, file.toAbsolutePath().toString()); + headers.put(DropboxConstants.HEADER_UPLOAD_MODE, DropboxUploadMode.force); + template.sendBodyAndHeaders("direct:start", null, headers); + assertFileUploaded(); + Assert.assertEquals(newContent, getFileContent(workdir + "/" + FILENAME)); + } + + private void assertFileUploaded() throws InterruptedException { MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedMinimumMessageCount(1); + mock.expectedHeaderReceived(DropboxResultHeader.UPLOADED_FILE.name(), workdir + "/" + FILENAME); assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.UPLOADED_FILE.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); } @Override @@ -81,13 +102,7 @@ public class DropboxProducerPutSingleFileTest extends DropboxTestSupport { return new RouteBuilder() { public void configure() { from("direct:start") - .to("dropbox://put?accessToken={{accessToken}}&uploadMode=add&localPath=/XXX") - .to("mock:result"); - - from("direct:start2") - .setHeader(DropboxConstants.HEADER_LOCAL_PATH, constant("/XXX")) - .setHeader(DropboxConstants.HEADER_UPLOAD_MODE, constant(DropboxUploadMode.add)) - .to("dropbox://put?accessToken={{accessToken}}") + .to("dropbox://put?accessToken={{accessToken}}&remotePath=" + workdir + "/" + FILENAME) .to("mock:result"); } }; diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutSingleFileWithRemotePathTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutSingleFileWithRemotePathTest.java deleted file mode 100644 index 42bd460..0000000 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutSingleFileWithRemotePathTest.java +++ /dev/null @@ -1,96 +0,0 @@ -/** - * 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.dropbox.integration.producer; - -import java.util.List; - -import org.apache.camel.Exchange; -import org.apache.camel.Processor; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.dropbox.integration.DropboxTestSupport; -import org.apache.camel.component.dropbox.util.DropboxConstants; -import org.apache.camel.component.dropbox.util.DropboxResultHeader; -import org.apache.camel.component.dropbox.util.DropboxUploadMode; -import org.apache.camel.component.mock.MockEndpoint; -import org.junit.Test; - -public class DropboxProducerPutSingleFileWithRemotePathTest extends DropboxTestSupport { - - public DropboxProducerPutSingleFileWithRemotePathTest() throws Exception { } - - @Test - public void testCamelDropbox() throws Exception { - template.send("direct:start", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.UPLOADED_FILE.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); - } - - @Test - public void testCamelDropboxWithOptionInHeader() throws Exception { - template.send("direct:start2", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.UPLOADED_FILE.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); - } - - @Override - protected RouteBuilder createRouteBuilder() throws Exception { - return new RouteBuilder() { - public void configure() { - from("direct:start") - .to("dropbox://put?accessToken={{accessToken}}&uploadMode=add&localPath=/XXX&remotePath=/XXX") - .to("mock:result"); - - from("direct:start2") - .setHeader(DropboxConstants.HEADER_UPLOAD_MODE, constant(DropboxUploadMode.add)) - .setHeader(DropboxConstants.HEADER_LOCAL_PATH, constant("/tmp/toto.txt")) - .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant("/test")) - .to("dropbox://put?accessToken={{accessToken}}") - .to("mock:result"); - } - }; - } -} diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutWithRemotePathTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutWithRemotePathTest.java deleted file mode 100644 index 2de352c..0000000 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutWithRemotePathTest.java +++ /dev/null @@ -1,95 +0,0 @@ -/** - * 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.dropbox.integration.producer; - -import java.util.List; - -import org.apache.camel.Exchange; -import org.apache.camel.Processor; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.dropbox.integration.DropboxTestSupport; -import org.apache.camel.component.dropbox.util.DropboxConstants; -import org.apache.camel.component.dropbox.util.DropboxResultHeader; -import org.apache.camel.component.dropbox.util.DropboxUploadMode; -import org.apache.camel.component.mock.MockEndpoint; -import org.junit.Test; - -public class DropboxProducerPutWithRemotePathTest extends DropboxTestSupport { - - public DropboxProducerPutWithRemotePathTest() throws Exception { } - - @Test - public void testCamelDropbox() throws Exception { - template.send("direct:start", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.UPLOADED_FILES.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); - } - - @Test - public void testCamelDropboxWithOptionInHeader() throws Exception { - template.send("direct:start2", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.UPLOADED_FILES.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); - } - - @Override - protected RouteBuilder createRouteBuilder() throws Exception { - return new RouteBuilder() { - public void configure() { - from("direct:start") - .to("dropbox://put?accessToken={{accessToken}}&uploadMode=add&localPath=/XXX&remotePath=/XXX") - .to("mock:result"); - - from("direct:start2") - .setHeader(DropboxConstants.HEADER_LOCAL_PATH, constant("/XXX")) - .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant("/XXX")) - .setHeader(DropboxConstants.HEADER_UPLOAD_MODE, constant(DropboxUploadMode.add)) - .to("dropbox://put?accessToken={{accessToken}}") - .to("mock:result"); - } - }; - } -} diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerSearchQueryTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerSearchQueryTest.java index 4c8939f..2a541cd 100644 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerSearchQueryTest.java +++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerSearchQueryTest.java @@ -16,79 +16,57 @@ */ package org.apache.camel.component.dropbox.integration.producer; -import java.util.List; - -import org.apache.camel.Exchange; -import org.apache.camel.Processor; +import java.io.IOException; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.dropbox.integration.DropboxTestSupport; import org.apache.camel.component.dropbox.util.DropboxConstants; import org.apache.camel.component.dropbox.util.DropboxResultHeader; import org.apache.camel.component.mock.MockEndpoint; +import org.junit.Before; import org.junit.Test; public class DropboxProducerSearchQueryTest extends DropboxTestSupport { - public DropboxProducerSearchQueryTest() throws Exception { } - - @Test - public void testCamelDropbox() throws Exception { - template.send("direct:start", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.FOUND_FILES.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); + public static final String FILE_NAME = "myTestFile.txt"; + @Before + public void createFile() throws IOException { + final String content = "Hi camels"; + createFile(FILE_NAME, content); } + @Test + public void testCamelDropbox() throws Exception { + test("direct:start"); + } @Test public void testCamelDropboxWithOptionInHeader() throws Exception { - template.send("direct:start2", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); + test("direct:start2"); + } + + private void test(String endpoint) throws InterruptedException { + template.sendBody(endpoint, null); MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.FOUND_FILES.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); - + mock.message(0).header(DropboxResultHeader.FOUND_FILES.name()).contains(String.format("%s/%s", workdir, FILE_NAME)); + mock.assertIsSatisfied(); } @Override - protected RouteBuilder createRouteBuilder() throws Exception { + protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { public void configure() { from("direct:start") - .to("dropbox://search?accessToken={{accessToken}}&remotePath=/XXX&query=XXX") + .to(String.format("dropbox://search?accessToken={{accessToken}}&remotePath=%s&query=%s", workdir, FILE_NAME)) .to("mock:result"); from("direct:start2") - .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant("/XXX")) - .setHeader(DropboxConstants.HEADER_QUERY, constant("/XXX")) + .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant(workdir)) + .setHeader(DropboxConstants.HEADER_QUERY, constant(FILE_NAME)) .to("dropbox://search?accessToken={{accessToken}}") .to("mock:result"); } diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerSearchTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerSearchTest.java deleted file mode 100644 index 38ce2aa..0000000 --- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerSearchTest.java +++ /dev/null @@ -1,92 +0,0 @@ -/** - * 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.dropbox.integration.producer; - -import java.util.List; - -import org.apache.camel.Exchange; -import org.apache.camel.Processor; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.dropbox.integration.DropboxTestSupport; -import org.apache.camel.component.dropbox.util.DropboxConstants; -import org.apache.camel.component.dropbox.util.DropboxResultHeader; -import org.apache.camel.component.mock.MockEndpoint; -import org.junit.Test; - -public class DropboxProducerSearchTest extends DropboxTestSupport { - - public DropboxProducerSearchTest() throws Exception { } - - @Test - public void testCamelDropbox() throws Exception { - template.send("direct:start", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.FOUND_FILES.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); - } - - @Test - public void testCamelDropboxWithOptionInHeader() throws Exception { - template.send("direct:start2", new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - exchange.getIn().setHeader("test", "test"); - } - }); - - - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedMinimumMessageCount(1); - assertMockEndpointsSatisfied(); - - List<Exchange> exchanges = mock.getReceivedExchanges(); - Exchange exchange = exchanges.get(0); - Object header = exchange.getIn().getHeader(DropboxResultHeader.FOUND_FILES.name()); - Object body = exchange.getIn().getBody(); - assertNotNull(header); - assertNotNull(body); - } - - @Override - protected RouteBuilder createRouteBuilder() throws Exception { - return new RouteBuilder() { - public void configure() { - from("direct:start") - .to("dropbox://search?accessToken={{accessToken}}&remotePath=/XXX") - .to("mock:result"); - - from("direct:start") - .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant("/XXX")) - .to("dropbox://search?accessToken={{accessToken}}") - .to("mock:result"); - } - }; - } -} diff --git a/components/camel-dropbox/src/test/resources/test-options.properties b/components/camel-dropbox/src/test/resources/test-options.properties index 84dfb21..5c07059 100644 --- a/components/camel-dropbox/src/test/resources/test-options.properties +++ b/components/camel-dropbox/src/test/resources/test-options.properties @@ -15,5 +15,6 @@ ## limitations under the License. ## --------------------------------------------------------------------------- -accessToken=<access-token> +accessToken=<api-token> clientIdentifier=camel-dropbox +workDir=/camel-test