You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ff...@apache.org on 2017/08/29 07:13:09 UTC
camel git commit: [CAMEL-11719]add a string to ChildReference
converter for camel-google-drive
Repository: camel
Updated Branches:
refs/heads/master bc53ed856 -> 3044de622
[CAMEL-11719]add a string to ChildReference converter for camel-google-drive
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/3044de62
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3044de62
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3044de62
Branch: refs/heads/master
Commit: 3044de6223fa030c70c146d08967ac1984d4978c
Parents: bc53ed8
Author: Freeman Fang <fr...@gmail.com>
Authored: Tue Aug 29 15:12:56 2017 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Tue Aug 29 15:12:56 2017 +0800
----------------------------------------------------------------------
.../google/drive/GoogleDriveFilesConverter.java | 10 +++++
.../drive/AbstractGoogleDriveTestSupport.java | 5 +++
.../drive/DriveChildrenIntegrationTest.java | 44 ++++++++++++++++++++
3 files changed, 59 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/3044de62/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveFilesConverter.java
----------------------------------------------------------------------
diff --git a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveFilesConverter.java b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveFilesConverter.java
index d227301..b31f04d 100644
--- a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveFilesConverter.java
+++ b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveFilesConverter.java
@@ -97,6 +97,16 @@ public final class GoogleDriveFilesConverter {
return null;
}
+ @Converter
+ public static com.google.api.services.drive.model.ChildReference genericStringToChildReference(String payload, Exchange exchange) throws Exception {
+ if (payload != null) {
+ com.google.api.services.drive.model.ChildReference childReference = new com.google.api.services.drive.model.ChildReference();
+ childReference.setId(payload);
+ return childReference;
+ }
+ return null;
+ }
+
private static Drive getClient(Exchange exchange) {
GoogleDriveComponent component = exchange.getContext().getComponent("google-drive", GoogleDriveComponent.class);
return component.getClient(component.getConfiguration());
http://git-wip-us.apache.org/repos/asf/camel/blob/3044de62/components/camel-google-drive/src/test/java/org/apache/camel/component/google/drive/AbstractGoogleDriveTestSupport.java
----------------------------------------------------------------------
diff --git a/components/camel-google-drive/src/test/java/org/apache/camel/component/google/drive/AbstractGoogleDriveTestSupport.java b/components/camel-google-drive/src/test/java/org/apache/camel/component/google/drive/AbstractGoogleDriveTestSupport.java
index 4c844fd..a3c4e23 100644
--- a/components/camel-google-drive/src/test/java/org/apache/camel/component/google/drive/AbstractGoogleDriveTestSupport.java
+++ b/components/camel-google-drive/src/test/java/org/apache/camel/component/google/drive/AbstractGoogleDriveTestSupport.java
@@ -142,6 +142,11 @@ public abstract class AbstractGoogleDriveTestSupport extends CamelTestSupport {
return (T) template().requestBodyAndHeaders(endpointUri, body, headers);
}
+ protected <T> T requestBodyAndHeaders(String endpointUri, Object body, Map<String, Object> headers, Class<T> type)
+ throws CamelExecutionException {
+ return (T) template().requestBodyAndHeaders(endpointUri, body, headers, type);
+ }
+
protected <T> T requestBody(String endpoint, Object body) throws CamelExecutionException {
return (T) template().requestBody(endpoint, body);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/3044de62/components/camel-google-drive/src/test/java/org/apache/camel/component/google/drive/DriveChildrenIntegrationTest.java
----------------------------------------------------------------------
diff --git a/components/camel-google-drive/src/test/java/org/apache/camel/component/google/drive/DriveChildrenIntegrationTest.java b/components/camel-google-drive/src/test/java/org/apache/camel/component/google/drive/DriveChildrenIntegrationTest.java
index 8a18a98..c7c0942 100644
--- a/components/camel-google-drive/src/test/java/org/apache/camel/component/google/drive/DriveChildrenIntegrationTest.java
+++ b/components/camel-google-drive/src/test/java/org/apache/camel/component/google/drive/DriveChildrenIntegrationTest.java
@@ -35,6 +35,7 @@ public class DriveChildrenIntegrationTest extends AbstractGoogleDriveTestSupport
private static final Logger LOG = LoggerFactory.getLogger(DriveChildrenIntegrationTest.class);
private static final String PATH_PREFIX = GoogleDriveApiCollection.getCollection().getApiName(DriveChildrenApiMethod.class).getName();
+ private static final String ROOT_FOLDER = "root";
@Test
public void testUploadFileToFolder() throws Exception {
@@ -55,7 +56,46 @@ public class DriveChildrenIntegrationTest extends AbstractGoogleDriveTestSupport
final com.google.api.services.drive.model.ChildList result = requestBody("direct://LIST", folder.getId());
assertNotNull("insert result", result);
LOG.debug("insert: " + result);
+ headers.put("CamelGoogleDrive.childId", child.getId());
+ com.google.api.services.drive.model.ChildReference childReference = requestBodyAndHeaders("direct://GET", null, headers);
+ assertNotNull("inserted child", childReference);
+ requestBodyAndHeaders("direct://DELETE", null, headers);
+ try {
+ childReference = requestBodyAndHeaders("direct://GET", null, headers);
+ fail("can't fetch a child that already get deleted");
+ } catch (Exception ex) {
+ assertTrue(ex.getCause().getCause() instanceof com.google.api.client.googleapis.json.GoogleJsonResponseException);
+ }
+
}
+
+ @Test
+ public void testUploadFileToRootFolder() throws Exception {
+ File file = uploadTestFile();
+
+ final Map<String, Object> headers = new HashMap<String, Object>();
+ // parameter type is String
+ headers.put("CamelGoogleDrive.folderId", ROOT_FOLDER);
+
+ com.google.api.services.drive.model.ChildReference child = new com.google.api.services.drive.model.ChildReference();
+ child.setId(file.getId());
+ // parameter type is com.google.api.services.drive.model.ChildReference
+ headers.put("CamelGoogleDrive.content", child);
+
+ requestBodyAndHeaders("direct://INSERT", null, headers);
+
+ headers.put("CamelGoogleDrive.childId", child.getId());
+ com.google.api.services.drive.model.ChildReference childReference = requestBodyAndHeaders("direct://GET-BODY", child.getId(), headers);
+ assertNotNull("inserted child", childReference);
+ requestBodyAndHeaders("direct://DELETE", null, headers);
+ try {
+ childReference = requestBodyAndHeaders("direct://GET-BODY", child.getId(), headers, com.google.api.services.drive.model.ChildReference.class);
+ fail("can't fetch a child that already get deleted");
+ } catch (Exception ex) {
+ assertTrue(ex.getCause().getCause() instanceof com.google.api.client.googleapis.json.GoogleJsonResponseException);
+ }
+ }
+
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
@@ -68,6 +108,10 @@ public class DriveChildrenIntegrationTest extends AbstractGoogleDriveTestSupport
// test route for get
from("direct://GET")
.to("google-drive://" + PATH_PREFIX + "/get");
+
+ // test route for get with body
+ from("direct://GET-BODY")
+ .to("google-drive://" + PATH_PREFIX + "/get?inBody=childId");
// test route for insert
from("direct://INSERT")