http://git-wip-us.apache.org/repos/asf/camel/blob/45335d1e/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2CommentsManagerIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2CommentsManagerIntegrationTest.java b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2CommentsManagerIntegrationTest.java new file mode 100644 index 0000000..39cbf1e --- /dev/null +++ b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2CommentsManagerIntegrationTest.java @@ -0,0 +1,201 @@ +/** + * 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.box2; + +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.box.sdk.BoxAPIConnection; +import com.box.sdk.BoxComment; +import com.box.sdk.BoxFile; +import com.box.sdk.BoxFolder; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.box2.internal.Box2ApiCollection; +import org.apache.camel.component.box2.internal.Box2CommentsManagerApiMethod; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Test class for + * {@link org.apache.camel.component.box2.api.Box2CommentsManager} APIs. + */ +public class Box2CommentsManagerIntegrationTest extends AbstractBox2TestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(Box2CommentsManagerIntegrationTest.class); + private static final String PATH_PREFIX = Box2ApiCollection.getCollection() + .getApiName(Box2CommentsManagerApiMethod.class).getName(); + private static final String CAMEL_TEST_FILE = "/CamelTestFile.txt"; + private static final String CAMEL_TEST_FILE_NAME = "CamelTestFile.txt"; + private static final String CAMEL_TEST_FILE_COMMENT = "CamelTestFile comment."; + private static final String CAMEL_TEST_FILE_CHANGED_COMMENT = "CamelTestFile changed comment."; + private static final String CAMEL_TEST_FILE_REPLY_COMMENT = "CamelTestFile changed comment."; + + private BoxFile testFile; + + @Test + public void testAddFileComment() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is String + headers.put("CamelBox2.message", CAMEL_TEST_FILE_COMMENT); + + final com.box.sdk.BoxFile result = requestBodyAndHeaders("direct://ADDFILECOMMENT", null, headers); + + assertNotNull("addFileComment result", result); + assertNotNull("addFileComment comments", result.getComments()); + assertTrue("changeCommentMessage comments size", result.getComments().size() > 0); + assertEquals("changeCommentMessage comment message", CAMEL_TEST_FILE_COMMENT, + result.getComments().get(0).getMessage()); + LOG.debug("addFileComment: " + result); + } + + @Test + public void testChangeCommentMessage() throws Exception { + + BoxComment.Info commentInfo = testFile.addComment(CAMEL_TEST_FILE_COMMENT); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.commentId", commentInfo.getID()); + // parameter type is String + headers.put("CamelBox2.message", CAMEL_TEST_FILE_CHANGED_COMMENT); + + final com.box.sdk.BoxComment result = requestBodyAndHeaders("direct://CHANGECOMMENTMESSAGE", null, headers); + + assertNotNull("changeCommentMessage result", result); + assertNotNull("changeCommentMessage message", result.getInfo().getMessage()); + assertEquals("changeCommentMessage message", CAMEL_TEST_FILE_CHANGED_COMMENT, result.getInfo().getMessage()); + LOG.debug("changeCommentMessage: " + result); + } + + @Test + public void testDeleteComment() throws Exception { + BoxComment.Info commentInfo = testFile.addComment(CAMEL_TEST_FILE_COMMENT); + + // using String message body for single parameter "commentId" + requestBody("direct://DELETECOMMENT", commentInfo.getID()); + + List<BoxComment.Info> comments = testFile.getComments(); + assertNotNull("deleteComment comments", comments); + assertEquals("deleteComment comments empty", 0, comments.size()); + } + + @Test + public void testGetCommentInfo() throws Exception { + + BoxComment.Info commentInfo = testFile.addComment(CAMEL_TEST_FILE_COMMENT); + + // using String message body for single parameter "commentId" + final com.box.sdk.BoxComment.Info result = requestBody("direct://GETCOMMENTINFO", commentInfo.getID()); + + assertNotNull("getCommentInfo result", result); + assertEquals("getCommentInfo message", CAMEL_TEST_FILE_COMMENT, result.getMessage()); + LOG.debug("getCommentInfo: " + result); + } + + @Test + public void testGetFileComments() throws Exception { + testFile.addComment(CAMEL_TEST_FILE_COMMENT); + + // using String message body for single parameter "fileId" + @SuppressWarnings("rawtypes") + final java.util.List result = requestBody("direct://GETFILECOMMENTS", testFile.getID()); + + assertNotNull("getFileComments result", result); + assertEquals("getFileComments size", 1, result.size()); + LOG.debug("getFileComments: " + result); + } + + @Test + public void testReplyToComment() throws Exception { + + BoxComment.Info commentInfo = testFile.addComment(CAMEL_TEST_FILE_COMMENT); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.commentId", commentInfo.getID()); + // parameter type is String + headers.put("CamelBox2.message", CAMEL_TEST_FILE_REPLY_COMMENT); + + final com.box.sdk.BoxComment result = requestBodyAndHeaders("direct://REPLYTOCOMMENT", null, headers); + + assertNotNull("replyToComment result", result); + assertEquals("replyToComment result", CAMEL_TEST_FILE_REPLY_COMMENT, result.getInfo().getMessage()); + LOG.debug("replyToComment: " + result); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for addFileComment + from("direct://ADDFILECOMMENT").to("box2://" + PATH_PREFIX + "/addFileComment"); + + // test route for changeCommentMessage + from("direct://CHANGECOMMENTMESSAGE").to("box2://" + PATH_PREFIX + "/changeCommentMessage"); + + // test route for deleteComment + from("direct://DELETECOMMENT").to("box2://" + PATH_PREFIX + "/deleteComment?inBody=commentId"); + + // test route for getCommentInfo + from("direct://GETCOMMENTINFO").to("box2://" + PATH_PREFIX + "/getCommentInfo?inBody=commentId"); + + // test route for getFileComments + from("direct://GETFILECOMMENTS").to("box2://" + PATH_PREFIX + "/getFileComments?inBody=fileId"); + + // test route for replyToComment + from("direct://REPLYTOCOMMENT").to("box2://" + PATH_PREFIX + "/replyToComment"); + + } + }; + } + + @Before + public void setupTest() throws Exception { + createTestFile(); + } + + @After + public void teardownTest() { + deleteTestFile(); + } + + public BoxAPIConnection getConnection() { + Box2Endpoint endpoint = (Box2Endpoint) context().getEndpoint("box2://" + PATH_PREFIX + "/addFileComment"); + return endpoint.getBoxConnection(); + } + + private void createTestFile() throws FileNotFoundException { + BoxFolder rootFolder = BoxFolder.getRootFolder(getConnection()); + InputStream stream = getClass().getResourceAsStream(CAMEL_TEST_FILE); + testFile = rootFolder.uploadFile(stream, CAMEL_TEST_FILE_NAME).getResource(); + } + + private void deleteTestFile() { + testFile.delete(); + testFile = null; + } + +}
http://git-wip-us.apache.org/repos/asf/camel/blob/45335d1e/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2EventLogsManagerIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2EventLogsManagerIntegrationTest.java b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2EventLogsManagerIntegrationTest.java new file mode 100644 index 0000000..deb502e --- /dev/null +++ b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2EventLogsManagerIntegrationTest.java @@ -0,0 +1,76 @@ +/** + * 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.box2; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.box2.internal.Box2ApiCollection; +import org.apache.camel.component.box2.internal.Box2EventLogsManagerApiMethod; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Test class for + * {@link org.apache.camel.component.box2.api.Box2EventLogsManager} APIs. + */ +public class Box2EventLogsManagerIntegrationTest extends AbstractBox2TestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(Box2EventLogsManagerIntegrationTest.class); + private static final String PATH_PREFIX = Box2ApiCollection.getCollection() + .getApiName(Box2EventLogsManagerApiMethod.class).getName(); + private static final long ONE_MINUTE_OF_MILLISECONDS = 1000 * 60; + + @Ignore // Requires enterprise admin account to test + @Test + public void testGetEnterpriseEvents() throws Exception { + Date before = new Date(); + Date after = new Date(); + after.setTime(before.getTime() - ONE_MINUTE_OF_MILLISECONDS); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.position", null); + // parameter type is java.util.Date + headers.put("CamelBox2.after", after); + // parameter type is java.util.Date + headers.put("CamelBox2.before", before); + // parameter type is com.box.sdk.BoxEvent.Type[] + headers.put("CamelBox2.types", null); + + @SuppressWarnings("rawtypes") + final java.util.List result = requestBodyAndHeaders("direct://GETENTERPRISEEVENTS", null, headers); + + assertNotNull("getEnterpriseEvents result", result); + LOG.debug("getEnterpriseEvents: " + result); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for getEnterpriseEvents + from("direct://GETENTERPRISEEVENTS").to("box2://" + PATH_PREFIX + "/getEnterpriseEvents"); + + } + }; + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/45335d1e/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2EventsManagerIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2EventsManagerIntegrationTest.java b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2EventsManagerIntegrationTest.java new file mode 100644 index 0000000..3af1b68 --- /dev/null +++ b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2EventsManagerIntegrationTest.java @@ -0,0 +1,105 @@ +/** + * 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.box2; + +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import com.box.sdk.BoxAPIConnection; +import com.box.sdk.BoxFile; +import com.box.sdk.BoxFolder; + +import org.apache.camel.Exchange; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.box2.internal.Box2ApiCollection; +import org.apache.camel.component.box2.internal.Box2EventsManagerApiMethod; +import org.apache.camel.component.mock.MockEndpoint; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Test class for {@link org.apache.camel.component.box2.api.Box2EventsManager} + * APIs. TODO Move the file to src/test/java, populate parameter values, and + * remove @Ignore annotations. The class source won't be generated again if the + * generator MOJO finds it under src/test/java. + */ +public class Box2EventsManagerIntegrationTest extends AbstractBox2TestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(Box2EventsManagerIntegrationTest.class); + private static final String PATH_PREFIX = Box2ApiCollection.getCollection() + .getApiName(Box2EventsManagerApiMethod.class).getName(); + private static final String CAMEL_TEST_FILE = "/CamelTestFile.txt"; + private static final String CAMEL_TEST_FILE_NAME = "CamelTestFile.txt"; + + private BoxFile testFile; + + @Test + public void testListen() throws Exception { + try { + // generate a file create event + createTestFile(); + } finally { + // generate a file delete event + deleteTestFile(); + } + + MockEndpoint mockEndpoint = getMockEndpoint("mock:box2Events"); + mockEndpoint.expectedMinimumMessageCount(2); + mockEndpoint.setResultWaitTime(TimeUnit.MILLISECONDS.convert(30, TimeUnit.SECONDS)); + mockEndpoint.assertIsSatisfied(); + + final List<Exchange> exchanges = mockEndpoint.getExchanges(); + assertNotNull("poll result", exchanges); + assertFalse("poll result", exchanges.isEmpty()); + LOG.debug("poll result: " + exchanges); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + + // test route for events + from("box2://" + PATH_PREFIX + "/listen?startingPosition=0").to("mock:box2Events"); + + } + }; + } + + public BoxAPIConnection getConnection() { + Box2Endpoint endpoint = (Box2Endpoint) context() + .getEndpoint("box2://" + PATH_PREFIX + "/listen?startingPosition=0"); + return endpoint.getBoxConnection(); + } + + private void createTestFile() throws FileNotFoundException { + BoxFolder rootFolder = BoxFolder.getRootFolder(getConnection()); + InputStream stream = getClass().getResourceAsStream(CAMEL_TEST_FILE); + testFile = rootFolder.uploadFile(stream, CAMEL_TEST_FILE_NAME).getResource(); + } + + private void deleteTestFile() { + try { + testFile.delete(); + } catch (Throwable t) { + } + testFile = null; + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/45335d1e/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2FilesManagerIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2FilesManagerIntegrationTest.java b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2FilesManagerIntegrationTest.java new file mode 100644 index 0000000..ecf6677 --- /dev/null +++ b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2FilesManagerIntegrationTest.java @@ -0,0 +1,575 @@ +/** + * 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.box2; + +import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import com.box.sdk.BoxAPIConnection; +import com.box.sdk.BoxAPIException; +import com.box.sdk.BoxFile; +import com.box.sdk.BoxFile.ThumbnailFileType; +import com.box.sdk.BoxFolder; +import com.box.sdk.BoxItem; +import com.box.sdk.BoxSharedLink; +import com.box.sdk.Metadata; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.box2.internal.Box2ApiCollection; +import org.apache.camel.component.box2.internal.Box2FilesManagerApiMethod; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Test class for {@link org.apache.camel.component.box2.api.Box2FilesManager} + * APIs. + */ +public class Box2FilesManagerIntegrationTest extends AbstractBox2TestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(Box2FilesManagerIntegrationTest.class); + private static final String PATH_PREFIX = Box2ApiCollection.getCollection() + .getApiName(Box2FilesManagerApiMethod.class).getName(); + + private static final String CAMEL_TEST_FILE = "/CamelTestFile.txt"; + private static final String CAMEL_TEST_FILE_NAME = "CamelTestFile.txt"; + private static final String CAMEL_TEST_FILE_DESCRIPTION = "CamelTestFile.txt description"; + private static final String CAMEL_TEST_COPY_FILE_NAME = "CamelTestFile_Copy.txt"; + private static final String CAMEL_TEST_MOVE_FILE_NAME = "CamelTestFile_Move.txt"; + private static final String CAMEL_TEST_RENAME_FILE_NAME = "CamelTestFile_Rename.txt"; + private static final String CAMEL_TEST_UPLOAD_FILE_NAME = "CamelTestFile_Upload.txt"; + + private BoxFile testFile; + + @Test + public void testCopyFile() throws Exception { + com.box.sdk.BoxFile result = null; + + try { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is String + headers.put("CamelBox2.destinationFolderId", "0"); + // parameter type is String + headers.put("CamelBox2.newName", CAMEL_TEST_COPY_FILE_NAME); + + result = requestBodyAndHeaders("direct://COPYFILE", null, headers); + + assertNotNull("copyFile result", result); + assertEquals("copyFile name", CAMEL_TEST_COPY_FILE_NAME, result.getInfo().getName()); + LOG.debug("copyFile: " + result); + } finally { + if (result != null) { + result.delete(); + } + } + } + + @Test + public void testCreateFileMetadata() throws Exception { + Metadata metadata = new Metadata(); + metadata.add("/foo", "bar"); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is com.box.sdk.Metadata + headers.put("CamelBox2.metadata", metadata); + // parameter type is String + headers.put("CamelBox2.typeName", null); + + final com.box.sdk.Metadata result = requestBodyAndHeaders("direct://CREATEFILEMETADATA", null, headers); + + assertNotNull("createFileMetadata result", result); + assertEquals("createFileMetadata result", "bar", result.get("/foo")); + LOG.debug("createFileMetadata: " + result); + } + + @Test + public void testCreateFileSharedLink() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is com.box.sdk.BoxSharedLink.Access + headers.put("CamelBox2.access", BoxSharedLink.Access.DEFAULT); + // parameter type is java.util.Date + headers.put("CamelBox2.unshareDate", null); + // parameter type is com.box.sdk.BoxSharedLink.Permissions + headers.put("CamelBox2.permissions", null); + + final com.box.sdk.BoxSharedLink result = requestBodyAndHeaders("direct://CREATEFILESHAREDLINK", null, headers); + + assertNotNull("createFileSharedLink result", result); + LOG.debug("createFileSharedLink: " + result); + } + + @Test + public void testDeleteFile() throws Exception { + // using String message body for single parameter "fileId" + requestBody("direct://DELETEFILE", testFile.getID()); + + BoxFolder rootFolder = BoxFolder.getRootFolder(getConnection()); + Iterable<BoxItem.Info> it = rootFolder.search("^" + CAMEL_TEST_FILE + "$"); + int searchResults = sizeOfIterable(it); + boolean exists = searchResults > 0 ? true : false; + assertEquals("deleteFile exists", false, exists); + LOG.debug("deleteFile: exists? " + exists); + + } + + @Test + public void testDeleteFileMetadata() throws Exception { + testFile.createMetadata(new Metadata()); + + // using String message body for single parameter "fileId" + requestBody("direct://DELETEFILEMETADATA", testFile.getID()); + + try { + testFile.getMetadata(); + } catch (BoxAPIException e) { + if (e.getResponseCode() == 404) { + // Box API should return a + return; + } + } + fail("deleteFileMetadata metadata"); + + } + + @Ignore // Requires premium user account to test. + @Test + public void testDeleteFileVersion() throws Exception { + testFile.uploadVersion(getClass().getResourceAsStream(CAMEL_TEST_FILE)); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is Integer + headers.put("CamelBox2.version", 0); + + requestBodyAndHeaders("direct://DELETEFILEVERSION", null, headers); + boolean onlyOneVersion = testFile.getVersions().size() == 1; + assertTrue("deleteFileVersion version deleted", onlyOneVersion); + } + + @Test + public void testDownloadFile() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is java.io.OutputStream + ByteArrayOutputStream output = new ByteArrayOutputStream(); + headers.put("CamelBox2.output", output); + // parameter type is Long + headers.put("CamelBox2.rangeStart", null); + // parameter type is Long + headers.put("CamelBox2.rangeEnd", null); + // parameter type is com.box.sdk.ProgressListener + headers.put("CamelBox2.listener", null); + + final java.io.OutputStream result = requestBodyAndHeaders("direct://DOWNLOADFILE", null, headers); + + assertNotNull("downloadFile result", result); + LOG.debug("downloadFile: " + result); + } + + @Ignore // Requires premium user account to test + @Test + public void testDownloadPreviousFileVersion() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is Integer + headers.put("CamelBox2.version", 0); + // parameter type is java.io.OutputStream + ByteArrayOutputStream output = new ByteArrayOutputStream(); + headers.put("CamelBox2.output", output); + // parameter type is com.box.sdk.ProgressListener + headers.put("CamelBox2.listener", null); + + final java.io.OutputStream result = requestBodyAndHeaders("direct://DOWNLOADPREVIOUSFILEVERSION", null, + headers); + + assertNotNull("downloadPreviousFileVersion result", result); + LOG.debug("downloadPreviousFileVersion: " + result); + } + + @Test + public void testGetDownloadURL() throws Exception { + // using String message body for single parameter "fileId" + final java.net.URL result = requestBody("direct://GETDOWNLOADURL", testFile.getID()); + + assertNotNull("getDownloadURL result", result); + LOG.debug("getDownloadURL: " + result); + } + + @Test + public void testGetFileInfo() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is String[] + headers.put("CamelBox2.fields", null); + + final com.box.sdk.BoxFile.Info result = requestBodyAndHeaders("direct://GETFILEINFO", null, headers); + + assertNotNull("getFileInfo result", result); + LOG.debug("getFileInfo: " + result); + } + + @Test + public void testGetFileMetadata() throws Exception { + testFile.createMetadata(new Metadata()); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is String + headers.put("CamelBox2.typeName", null); + + final com.box.sdk.Metadata result = requestBodyAndHeaders("direct://GETFILEMETADATA", null, headers); + + assertNotNull("getFileMetadata result", result); + LOG.debug("getFileMetadata: " + result); + } + + @Test + public void testGetFilePreviewLink() throws Exception { + // using String message body for single parameter "fileId" + final java.net.URL result = requestBody("direct://GETFILEPREVIEWLINK", testFile.getID()); + + assertNotNull("getFilePreviewLink result", result); + LOG.debug("getFilePreviewLink: " + result); + } + + @Test + public void testGetFileThumbnail() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is com.box.sdk.BoxFile.ThumbnailFileType + headers.put("CamelBox2.fileType", ThumbnailFileType.JPG); + // parameter type is Integer + headers.put("CamelBox2.minWidth", 32); + // parameter type is Integer + headers.put("CamelBox2.minHeight", 32); + // parameter type is Integer + headers.put("CamelBox2.maxWidth", 32); + // parameter type is Integer + headers.put("CamelBox2.maxHeight", 32); + + final byte[] result = requestBodyAndHeaders("direct://GETFILETHUMBNAIL", null, headers); + + assertNotNull("getFileThumbnail result", result); + LOG.debug("getFileThumbnail: " + result); + } + + @Test + public void testGetFileVersions() throws Exception { + // using String message body for single parameter "fileId" + @SuppressWarnings("rawtypes") + final java.util.Collection result = requestBody("direct://GETFILEVERSIONS", testFile.getID()); + + assertNotNull("getFileVersions result", result); + LOG.debug("getFileVersions: " + result); + } + + @Test + public void testMoveFile() throws Exception { + com.box.sdk.BoxFile result = null; + + try { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is String + headers.put("CamelBox2.destinationFolderId", "0"); + // parameter type is String + headers.put("CamelBox2.newName", CAMEL_TEST_MOVE_FILE_NAME); + + result = requestBodyAndHeaders("direct://MOVEFILE", null, headers); + + assertNotNull("moveFile result", result); + assertEquals("moveFile name", CAMEL_TEST_MOVE_FILE_NAME, result.getInfo().getName()); + LOG.debug("moveFile: " + result); + } finally { + if (result != null) { + result.delete(); + } + } + } + + @Ignore // Requires premium user account to test + @Test + public void testPromoteFileVersion() throws Exception { + testFile.uploadVersion(getClass().getResourceAsStream(CAMEL_TEST_FILE)); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is Integer + headers.put("CamelBox2.version", 1); + + final com.box.sdk.BoxFileVersion result = requestBodyAndHeaders("direct://PROMOTEFILEVERSION", null, headers); + + assertNotNull("promoteFileVersion result", result); + LOG.debug("promoteFileVersion: " + result); + } + + @Test + public void testRenameFile() throws Exception { + + com.box.sdk.BoxFile result = null; + + try { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is String + headers.put("CamelBox2.newFileName", CAMEL_TEST_RENAME_FILE_NAME); + + result = requestBodyAndHeaders("direct://RENAMEFILE", null, headers); + + assertNotNull("renameFile result", result); + assertEquals("renameFile name", CAMEL_TEST_RENAME_FILE_NAME, result.getInfo().getName()); + LOG.debug("renameFile: " + result); + } finally { + if (result != null) { + result.delete(); + } + } + } + + @Test + public void testUpdateFileInfo() throws Exception { + BoxFile.Info info = testFile.getInfo(); + info.setDescription(CAMEL_TEST_FILE_DESCRIPTION); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is com.box.sdk.BoxFile.Info + headers.put("CamelBox2.info", info); + + final com.box.sdk.BoxFile result = requestBodyAndHeaders("direct://UPDATEFILEINFO", null, headers); + + assertNotNull("updateFileInfo result", result); + assertEquals("updateFileInfo info", CAMEL_TEST_FILE_DESCRIPTION, result.getInfo().getDescription()); + LOG.debug("updateFileInfo: " + result); + } + + @Test + public void testUpdateFileMetadata() throws Exception { + Metadata metadata = new Metadata(); + // metadata.add("/foo", "bar"); + metadata = testFile.createMetadata(metadata); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is com.box.sdk.Metadata + headers.put("CamelBox2.metadata", metadata); + + final com.box.sdk.Metadata result = requestBodyAndHeaders("direct://UPDATEFILEMETADATA", null, headers); + + assertNotNull("updateFileMetadata result", result); + LOG.debug("updateFileMetadata: " + result); + } + + @Ignore + @Test + public void testUploadFile() throws Exception { + com.box.sdk.BoxFile result = null; + + try { + final Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("CamelBox2.parentFolderId", "0"); + headers.put("CamelBox2.content", getClass().getResourceAsStream(CAMEL_TEST_FILE)); + headers.put("CamelBox2.fileName", CAMEL_TEST_UPLOAD_FILE_NAME); + headers.put("CamelBox2.created", null); + headers.put("CamelBox2.modified", null); + headers.put("CamelBox2.size", null); + headers.put("CamelBox2.listener", null); + + result = requestBodyAndHeaders("direct://UPLOADFILE", null, headers); + + assertNotNull("uploadFile result", result); + LOG.debug("uploadFile: " + result); + } finally { + if (result != null) { + try { + result.delete(); + } catch (Throwable t) { + } + } + } + } + + @Test + public void testUploadNewFileVersion() throws Exception { + com.box.sdk.BoxFile result = null; + + try { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is java.io.InputStream + headers.put("CamelBox2.fileContent", getClass().getResourceAsStream(CAMEL_TEST_FILE)); + // parameter type is java.util.Date + headers.put("CamelBox2.modified", null); + // parameter type is Long + headers.put("CamelBox2.fileSize", null); + // parameter type is com.box.sdk.ProgressListener + headers.put("CamelBox2.listener", null); + + result = requestBodyAndHeaders("direct://UPLOADNEWFILEVERSION", null, headers); + + assertNotNull("uploadNewFileVersion result", result); + LOG.debug("uploadNewFileVersion: " + result); + } finally { + if (result != null) { + try { + result.delete(); + } catch (Throwable t) { + } + } + } + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for copyFile + from("direct://COPYFILE").to("box2://" + PATH_PREFIX + "/copyFile"); + + // test route for createFileMetadata + from("direct://CREATEFILEMETADATA").to("box2://" + PATH_PREFIX + "/createFileMetadata"); + + // test route for createFileSharedLink + from("direct://CREATEFILESHAREDLINK").to("box2://" + PATH_PREFIX + "/createFileSharedLink"); + + // test route for deleteFile + from("direct://DELETEFILE").to("box2://" + PATH_PREFIX + "/deleteFile?inBody=fileId"); + + // test route for deleteFileMetadata + from("direct://DELETEFILEMETADATA").to("box2://" + PATH_PREFIX + "/deleteFileMetadata?inBody=fileId"); + + // test route for deleteFileVersion + from("direct://DELETEFILEVERSION").to("box2://" + PATH_PREFIX + "/deleteFileVersion"); + + // test route for downloadFile + from("direct://DOWNLOADFILE").to("box2://" + PATH_PREFIX + "/downloadFile"); + + // test route for downloadPreviousFileVersion + from("direct://DOWNLOADPREVIOUSFILEVERSION") + .to("box2://" + PATH_PREFIX + "/downloadPreviousFileVersion"); + + // test route for getDownloadURL + from("direct://GETDOWNLOADURL").to("box2://" + PATH_PREFIX + "/getDownloadURL?inBody=fileId"); + + // test route for getFileInfo + from("direct://GETFILEINFO").to("box2://" + PATH_PREFIX + "/getFileInfo"); + + // test route for getFileMetadata + from("direct://GETFILEMETADATA").to("box2://" + PATH_PREFIX + "/getFileMetadata"); + + // test route for getFilePreviewLink + from("direct://GETFILEPREVIEWLINK").to("box2://" + PATH_PREFIX + "/getFilePreviewLink?inBody=fileId"); + + // test route for getFileThumbnail + from("direct://GETFILETHUMBNAIL").to("box2://" + PATH_PREFIX + "/getFileThumbnail"); + + // test route for getFileVersions + from("direct://GETFILEVERSIONS").to("box2://" + PATH_PREFIX + "/getFileVersions?inBody=fileId"); + + // test route for moveFile + from("direct://MOVEFILE").to("box2://" + PATH_PREFIX + "/moveFile"); + + // test route for promoteFileVersion + from("direct://PROMOTEFILEVERSION").to("box2://" + PATH_PREFIX + "/promoteFileVersion"); + + // test route for renameFile + from("direct://RENAMEFILE").to("box2://" + PATH_PREFIX + "/renameFile"); + + // test route for updateFileInfo + from("direct://UPDATEFILEINFO").to("box2://" + PATH_PREFIX + "/updateFileInfo"); + + // test route for updateFileMetadata + from("direct://UPDATEFILEMETADATA").to("box2://" + PATH_PREFIX + "/updateFileMetadata"); + + // test route for uploadFile + from("direct://UPLOADFILE").to("box2://" + PATH_PREFIX + "/uploadFile"); + + // test route for uploadNewFileVersion + from("direct://UPLOADNEWFILEVERSION").to("box2://" + PATH_PREFIX + "/uploadNewFileVersion"); + + } + }; + } + + @Before + public void setupTest() throws Exception { + createTestFile(); + } + + @After + public void teardownTest() { + deleteTestFile(); + } + + public BoxAPIConnection getConnection() { + Box2Endpoint endpoint = (Box2Endpoint) context().getEndpoint("box2://" + PATH_PREFIX + "/copyFile"); + return endpoint.getBoxConnection(); + } + + private void createTestFile() throws FileNotFoundException { + BoxFolder rootFolder = BoxFolder.getRootFolder(getConnection()); + InputStream stream = getClass().getResourceAsStream(CAMEL_TEST_FILE); + testFile = rootFolder.uploadFile(stream, CAMEL_TEST_FILE_NAME).getResource(); + } + + private void deleteTestFile() { + try { + testFile.delete(); + } catch (Throwable t) { + } + testFile = null; + } + + private int sizeOfIterable(Iterable<?> it) { + if (it instanceof Collection) { + return ((Collection<?>) it).size(); + } else { + int i = 0; + for (@SuppressWarnings("unused") + Object obj : it) { + i++; + } + return i; + } + + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/45335d1e/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2FoldersManagerIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2FoldersManagerIntegrationTest.java b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2FoldersManagerIntegrationTest.java new file mode 100644 index 0000000..92a5765 --- /dev/null +++ b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2FoldersManagerIntegrationTest.java @@ -0,0 +1,322 @@ +/** + * 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.box2; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import com.box.sdk.BoxAPIConnection; +import com.box.sdk.BoxFolder; +import com.box.sdk.BoxItem; +import com.box.sdk.BoxSharedLink; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.box2.internal.Box2ApiCollection; +import org.apache.camel.component.box2.internal.Box2FoldersManagerApiMethod; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Test class for {@link org.apache.camel.component.box2.api.Box2FoldersManager} + * APIs. + */ +public class Box2FoldersManagerIntegrationTest extends AbstractBox2TestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(Box2FoldersManagerIntegrationTest.class); + private static final String PATH_PREFIX = Box2ApiCollection.getCollection() + .getApiName(Box2FoldersManagerApiMethod.class).getName(); + private static final String CAMEL_TEST_FOLDER = "CamelTestFolder"; + private static final String CAMEL_TEST_FOLDER_DESCRIPTION = "This is a description of CamelTestFolder"; + private static final String CAMEL_TEST_COPY_FOLDER = Box2FoldersManagerIntegrationTest.CAMEL_TEST_FOLDER + "_Copy"; + private static final String CAMEL_TEST_MOVE_FOLDER = Box2FoldersManagerIntegrationTest.CAMEL_TEST_FOLDER + "_Move"; + private static final String CAMEL_TEST_RENAME_FOLDER = Box2FoldersManagerIntegrationTest.CAMEL_TEST_FOLDER + + "_Rename"; + private static final String CAMEL_TEST_ROOT_FOLDER_ID = "0"; + private static final String CAMEL_TEST_DESTINATION_FOLDER_ID = "0"; + + private BoxFolder testFolder; + + @Test + public void testCreateFolder() throws Exception { + + // delete folder created in test setup. + deleteTestFolder(); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.parentFolderId", "0"); + // parameter type is String + headers.put("CamelBox2.folderName", CAMEL_TEST_FOLDER); + + testFolder = requestBodyAndHeaders("direct://CREATEFOLDER", null, headers); + + assertNotNull("createFolder result", testFolder); + assertEquals("createFolder folder name", CAMEL_TEST_FOLDER, testFolder.getInfo().getName()); + LOG.debug("createFolder: " + testFolder); + } + + @Test + public void testDeleteFolder() throws Exception { + // using String message body for single parameter "folderId" + requestBody("direct://DELETEFOLDER", testFolder.getID()); + + BoxFolder rootFolder = BoxFolder.getRootFolder(getConnection()); + Iterable<BoxItem.Info> it = rootFolder.search("^" + CAMEL_TEST_FOLDER + "$"); + int searchResults = sizeOfIterable(it); + boolean exists = searchResults > 0 ? true : false; + assertEquals("deleteFolder exists", false, exists); + LOG.debug("deleteFolder: exists? " + exists); + } + + @Test + public void testCopyFolder() throws Exception { + com.box.sdk.BoxFolder result = null; + try { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.folderId", testFolder.getID()); + // parameter type is String + headers.put("CamelBox2.destinationFolderId", CAMEL_TEST_DESTINATION_FOLDER_ID); + // parameter type is String + headers.put("CamelBox2.newName", CAMEL_TEST_COPY_FOLDER); + result = requestBodyAndHeaders("direct://COPYFOLDER", null, headers); + assertNotNull("copyFolder result", result); + assertEquals("copyFolder folder name", CAMEL_TEST_COPY_FOLDER, result.getInfo().getName()); + LOG.debug("copyFolder: " + result); + } finally { + if (result != null) { + try { + result.delete(true); + } catch (Throwable t) { + } + } + } + } + + @Test + public void testCreateSharedLink() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.folderId", testFolder.getID()); + // parameter type is com.box.sdk.BoxSharedLink.Access + headers.put("CamelBox2.access", BoxSharedLink.Access.COLLABORATORS); + // parameter type is java.util.Date + headers.put("CamelBox2.unshareDate", null); + // parameter type is com.box.sdk.BoxSharedLink.Permissions + headers.put("CamelBox2.permissions", new BoxSharedLink.Permissions()); + + final com.box.sdk.BoxSharedLink result = requestBodyAndHeaders("direct://CREATEFOLDERSHAREDLINK", null, + headers); + + assertNotNull("createFolderSharedLink result", result); + LOG.debug("createFolderSharedLink: " + result); + } + + @Test + public void testGetFolder() throws Exception { + // using String[] message body for single parameter "path" + final com.box.sdk.BoxFolder result = requestBody("direct://GETFOLDER", new String[] {CAMEL_TEST_FOLDER}); + + assertNotNull("getFolder result", result); + assertEquals("getFolder folder id", testFolder.getID(), result.getID()); + LOG.debug("getFolder: " + result); + } + + @Test + public void testGetFolderInfo() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.folderId", testFolder.getID()); + // parameter type is String[] + headers.put("CamelBox2.fields", new String[] {"name"}); + + final com.box.sdk.BoxFolder.Info result = requestBodyAndHeaders("direct://GETFOLDERINFO", null, headers); + + assertNotNull("getFolderInfo result", result); + assertNotNull("getFolderInfo result.getName()", result.getName()); + assertEquals("getFolderInfo info name", CAMEL_TEST_FOLDER, result.getName()); + LOG.debug("getFolderInfo: " + result); + } + + @Test + public void testGetFolderItems() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.folderId", CAMEL_TEST_ROOT_FOLDER_ID); + // parameter type is Long + headers.put("CamelBox2.offset", null); + // parameter type is Long + headers.put("CamelBox2.limit", null); + // parameter type is String[] + headers.put("CamelBox2.fields", null); + + @SuppressWarnings("rawtypes") + final java.util.Collection result = requestBodyAndHeaders("direct://GETFOLDERITEMS", null, headers); + + assertNotNull("getFolderItems result", result); + LOG.debug("getFolderItems: " + result); + } + + @Test + public void testGetRootFolder() throws Exception { + final com.box.sdk.BoxFolder result = requestBody("direct://GETROOTFOLDER", null); + + assertNotNull("getRootFolder result", result); + LOG.debug("getRootFolder: " + result); + } + + @Test + public void testMoveFolder() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.folderId", testFolder.getID()); + // parameter type is String + headers.put("CamelBox2.destinationFolderId", CAMEL_TEST_DESTINATION_FOLDER_ID); + // parameter type is String + headers.put("CamelBox2.newName", CAMEL_TEST_MOVE_FOLDER); + + final com.box.sdk.BoxFolder result = requestBodyAndHeaders("direct://MOVEFOLDER", null, headers); + + assertNotNull("moveFolder result", result); + assertEquals("moveFolder folder name", CAMEL_TEST_MOVE_FOLDER, result.getInfo().getName()); + LOG.debug("moveFolder: " + result); + } + + @Test + public void testRenameFolder() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.folderId", testFolder.getID()); + // parameter type is String + headers.put("CamelBox2.newFolderName", CAMEL_TEST_RENAME_FOLDER); + + final com.box.sdk.BoxFolder result = requestBodyAndHeaders("direct://RENAMEFOLDER", null, headers); + + assertNotNull("renameFolder result", result); + assertEquals("moveFolder folder name", CAMEL_TEST_RENAME_FOLDER, result.getInfo().getName()); + LOG.debug("renameFolder: " + result); + } + + @Test + public void testUpdateInfo() throws Exception { + final BoxFolder.Info testFolderInfo = testFolder.getInfo(); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.folderId", testFolder.getID()); + // parameter type is com.box.sdk.BoxFolder.Info + testFolderInfo.setDescription(CAMEL_TEST_FOLDER_DESCRIPTION); + headers.put("CamelBox2.info", testFolderInfo); + + final com.box.sdk.BoxFolder result = requestBodyAndHeaders("direct://UPDATEFOLDERINFO", null, headers); + + assertNotNull("updateInfo result", result); + assertEquals("update folder info description", CAMEL_TEST_FOLDER_DESCRIPTION, + result.getInfo().getDescription()); + LOG.debug("updateInfo: " + result); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for copyFolder + from("direct://COPYFOLDER").to("box2://" + PATH_PREFIX + "/copyFolder"); + + // test route for createFolder + from("direct://CREATEFOLDER").to("box2://" + PATH_PREFIX + "/createFolder"); + + // test route for createFolderSharedLink + from("direct://CREATEFOLDERSHAREDLINK").to("box2://" + PATH_PREFIX + "/createFolderSharedLink"); + + // test route for deleteFolder + from("direct://DELETEFOLDER").to("box2://" + PATH_PREFIX + "/deleteFolder?inBody=folderId"); + + // test route for getFolder + from("direct://GETFOLDER").to("box2://" + PATH_PREFIX + "/getFolder?inBody=path"); + + // test route for getFolderInfo + from("direct://GETFOLDERINFO").to("box2://" + PATH_PREFIX + "/getFolderInfo"); + + // test route for getFolderItems + from("direct://GETFOLDERITEMS").to("box2://" + PATH_PREFIX + "/getFolderItems"); + + // test route for getRootFolder + from("direct://GETROOTFOLDER").to("box2://" + PATH_PREFIX + "/getRootFolder"); + + // test route for moveFolder + from("direct://MOVEFOLDER").to("box2://" + PATH_PREFIX + "/moveFolder"); + + // test route for renameFolder + from("direct://RENAMEFOLDER").to("box2://" + PATH_PREFIX + "/renameFolder"); + + // test route for updateFolderInfo + from("direct://UPDATEFOLDERINFO").to("box2://" + PATH_PREFIX + "/updateFolderInfo"); + + } + }; + } + + @Before + public void setupTest() throws Exception { + createTestFolder(); + } + + @After + public void teardownTest() { + deleteTestFolder(); + } + + public BoxAPIConnection getConnection() { + Box2Endpoint endpoint = (Box2Endpoint) context().getEndpoint("box2://" + PATH_PREFIX + "/copyFolder"); + return endpoint.getBoxConnection(); + } + + private void createTestFolder() { + BoxFolder rootFolder = BoxFolder.getRootFolder(getConnection()); + testFolder = rootFolder.createFolder(CAMEL_TEST_FOLDER).getResource(); + } + + private void deleteTestFolder() { + if (testFolder != null) { + try { + testFolder.delete(true); + } catch (Throwable t) { + } + testFolder = null; + } + } + + private int sizeOfIterable(Iterable<?> it) { + if (it instanceof Collection) { + return ((Collection<?>) it).size(); + } else { + int i = 0; + for (@SuppressWarnings("unused") + Object obj : it) { + i++; + } + return i; + } + + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/45335d1e/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2GroupsManagerIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2GroupsManagerIntegrationTest.java b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2GroupsManagerIntegrationTest.java new file mode 100644 index 0000000..6d987ee --- /dev/null +++ b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2GroupsManagerIntegrationTest.java @@ -0,0 +1,268 @@ +/** + * 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.box2; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import com.box.sdk.BoxAPIConnection; +import com.box.sdk.BoxGroup; +import com.box.sdk.BoxGroupMembership; +import com.box.sdk.BoxUser; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.box2.internal.Box2ApiCollection; +import org.apache.camel.component.box2.internal.Box2GroupsManagerApiMethod; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Test class for {@link org.apache.camel.component.box2.api.Box2GroupsManager} + * APIs. + */ +public class Box2GroupsManagerIntegrationTest extends AbstractBox2TestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(Box2GroupsManagerIntegrationTest.class); + private static final String PATH_PREFIX = Box2ApiCollection.getCollection() + .getApiName(Box2GroupsManagerApiMethod.class).getName(); + private static final String CAMEL_TEST_GROUP_NAME = "CamelTestGroup"; + private static final String CAMEL_TEST_CREATE_GROUP_NAME = "CamelTestCreateGroup"; + + private BoxGroup testGroup; + private BoxUser testUser; + + @Test + public void testAddGroupMembership() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.groupId", testGroup.getID()); + // parameter type is String + headers.put("CamelBox2.userId", testUser.getID()); + // parameter type is com.box.sdk.BoxGroupMembership.Role + headers.put("CamelBox2.role", null); + + final com.box.sdk.BoxGroupMembership result = requestBodyAndHeaders("direct://ADDGROUPMEMBERSHIP", null, + headers); + + assertNotNull("addGroupMembership result", result); + LOG.debug("addGroupMembership: " + result); + } + + @Test + public void testCreateGroup() throws Exception { + com.box.sdk.BoxGroup result = null; + + try { + // using String message body for single parameter "name" + result = requestBody("direct://CREATEGROUP", CAMEL_TEST_CREATE_GROUP_NAME); + assertNotNull("createGroup result", result); + assertEquals(CAMEL_TEST_CREATE_GROUP_NAME, result.getInfo().getName()); + LOG.debug("createGroup: " + result); + } finally { + if (result != null) { + try { + result.delete(); + } catch (Throwable t) { + } + } + } + } + + @Test + public void testDeleteGroup() throws Exception { + // using String message body for single parameter "groupId" + requestBody("direct://DELETEGROUP", testGroup.getID()); + + testGroup = null; + + Iterable<BoxGroup.Info> it = BoxGroup.getAllGroups(getConnection()); + int searchResults = sizeOfIterable(it); + boolean exists = searchResults > 0 ? true : false; + assertEquals("deleteGroup exists", false, exists); + LOG.debug("deleteGroup: exists? " + exists); + } + + @Test + public void testDeleteGroupMembership() throws Exception { + BoxGroupMembership.Info info = testGroup.addMembership(testUser, BoxGroupMembership.Role.MEMBER); + + // using String message body for single parameter "groupMembershipId" + requestBody("direct://DELETEGROUPMEMBERSHIP", info.getID()); + + Collection<BoxGroupMembership.Info> memberships = testGroup.getMemberships(); + assertNotNull("deleteGroupMemberships memberships", memberships); + assertEquals("deleteGroupMemberships memberships exists", 0, memberships.size()); + } + + @Test + public void testGetAllGroups() throws Exception { + @SuppressWarnings("rawtypes") + final java.util.Collection result = requestBody("direct://GETALLGROUPS", null); + + assertNotNull("getAllGroups result", result); + LOG.debug("getAllGroups: " + result); + } + + @Test + public void testGetGroupInfo() throws Exception { + // using String message body for single parameter "groupId" + final com.box.sdk.BoxGroup.Info result = requestBody("direct://GETGROUPINFO", testGroup.getID()); + + assertNotNull("getGroupInfo result", result); + LOG.debug("getGroupInfo: " + result); + } + + @Test + public void testGetGroupMembershipInfo() throws Exception { + BoxGroupMembership.Info info = testGroup.addMembership(testUser, BoxGroupMembership.Role.MEMBER); + + // using String message body for single parameter "groupMemebershipId" + final com.box.sdk.BoxGroupMembership.Info result = requestBody("direct://GETGROUPMEMBERSHIPINFO", info.getID()); + + assertNotNull("getGroupMembershipInfo result", result); + LOG.debug("getGroupMembershipInfo: " + result); + } + + @Test + public void testGetGroupMemberships() throws Exception { + // using String message body for single parameter "groupId" + @SuppressWarnings("rawtypes") + final java.util.Collection result = requestBody("direct://GETGROUPMEMBERSHIPS", testGroup.getID()); + + assertNotNull("getGroupMemberships result", result); + LOG.debug("getGroupMemberships: " + result); + } + + @Test + public void testUpdateGroupMembershipInfo() throws Exception { + BoxGroupMembership.Info info = testGroup.addMembership(testUser, BoxGroupMembership.Role.MEMBER); + info.setRole(BoxGroupMembership.Role.ADMIN); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.groupMemebershipId", info.getID()); + // parameter type is com.box.sdk.BoxGroupMembership.Info + headers.put("CamelBox2.info", info); + + final com.box.sdk.BoxGroupMembership result = requestBodyAndHeaders("direct://UPDATEGROUPMEMBERSHIPINFO", null, + headers); + + assertNotNull("updateGroupMembershipInfo result", result); + LOG.debug("updateGroupMembershipInfo: " + result); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for addGroupMembership + from("direct://ADDGROUPMEMBERSHIP").to("box2://" + PATH_PREFIX + "/addGroupMembership"); + + // test route for createGroup + from("direct://CREATEGROUP").to("box2://" + PATH_PREFIX + "/createGroup?inBody=name"); + + // test route for deleteGroup + from("direct://DELETEGROUP").to("box2://" + PATH_PREFIX + "/deleteGroup?inBody=groupId"); + + // test route for deleteGroupMembership + from("direct://DELETEGROUPMEMBERSHIP") + .to("box2://" + PATH_PREFIX + "/deleteGroupMembership?inBody=groupMembershipId"); + + // test route for getAllGroups + from("direct://GETALLGROUPS").to("box2://" + PATH_PREFIX + "/getAllGroups"); + + // test route for getGroupInfo + from("direct://GETGROUPINFO").to("box2://" + PATH_PREFIX + "/getGroupInfo?inBody=groupId"); + + // test route for getGroupMembershipInfo + from("direct://GETGROUPMEMBERSHIPINFO") + .to("box2://" + PATH_PREFIX + "/getGroupMembershipInfo?inBody=groupMemebershipId"); + + // test route for getGroupMemberships + from("direct://GETGROUPMEMBERSHIPS") + .to("box2://" + PATH_PREFIX + "/getGroupMemberships?inBody=groupId"); + + // test route for updateGroupMembershipInfo + from("direct://UPDATEGROUPMEMBERSHIPINFO").to("box2://" + PATH_PREFIX + "/updateGroupMembershipInfo"); + + } + }; + } + + @Before + public void setupTest() throws Exception { + createTestGroup(); + createTestUser(); + } + + @After + public void teardownTest() { + deleteTestGroup(); + deleteTestUser(); + } + + public BoxAPIConnection getConnection() { + Box2Endpoint endpoint = (Box2Endpoint) context().getEndpoint("box2://" + PATH_PREFIX + "/addGroupMembership"); + return endpoint.getBoxConnection(); + } + + private void createTestGroup() { + testGroup = BoxGroup.createGroup(getConnection(), CAMEL_TEST_GROUP_NAME).getResource(); + } + + private void deleteTestGroup() { + if (testGroup != null) { + try { + testGroup.delete(); + } catch (Throwable t) { + } + testGroup = null; + } + } + + private void createTestUser() { + testUser = getCurrentUser(); + } + + private void deleteTestUser() { + if (testUser != null) { + testUser = null; + } + } + + private BoxUser getCurrentUser() { + return BoxUser.getCurrentUser(getConnection()); + } + + private int sizeOfIterable(Iterable<?> it) { + if (it instanceof Collection) { + return ((Collection<?>) it).size(); + } else { + int i = 0; + for (@SuppressWarnings("unused") + Object obj : it) { + i++; + } + return i; + } + + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/45335d1e/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2SearchManagerIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2SearchManagerIntegrationTest.java b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2SearchManagerIntegrationTest.java new file mode 100644 index 0000000..66be97d --- /dev/null +++ b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2SearchManagerIntegrationTest.java @@ -0,0 +1,106 @@ +/** + * 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.box2; + +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +import com.box.sdk.BoxAPIConnection; +import com.box.sdk.BoxFile; +import com.box.sdk.BoxFolder; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.box2.internal.Box2ApiCollection; +import org.apache.camel.component.box2.internal.Box2SearchManagerApiMethod; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Test class for {@link org.apache.camel.component.box2.api.Box2SearchManager} + * APIs. + */ +public class Box2SearchManagerIntegrationTest extends AbstractBox2TestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(Box2SearchManagerIntegrationTest.class); + private static final String PATH_PREFIX = Box2ApiCollection.getCollection() + .getApiName(Box2SearchManagerApiMethod.class).getName(); + private static final String CAMEL_TEST_FILE = "/CamelTestFile.txt"; + private static final String CAMEL_TEST_FILE_NAME = "CamelTestFile.txt"; + + private BoxFile testFile; + + @Test + public void testSearchFolder() throws Exception { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.folderId", "0"); + // parameter type is String + headers.put("CamelBox2.query", CAMEL_TEST_FILE_NAME); + + @SuppressWarnings("rawtypes") + final java.util.Collection result = requestBodyAndHeaders("direct://SEARCHFOLDER", null, headers); + + assertNotNull("searchFolder result", result); + assertEquals("searchFolder file found", 1, result.size()); + LOG.debug("searchFolder: " + result); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for searchFolder + from("direct://SEARCHFOLDER").to("box2://" + PATH_PREFIX + "/searchFolder"); + + } + }; + } + + @Before + public void setupTest() throws Exception { + createTestFile(); + } + + @After + public void teardownTest() { + deleteTestFile(); + } + + public BoxAPIConnection getConnection() { + Box2Endpoint endpoint = (Box2Endpoint) context().getEndpoint("box2://" + PATH_PREFIX + "/searchFolder"); + return endpoint.getBoxConnection(); + } + + private void createTestFile() throws FileNotFoundException { + BoxFolder rootFolder = BoxFolder.getRootFolder(getConnection()); + InputStream stream = getClass().getResourceAsStream(CAMEL_TEST_FILE); + testFile = rootFolder.uploadFile(stream, CAMEL_TEST_FILE_NAME).getResource(); + } + + private void deleteTestFile() { + try { + testFile.delete(); + } catch (Throwable t) { + } + testFile = null; + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/45335d1e/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2TasksManagerIntegrationTest.java ---------------------------------------------------------------------- diff --git a/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2TasksManagerIntegrationTest.java b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2TasksManagerIntegrationTest.java new file mode 100644 index 0000000..b0aacfe --- /dev/null +++ b/components/camel-box2/camel-box2-component/src/test/java/org/apache/camel/component/box2/Box2TasksManagerIntegrationTest.java @@ -0,0 +1,284 @@ +/** + * 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.box2; + +import java.io.FileNotFoundException; +import java.io.InputStream; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.box.sdk.BoxAPIConnection; +import com.box.sdk.BoxFile; +import com.box.sdk.BoxFolder; +import com.box.sdk.BoxTask; +import com.box.sdk.BoxTask.Action; +import com.box.sdk.BoxTaskAssignment; +import com.box.sdk.BoxUser; + +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.box2.internal.Box2ApiCollection; +import org.apache.camel.component.box2.internal.Box2TasksManagerApiMethod; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Test class for {@link org.apache.camel.component.box2.api.Box2TasksManager} + * APIs. + */ +public class Box2TasksManagerIntegrationTest extends AbstractBox2TestSupport { + + private static final Logger LOG = LoggerFactory.getLogger(Box2TasksManagerIntegrationTest.class); + private static final String PATH_PREFIX = Box2ApiCollection.getCollection() + .getApiName(Box2TasksManagerApiMethod.class).getName(); + private static final String CAMEL_TEST_FILE = "/CamelTestFile.txt"; + private static final String CAMEL_TEST_FILE_NAME = "CamelTestFile.txt"; + private static final String CAMEL_TEST_MESSAGE = "Camel Test Message"; + private static final long TEN_MINUTES_IN_MILLIS = 600000; + + private BoxFile testFile; + private BoxTask testTask; + + @Test + public void testAddAssignmentToTask() throws Exception { + com.box.sdk.BoxTask result = null; + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.taskId", testTask.getID()); + // parameter type is com.box.sdk.BoxUser + headers.put("CamelBox2.assignTo", getCurrentUser()); + + result = requestBodyAndHeaders("direct://ADDASSIGNMENTTOTASK", null, headers); + + assertNotNull("addAssignmentToTask result", result); + LOG.debug("addAssignmentToTask: " + result); + } + + @Test + public void testAddFileTask() throws Exception { + com.box.sdk.BoxTask result = null; + + try { + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.fileId", testFile.getID()); + // parameter type is com.box.sdk.BoxTask.Action + headers.put("CamelBox2.action", BoxTask.Action.REVIEW); + // parameter type is java.util.Date + Date now = new Date(); + Date dueAt = new Date(now.getTime() + TEN_MINUTES_IN_MILLIS); + headers.put("CamelBox2.dueAt", dueAt); + // parameter type is String + headers.put("CamelBox2.message", CAMEL_TEST_MESSAGE); + + result = requestBodyAndHeaders("direct://ADDFILETASK", null, headers); + + assertNotNull("addFileTask result", result); + LOG.debug("addFileTask: " + result); + } finally { + if (result != null) { + try { + result.delete(); + } catch (Throwable t) { + } + } + } + } + + @Test + public void testDeleteTask() throws Exception { + // using String message body for single parameter "taskId" + requestBody("direct://DELETETASK", testTask.getID()); + + List<BoxTask.Info> tasks = testFile.getTasks(); + boolean exists = tasks.size() != 0; + assertEquals("deleteTask task still exists.", false, exists); + } + + @Ignore // Receiving "not found" exception from Box API + @Test + public void testDeleteTaskAssignment() throws Exception { + BoxTaskAssignment.Info info = testTask.addAssignment(getCurrentUser()); + + // using String message body for single parameter "taskAssignmentId" + requestBody("direct://DELETETASKASSIGNMENT", info.getID()); + + List<BoxTaskAssignment.Info> assignments = testTask.getAssignments(); + boolean exists = assignments.size() != 0; + assertEquals("deleteTaskAssignment assignment still exists.", false, exists); + } + + @Test + public void testGetFileTasks() throws Exception { + // using String message body for single parameter "fileId" + @SuppressWarnings("rawtypes") + final java.util.List result = requestBody("direct://GETFILETASKS", testFile.getID()); + + assertNotNull("getFileTasks result", result); + LOG.debug("getFileTasks: " + result); + } + + @Ignore + @Test + public void testGetTaskAssignmentInfo() throws Exception { + BoxTaskAssignment.Info info = testTask.addAssignment(getCurrentUser()); + com.box.sdk.BoxTaskAssignment.Info result = null; + + try { + // using String message body for single parameter "taskAssignmentId" + result = requestBody("direct://GETTASKASSIGNMENTINFO", info.getID()); + + assertNotNull("getTaskAssignmentInfo result", result); + LOG.debug("getTaskAssignmentInfo: " + result); + } finally { + if (result != null) { + try { + ((BoxTaskAssignment) result.getResource()).delete(); + } catch (Throwable t) { + } + } + } + } + + @Test + public void testGetTaskAssignments() throws Exception { + // using String message body for single parameter "taskId" + @SuppressWarnings("rawtypes") + final java.util.List result = requestBody("direct://GETTASKASSIGNMENTS", testTask.getID()); + + assertNotNull("getTaskAssignments result", result); + LOG.debug("getTaskAssignments: " + result); + } + + @Test + public void testGetTaskInfo() throws Exception { + // using String message body for single parameter "taskId" + final com.box.sdk.BoxTask.Info result = requestBody("direct://GETTASKINFO", testTask.getID()); + + assertNotNull("getTaskInfo result", result); + LOG.debug("getTaskInfo: " + result); + } + + @Ignore // No way to change BoxTask.Info parameters + @Test + public void testUpdateTaskInfo() throws Exception { + BoxTask.Info info = testTask.getInfo(); + + final Map<String, Object> headers = new HashMap<String, Object>(); + // parameter type is String + headers.put("CamelBox2.taskId", testTask.getID()); + // parameter type is com.box.sdk.BoxTask.Info + headers.put("CamelBox2.info", info); + + final com.box.sdk.BoxTask result = requestBodyAndHeaders("direct://UPDATETASKINFO", null, headers); + + assertNotNull("updateTaskInfo result", result); + LOG.debug("updateTaskInfo: " + result); + } + + @Override + protected RouteBuilder createRouteBuilder() throws Exception { + return new RouteBuilder() { + public void configure() { + // test route for addAssignmentToTask + from("direct://ADDASSIGNMENTTOTASK").to("box2://" + PATH_PREFIX + "/addAssignmentToTask"); + + // test route for addFileTask + from("direct://ADDFILETASK").to("box2://" + PATH_PREFIX + "/addFileTask"); + + // test route for deleteTask + from("direct://DELETETASK").to("box2://" + PATH_PREFIX + "/deleteTask?inBody=taskId"); + + // test route for deleteTaskAssignment + from("direct://DELETETASKASSIGNMENT") + .to("box2://" + PATH_PREFIX + "/deleteTaskAssignment?inBody=taskAssignmentId"); + + // test route for getFileTasks + from("direct://GETFILETASKS").to("box2://" + PATH_PREFIX + "/getFileTasks?inBody=fileId"); + + // test route for getTaskAssignmentInfo + from("direct://GETTASKASSIGNMENTINFO") + .to("box2://" + PATH_PREFIX + "/getTaskAssignmentInfo?inBody=taskAssignmentId"); + + // test route for getTaskAssignments + from("direct://GETTASKASSIGNMENTS").to("box2://" + PATH_PREFIX + "/getTaskAssignments?inBody=taskId"); + + // test route for getTaskInfo + from("direct://GETTASKINFO").to("box2://" + PATH_PREFIX + "/getTaskInfo?inBody=taskId"); + + // test route for updateTaskInfo + from("direct://UPDATETASKINFO").to("box2://" + PATH_PREFIX + "/updateTaskInfo"); + + } + }; + } + + @Before + public void setupTest() throws Exception { + createTestFile(); + createTestTask(); + } + + @After + public void teardownTest() { + deleteTestTask(); + deleteTestFile(); + } + + public BoxAPIConnection getConnection() { + Box2Endpoint endpoint = (Box2Endpoint) context().getEndpoint("box2://" + PATH_PREFIX + "/addAssignmentToTask"); + return endpoint.getBoxConnection(); + } + + private void createTestTask() { + Date now = new Date(); + Date dueAt = new Date(now.getTime() + TEN_MINUTES_IN_MILLIS); + testTask = (BoxTask) testFile.addTask(Action.REVIEW, CAMEL_TEST_MESSAGE, dueAt).getResource(); + } + + private void deleteTestTask() { + try { + testTask.delete(); + } catch (Throwable t) { + } + testTask = null; + } + + private void createTestFile() throws FileNotFoundException { + BoxFolder rootFolder = BoxFolder.getRootFolder(getConnection()); + InputStream stream = getClass().getResourceAsStream(CAMEL_TEST_FILE); + testFile = rootFolder.uploadFile(stream, CAMEL_TEST_FILE_NAME).getResource(); + } + + private void deleteTestFile() { + try { + testFile.delete(); + } catch (Throwable t) { + } + testFile = null; + } + + private BoxUser getCurrentUser() { + return BoxUser.getCurrentUser(getConnection()); + } +}
