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")