From 57cdfa20326e1c8b4ae73eb6957ae9e089d97a3f Mon Sep 17 00:00:00 2001 From: gleb-urvanov Date: Fri, 18 Nov 2016 20:31:06 +0100 Subject: [PATCH] unit tests for BoxUser methods --- src/test/java/com/box/sdk/BoxUserTest.java | 407 +++++++++++++++++++++ 1 file changed, 407 insertions(+) diff --git a/src/test/java/com/box/sdk/BoxUserTest.java b/src/test/java/com/box/sdk/BoxUserTest.java index 84cf83c1f..0a7129c28 100644 --- a/src/test/java/com/box/sdk/BoxUserTest.java +++ b/src/test/java/com/box/sdk/BoxUserTest.java @@ -17,6 +17,7 @@ import static org.junit.Assert.fail; import org.hamcrest.Matchers; +import org.junit.Assert; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -416,6 +417,412 @@ public String getJSON() { user.addEmailAlias(email); } + /** + * Unit test for {@link BoxUser#getInfo(String...)} + */ + @Test + @Category(UnitTest.class) + public void testGetInfoSendsCorrectRequestWithoutParams() { + BoxAPIConnection api = new BoxAPIConnection(""); + api.setRequestInterceptor(new RequestInterceptor() { + @Override + public BoxAPIResponse onRequest(BoxAPIRequest request) { + Assert.assertEquals("https://api.box.com/2.0/users/0", + request.getUrl().toString()); + return new BoxJSONResponse() { + @Override + public String getJSON() { + return "{\"id\": \"0\"}"; + } + }; + } + }); + + BoxUser user = new BoxUser(api, "0"); + user.getInfo(); + } + + /** + * Unit test for {@link BoxUser#getInfo(String...)} + */ + @Test + @Category(UnitTest.class) + public void testGetInfoSendsCorrectRequestWithFields() { + BoxAPIConnection api = new BoxAPIConnection(""); + api.setRequestInterceptor(new RequestInterceptor() { + @Override + public BoxAPIResponse onRequest(BoxAPIRequest request) { + Assert.assertEquals("https://api.box.com/2.0/users/0?fields=name%2Cstatus", + request.getUrl().toString()); + return new BoxJSONResponse() { + @Override + public String getJSON() { + return "{\"id\": \"0\"}"; + } + }; + } + }); + + BoxUser user = new BoxUser(api, "0"); + user.getInfo("name", "status"); + } + + /** + * Unit test for {@link BoxUser#getInfo(String...)} + */ + @Test + @Category(UnitTest.class) + public void testGetInfoParseAllFieldsCorrectly() throws ParseException { + final String id = "10543463"; + final String name = "Arielle Frey"; + final String login = "ariellefrey@box.com"; + final Date createdAt = BoxDateFormat.parse("2011-01-07T12:37:09-08:00"); + final Date modifiedAt = BoxDateFormat.parse("2014-05-30T10:39:47-07:00"); + final String language = "en"; + final String timezone = "America/Los_Angeles"; + final long spaceAmount = 10737418240L; + final long spaceUsed = 558732L; + final long maxUploadSize = 5368709120L; + final BoxUser.Status status = BoxUser.Status.ACTIVE; + final String jobTitle = ""; + final String phone = ""; + final String address = ""; + final String avatarURL = "https://blosserdemoaccount.app.box.com/api/avatar/large/10543465"; + + final JsonObject fakeJSONResponse = JsonObject.readFrom("{\n" + + " \"type\": \"user\",\n" + + " \"id\": \"10543463\",\n" + + " \"name\": \"Arielle Frey\",\n" + + " \"login\": \"ariellefrey@box.com\",\n" + + " \"created_at\": \"2011-01-07T12:37:09-08:00\",\n" + + " \"modified_at\": \"2014-05-30T10:39:47-07:00\",\n" + + " \"language\": \"en\",\n" + + " \"timezone\": \"America/Los_Angeles\",\n" + + " \"space_amount\": 10737418240,\n" + + " \"space_used\": 558732,\n" + + " \"max_upload_size\": 5368709120,\n" + + " \"status\": \"active\",\n" + + " \"job_title\": \"\",\n" + + " \"phone\": \"\",\n" + + " \"address\": \"\",\n" + + " \"avatar_url\": \"https://blosserdemoaccount.app.box.com/api/avatar/large/10543465\"\n" + + "}"); + + BoxAPIConnection api = new BoxAPIConnection(""); + api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeJSONResponse)); + + BoxUser user = new BoxUser(api, id); + BoxUser.Info info = user.getInfo(); + Assert.assertEquals(id, info.getID()); + Assert.assertEquals(name, info.getName()); + Assert.assertEquals(login, info.getLogin()); + Assert.assertEquals(createdAt, info.getCreatedAt()); + Assert.assertEquals(modifiedAt, info.getModifiedAt()); + Assert.assertEquals(language, info.getLanguage()); + Assert.assertEquals(timezone, info.getTimezone()); + Assert.assertEquals(spaceAmount, info.getSpaceAmount()); + Assert.assertEquals(spaceUsed, info.getSpaceUsed()); + Assert.assertEquals(maxUploadSize, info.getMaxUploadSize()); + Assert.assertEquals(status, info.getStatus()); + Assert.assertEquals(jobTitle, info.getJobTitle()); + Assert.assertEquals(phone, info.getPhone()); + Assert.assertEquals(address, info.getAddress()); + Assert.assertEquals(avatarURL, info.getAvatarURL()); + + } + + /** + * Unit test for {@link BoxUser#getCurrentUser(BoxAPIConnection)} + */ + @Test + @Category(UnitTest.class) + public void testGetCurrentUserSendsCorrectRequest() { + BoxAPIConnection api = new BoxAPIConnection(""); + api.setRequestInterceptor(new RequestInterceptor() { + @Override + public BoxAPIResponse onRequest(BoxAPIRequest request) { + Assert.assertEquals("https://api.box.com/2.0/users/me", + request.getUrl().toString()); + return new BoxJSONResponse() { + @Override + public String getJSON() { + return "{\"id\": \"0\"}"; + } + }; + } + }); + + BoxUser.getCurrentUser(api); + } + + /** + * Unit test for {@link BoxUser#getCurrentUser(BoxAPIConnection)} + */ + @Test + @Category(UnitTest.class) + public void testGetCurrentUserParseAllFieldsCorrectly() { + final String id = "17738362"; + + final JsonObject fakeJSONResponse = JsonObject.readFrom("{\n" + + " \"type\": \"user\",\n" + + " \"id\": \"17738362\",\n" + + " \"name\": \"sean rose\",\n" + + " \"login\": \"sean@box.com\",\n" + + " \"created_at\": \"2012-03-26T15:43:07-07:00\",\n" + + " \"modified_at\": \"2012-12-12T11:34:29-08:00\",\n" + + " \"language\": \"en\",\n" + + " \"space_amount\": 5368709120,\n" + + " \"space_used\": 2377016,\n" + + " \"max_upload_size\": 262144000,\n" + + " \"status\": \"active\",\n" + + " \"job_title\": \"Employee\",\n" + + " \"phone\": \"5555555555\",\n" + + " \"address\": \"555 Office Drive\",\n" + + " \"avatar_url\": \"https://app.box.com/api/avatar/large/17738362\"\n" + + "}"); + + BoxAPIConnection api = new BoxAPIConnection(""); + api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeJSONResponse)); + + BoxUser user = BoxUser.getCurrentUser(api); + Assert.assertEquals(id, user.getID()); + + } + + /** + * Unit test for {@link BoxUser#delete(boolean, boolean)} + */ + @Test + @Category(UnitTest.class) + public void testDeleteUserSendsCorrectRequest() { + BoxAPIConnection api = new BoxAPIConnection(""); + api.setRequestInterceptor(new RequestInterceptor() { + @Override + public BoxAPIResponse onRequest(BoxAPIRequest request) { + Assert.assertEquals("https://api.box.com/2.0/users/0?notify=true&force=true", + request.getUrl().toString()); + return new BoxJSONResponse() { + @Override + public String getJSON() { + return "{\"id\": \"0\"}"; + } + }; + } + }); + + BoxUser user = new BoxUser(api, "0"); + user.delete(true, true); + } + + /** + * Unit test for {@link BoxUser#deleteEmailAlias(String)} + */ + @Test + @Category(UnitTest.class) + public void testDeleteEmailAliasSendsCorrectRequest() { + BoxAPIConnection api = new BoxAPIConnection(""); + api.setRequestInterceptor(new RequestInterceptor() { + @Override + public BoxAPIResponse onRequest(BoxAPIRequest request) { + Assert.assertEquals("https://api.box.com/2.0/users/0/email_aliases/1", + request.getUrl().toString()); + return new BoxJSONResponse() { + @Override + public String getJSON() { + return "{\"id\": \"0\"}"; + } + }; + } + }); + + BoxUser user = new BoxUser(api, "0"); + user.deleteEmailAlias("1"); + } + + /** + * Unit test for {@link BoxUser#moveFolderToUser(String)} + */ + @Test + @Category(UnitTest.class) + public void testMoveFolderToUserSendsCorrectJson() { + final String ownedByID = "0"; + + BoxAPIConnection api = new BoxAPIConnection(""); + api.setRequestInterceptor(new JSONRequestInterceptor() { + @Override + protected BoxAPIResponse onJSONRequest(BoxJSONRequest request, JsonObject json) { + Assert.assertEquals("https://api.box.com/2.0/users/1/folders/0", + request.getUrl().toString()); + Assert.assertEquals(ownedByID, json.get("owned_by").asObject().get("id").asString()); + return new BoxJSONResponse() { + @Override + public String getJSON() { + return "{\"id\": \"0\"}"; + } + }; + } + }); + + BoxUser user = new BoxUser(api, "0"); + user.moveFolderToUser("1"); + + } + + /** + * Unit test for {@link BoxUser#moveFolderToUser(String)} + */ + @Test + @Category(UnitTest.class) + public void testMoveFolderToUserParseAllFieldsCorrectly() throws ParseException { + final String id = "11446498"; + final String sequenceID = "1"; + final String etag = "1"; + final String name = "Pictures"; + final Date createdAt = BoxDateFormat.parse("2012-12-12T10:53:43-08:00"); + final Date modifiedAt = BoxDateFormat.parse("2012-12-12T10:53:43-08:00"); + final String description = "Some pictures I took"; + final long size = 629644; + final String pathID = "0"; + final String pathSequenceID = null; + final String pathEtag = null; + final String pathName = "All Files"; + final String createdByID = "17738362"; + final String createdByName = "sean rose"; + final String createdByLogin = "sean@box.com"; + final String modifiedByID = "17738362"; + final String modifiedByName = "sean rose"; + final String modifiedByLogin = "sean@box.com"; + final String ownedByID = "17738362"; + final String ownedByName = "sean rose"; + final String ownedByLogin = "sean@box.com"; + final String url = "https://www.box.com/s/vspke7y05sb214wjokpk"; + final String downloadURL = null; + final String vanityUrl = null; + final boolean isPasswordEnabled = false; + final Date unsharedAt = null; + final long downloadCount = 0; + final long previewCount = 0; + final BoxSharedLink.Access access = BoxSharedLink.Access.OPEN; + final boolean canDownload = true; + final boolean canPreview = true; + final BoxUploadEmail.Access folderUploadEmailAccess = BoxUploadEmail.Access.OPEN; + final String folderUploadEmail = "upload.Picture.k13sdz1@u.box.com"; + final String parentID = "0"; + final String parentSequenceID = null; + final String parentEtag = null; + final String parentName = "All Files"; + final String itemStatus = "active"; + final JsonObject fakeJSONResponse = JsonObject.readFrom("{\n" + + " \"type\": \"folder\",\n" + + " \"id\": \"11446498\",\n" + + " \"sequence_id\": \"1\",\n" + + " \"etag\": \"1\",\n" + + " \"name\": \"Pictures\",\n" + + " \"created_at\": \"2012-12-12T10:53:43-08:00\",\n" + + " \"modified_at\": \"2012-12-12T10:53:43-08:00\",\n" + + " \"description\": \"Some pictures I took\",\n" + + " \"size\": 629644,\n" + + " \"path_collection\": {\n" + + " \"total_count\": 1,\n" + + " \"entries\": [\n" + + " {\n" + + " \"type\": \"folder\",\n" + + " \"id\": \"0\",\n" + + " \"sequence_id\": null,\n" + + " \"etag\": null,\n" + + " \"name\": \"All Files\"\n" + + " }\n" + + " ]\n" + + " },\n" + + " \"created_by\": {\n" + + " \"type\": \"user\",\n" + + " \"id\": \"17738362\",\n" + + " \"name\": \"sean rose\",\n" + + " \"login\": \"sean@box.com\"\n" + + " },\n" + + " \"modified_by\": {\n" + + " \"type\": \"user\",\n" + + " \"id\": \"17738362\",\n" + + " \"name\": \"sean rose\",\n" + + " \"login\": \"sean@box.com\"\n" + + " },\n" + + " \"owned_by\": {\n" + + " \"type\": \"user\",\n" + + " \"id\": \"17738362\",\n" + + " \"name\": \"sean rose\",\n" + + " \"login\": \"sean@box.com\"\n" + + " },\n" + + " \"shared_link\": {\n" + + " \"url\": \"https://www.box.com/s/vspke7y05sb214wjokpk\",\n" + + " \"download_url\": null,\n" + + " \"vanity_url\": null,\n" + + " \"is_password_enabled\": false,\n" + + " \"unshared_at\": null,\n" + + " \"download_count\": 0,\n" + + " \"preview_count\": 0,\n" + + " \"access\": \"open\",\n" + + " \"permissions\": {\n" + + " \"can_download\": true,\n" + + " \"can_preview\": true\n" + + " }\n" + + " },\n" + + " \"folder_upload_email\": {\n" + + " \"access\": \"open\",\n" + + " \"email\": \"upload.Picture.k13sdz1@u.box.com\"\n" + + " },\n" + + " \"parent\": {\n" + + " \"type\": \"folder\",\n" + + " \"id\": \"0\",\n" + + " \"sequence_id\": null,\n" + + " \"etag\": null,\n" + + " \"name\": \"All Files\"\n" + + " },\n" + + " \"item_status\": \"active\"\n" + + "}"); + BoxAPIConnection api = new BoxAPIConnection(""); + api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeJSONResponse)); + BoxUser user = new BoxUser(api, id); + BoxFolder.Info folder = user.moveFolderToUser("0"); + Assert.assertEquals(id, folder.getID()); + Assert.assertEquals(sequenceID, folder.getSequenceID()); + Assert.assertEquals(etag, folder.getEtag()); + Assert.assertEquals(name, folder.getName()); + Assert.assertEquals(createdAt, folder.getCreatedAt()); + Assert.assertEquals(modifiedAt, folder.getModifiedAt()); + Assert.assertEquals(description, folder.getDescription()); + Assert.assertEquals(size, folder.getSize()); + Assert.assertEquals(pathID, folder.getPathCollection().get(0).getID()); + Assert.assertEquals(pathSequenceID, folder.getPathCollection().get(0).getSequenceID()); + Assert.assertEquals(pathEtag, folder.getPathCollection().get(0).getEtag()); + Assert.assertEquals(pathName, folder.getPathCollection().get(0).getName()); + Assert.assertEquals(createdByID, folder.getCreatedBy().getID()); + Assert.assertEquals(createdByName, folder.getCreatedBy().getName()); + Assert.assertEquals(createdByLogin, folder.getCreatedBy().getLogin()); + Assert.assertEquals(modifiedByID, folder.getModifiedBy().getID()); + Assert.assertEquals(modifiedByName, folder.getModifiedBy().getName()); + Assert.assertEquals(modifiedByLogin, folder.getModifiedBy().getLogin()); + Assert.assertEquals(ownedByID, folder.getOwnedBy().getID()); + Assert.assertEquals(ownedByName, folder.getOwnedBy().getName()); + Assert.assertEquals(ownedByLogin, folder.getOwnedBy().getLogin()); + Assert.assertEquals(url, folder.getSharedLink().getURL()); + Assert.assertEquals(downloadURL, folder.getSharedLink().getDownloadURL()); + Assert.assertEquals(vanityUrl, folder.getSharedLink().getVanityURL()); + Assert.assertEquals(isPasswordEnabled, folder.getSharedLink().getIsPasswordEnabled()); + Assert.assertEquals(unsharedAt, folder.getSharedLink().getUnsharedDate()); + Assert.assertEquals(downloadCount, folder.getSharedLink().getDownloadCount()); + Assert.assertEquals(previewCount, folder.getSharedLink().getPreviewCount()); + Assert.assertEquals(access, folder.getSharedLink().getAccess()); + Assert.assertEquals(canDownload, folder.getSharedLink().getPermissions().getCanDownload()); + Assert.assertEquals(canPreview, folder.getSharedLink().getPermissions().getCanPreview()); + Assert.assertEquals(folderUploadEmailAccess, folder.getUploadEmail().getAccess()); + Assert.assertEquals(folderUploadEmail, folder.getUploadEmail().getEmail()); + Assert.assertEquals(parentID, folder.getParent().getID()); + Assert.assertEquals(parentSequenceID, folder.getParent().getSequenceID()); + Assert.assertEquals(parentEtag, folder.getParent().getEtag()); + Assert.assertEquals(parentName, folder.getParent().getName()); + Assert.assertEquals(itemStatus, folder.getItemStatus()); + } + @Test @Category(IntegrationTest.class) public void getCurrentUserInfoIsCorrect() throws InterruptedException {