add test for working with folders
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5b2990cb Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5b2990cb Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5b2990cb Branch: refs/heads/master Commit: 5b2990cbbc70575cd2db7a9b37c1308b65013c1a Parents: 1bfb63f Author: Jonathan Anstey <jans...@gmail.com> Authored: Mon Sep 8 09:06:00 2014 -0230 Committer: Jonathan Anstey <jans...@gmail.com> Committed: Mon Sep 8 09:06:11 2014 -0230 ---------------------------------------------------------------------- .../google/drive/GoogleDriveEndpoint.java | 6 ++ .../drive/AbstractGoogleDriveTestSupport.java | 9 +++ .../drive/DriveChildrenIntegrationTest.java | 84 ++++++++++++++++++++ 3 files changed, 99 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/5b2990cb/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveEndpoint.java b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveEndpoint.java index d69a458..66aa080 100644 --- a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveEndpoint.java +++ b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveEndpoint.java @@ -107,6 +107,12 @@ public class GoogleDriveEndpoint extends AbstractApiEndpoint<GoogleDriveApiName, case DRIVE_REVISIONS: apiProxy = getClient().revisions(); break; + case DRIVE_CHILDREN: + apiProxy = getClient().children(); + break; + case DRIVE_PARENTS: + apiProxy = getClient().parents(); + break; default: throw new IllegalArgumentException("Invalid API name " + apiName); } http://git-wip-us.apache.org/repos/asf/camel/blob/5b2990cb/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 d4b5a3a..95a003c 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 @@ -67,6 +67,15 @@ public abstract class AbstractGoogleDriveTestSupport extends CamelTestSupport { File result = requestBodyAndHeaders("google-drive://drive-files/insert", null, headers); return result; } + + protected File uploadTestFolder() { + File fileMetadata = new File(); + fileMetadata.setTitle("testfolder"); + fileMetadata.setMimeType("application/vnd.google-apps.folder"); + + File result = requestBody("google-drive://drive-files/insert?inBody=content", fileMetadata); + return result; + } @Override protected CamelContext createCamelContext() throws Exception { http://git-wip-us.apache.org/repos/asf/camel/blob/5b2990cb/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 new file mode 100644 index 0000000..9f277be --- /dev/null +++ b/components/camel-google-drive/src/test/java/org/apache/camel/component/google/drive/DriveChildrenIntegrationTest.java @@ -0,0 +1,84 @@ +/** + * 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.google.drive; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.camel.builder.RouteBuilder; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.apache.camel.component.google.drive.internal.GoogleDriveApiCollection; +import org.apache.camel.component.google.drive.internal.DriveChildrenApiMethod; + +import com.google.api.services.drive.model.File; + +/** + * Test class for {@link com.google.api.services.drive.Drive$Children} APIs. + */ +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(); + + @Test + public void testUploadFileToFolder() throws Exception { + File folder = uploadTestFolder(); + File file = uploadTestFile(); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelGoogleDrive.folderId", folder.getId()); + + 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); + + final com.google.api.services.drive.model.ChildList result = requestBody("direct://LIST", folder.getId()); + assertNotNull("insert result", result); + LOG.debug("insert: " + result); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for delete + from("direct://DELETE") + .to("google-drive://" + PATH_PREFIX + "/delete"); + + // test route for get + from("direct://GET") + .to("google-drive://" + PATH_PREFIX + "/get"); + + // test route for insert + from("direct://INSERT") + .to("google-drive://" + PATH_PREFIX + "/insert"); + + // test route for list + from("direct://LIST") + .to("google-drive://" + PATH_PREFIX + "/list?inBody=folderId"); + + } + }; + } +}