From 47d7359371b252e03c81f36de839d5677514d412 Mon Sep 17 00:00:00 2001 From: Cary Cheng Date: Wed, 14 Feb 2018 15:17:35 -0800 Subject: [PATCH 1/4] fixes missing can_view_path property on collaboration object --- .../java/com/box/sdk/BoxCollaboration.java | 20 +++++++++- .../com/box/sdk/BoxCollaborationTest.java | 38 ++++++++++++++++++- 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/box/sdk/BoxCollaboration.java b/src/main/java/com/box/sdk/BoxCollaboration.java index cf1f64083..6b798ea1c 100644 --- a/src/main/java/com/box/sdk/BoxCollaboration.java +++ b/src/main/java/com/box/sdk/BoxCollaboration.java @@ -177,6 +177,7 @@ public class Info extends BoxResource.Info { private Date acknowledgedAt; private BoxFolder.Info item; private BoxFile.Info fileItem; + private Boolean canViewPath; /** * Constructs an empty Info object. @@ -234,6 +235,15 @@ public Date getExpiresAt() { return this.expiresAt; } + /** + * Gets a boolean indicator whether "view path collaboration" feature is enabled or not. + * When set to true this allows the invitee to see the entire parent path to the item. + * It is important to note that this does not grant privileges in any parent folder. + * + * @return the Boolean value indicating if "view path collaboration" is enabled or not + */ + public Boolean getCanViewPath() { return this.canViewPath; } + /** * Gets the status of the collaboration. * @@ -281,6 +291,11 @@ public void setRole(Role role) { this.addPendingChange("role", role.toJSONString()); } + public void setCanViewPath(Boolean canViewState) { + this.canViewPath = canViewState; + this.addPendingChange("can_view_path", canViewState.booleanValue()); + } + /** * Gets the time the collaboration's status was changed. * @@ -347,6 +362,9 @@ protected void parseJSONMember(JsonObject.Member member) { } else if (memberName.equals("acknowledged_at")) { this.acknowledgedAt = BoxDateFormat.parse(value.asString()); + } else if (memberName.equals("can_view_path")) { + this.canViewPath = value.asBoolean(); + } else if (memberName.equals("item")) { JsonObject folderJSON = value.asObject(); if (this.item == null) { @@ -510,7 +528,7 @@ String toJSONString() { * Used to retrieve all collaborations associated with the item. * * @param api BoxAPIConnection from the associated file. - * @param fileID FileID of the assocyaed file + * @param fileID FileID of the associated file * @param pageSize page size for server pages of the Iterable * @param fields the optional fields to retrieve. * @return An iterable of BoxCollaboration.Info instances associated with the item. diff --git a/src/test/java/com/box/sdk/BoxCollaborationTest.java b/src/test/java/com/box/sdk/BoxCollaborationTest.java index 6fdff34ab..0be94e2b0 100644 --- a/src/test/java/com/box/sdk/BoxCollaborationTest.java +++ b/src/test/java/com/box/sdk/BoxCollaborationTest.java @@ -3,6 +3,7 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; +import java.text.ParseException; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; @@ -12,6 +13,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; +import com.eclipsesource.json.JsonObject; +import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; @@ -136,7 +139,7 @@ public void singleFileCollabSucceeds() { @Category(IntegrationTest.class) public void acceptPendingCollaboration() { - BoxAPIConnection api = new BoxAPIConnection("U08DU2wyWgqHmCmSLGnYtja4iffxRbLO"); + BoxAPIConnection api = new BoxAPIConnection(TestConfig.getAccessToken()); Collection pendingCollabs = BoxCollaboration.getPendingCollaborations(api); for (BoxCollaboration.Info collabInfo : pendingCollabs) { @@ -145,4 +148,37 @@ public void acceptPendingCollaboration() { collabInfo.getResource().updateInfo(collabInfo); } } + + @Test + @Category(IntegrationTest.class) + public void testCanViewPathSucceeds() { + + final String collabID = "12345"; + final Boolean canViewPathOn = true; + final String collabRole = "previewer"; + + BoxAPIConnection api = new BoxAPIConnection(""); + api.setRequestInterceptor(new JSONRequestInterceptor() { + @Override + protected BoxAPIResponse onJSONRequest(BoxJSONRequest request, JsonObject json) { + Assert.assertEquals("https://api.box.com/2.0/collaborations/" + collabID, + request.getUrl().toString()); + Assert.assertEquals(canViewPathOn, json.get("can_view_path").asBoolean()); + Assert.assertEquals(collabRole, json.get("role").asString()); + + return new BoxJSONResponse() { + @Override + public String getJSON() { + return "{\"id\": \"0\"}"; + } + }; + } + }); + + BoxCollaboration collaboration = new BoxCollaboration(api, collabID); + BoxCollaboration.Info info = collaboration.new Info(); + info.setRole(BoxCollaboration.Role.PREVIEWER); + info.setCanViewPath(canViewPathOn); + collaboration.updateInfo(info); + } } From 32b97600cc5ac59c812a1a674fee570fd550e11f Mon Sep 17 00:00:00 2001 From: Cary Cheng Date: Wed, 14 Feb 2018 15:29:36 -0800 Subject: [PATCH 2/4] style fixes and removed unused libraries --- src/main/java/com/box/sdk/BoxCollaboration.java | 10 +++++++++- src/test/java/com/box/sdk/BoxCollaborationTest.java | 1 - 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/box/sdk/BoxCollaboration.java b/src/main/java/com/box/sdk/BoxCollaboration.java index 6b798ea1c..f55671605 100644 --- a/src/main/java/com/box/sdk/BoxCollaboration.java +++ b/src/main/java/com/box/sdk/BoxCollaboration.java @@ -242,7 +242,9 @@ public Date getExpiresAt() { * * @return the Boolean value indicating if "view path collaboration" is enabled or not */ - public Boolean getCanViewPath() { return this.canViewPath; } + public Boolean getCanViewPath() { + return this.canViewPath; + } /** * Gets the status of the collaboration. @@ -291,6 +293,12 @@ public void setRole(Role role) { this.addPendingChange("role", role.toJSONString()); } + /** + * Sets the permission for "view path collaboration" feature. When set to true this allows + * the invitee to to see the entire parent path to the item + * + * @param canViewState the boolean value indicating whether the invitee can see the parent folder. + */ public void setCanViewPath(Boolean canViewState) { this.canViewPath = canViewState; this.addPendingChange("can_view_path", canViewState.booleanValue()); diff --git a/src/test/java/com/box/sdk/BoxCollaborationTest.java b/src/test/java/com/box/sdk/BoxCollaborationTest.java index 0be94e2b0..cd4812f5c 100644 --- a/src/test/java/com/box/sdk/BoxCollaborationTest.java +++ b/src/test/java/com/box/sdk/BoxCollaborationTest.java @@ -3,7 +3,6 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; -import java.text.ParseException; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; From bec6dfd87eb7b2c4535e14e4602c1488493b8830 Mon Sep 17 00:00:00 2001 From: Cary Cheng Date: Wed, 14 Feb 2018 16:58:21 -0800 Subject: [PATCH 3/4] changes from Boolean object to boolean primitive and changed IntegrationTest tag to UnitTest tag --- src/main/java/com/box/sdk/BoxCollaboration.java | 2 +- src/test/java/com/box/sdk/BoxCollaborationTest.java | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/box/sdk/BoxCollaboration.java b/src/main/java/com/box/sdk/BoxCollaboration.java index f55671605..1d8c523ca 100644 --- a/src/main/java/com/box/sdk/BoxCollaboration.java +++ b/src/main/java/com/box/sdk/BoxCollaboration.java @@ -242,7 +242,7 @@ public Date getExpiresAt() { * * @return the Boolean value indicating if "view path collaboration" is enabled or not */ - public Boolean getCanViewPath() { + public boolean getCanViewPath() { return this.canViewPath; } diff --git a/src/test/java/com/box/sdk/BoxCollaborationTest.java b/src/test/java/com/box/sdk/BoxCollaborationTest.java index cd4812f5c..221d820ad 100644 --- a/src/test/java/com/box/sdk/BoxCollaborationTest.java +++ b/src/test/java/com/box/sdk/BoxCollaborationTest.java @@ -16,6 +16,7 @@ import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; +import sun.tools.jconsole.Plotter; public class BoxCollaborationTest { @@ -149,11 +150,11 @@ public void acceptPendingCollaboration() { } @Test - @Category(IntegrationTest.class) - public void testCanViewPathSucceeds() { + @Category(UnitTest.class) + public void testCanViewPathSendsCorrectJson() { final String collabID = "12345"; - final Boolean canViewPathOn = true; + final boolean canViewPathOn = true; final String collabRole = "previewer"; BoxAPIConnection api = new BoxAPIConnection(""); From de5ab25f8162eefa045033bd1c12173dcb24a86f Mon Sep 17 00:00:00 2001 From: Cary Cheng Date: Wed, 14 Feb 2018 17:03:30 -0800 Subject: [PATCH 4/4] fixed from feedback --- src/main/java/com/box/sdk/BoxCollaboration.java | 6 +++--- src/test/java/com/box/sdk/BoxCollaborationTest.java | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/box/sdk/BoxCollaboration.java b/src/main/java/com/box/sdk/BoxCollaboration.java index 1d8c523ca..b0aea2c88 100644 --- a/src/main/java/com/box/sdk/BoxCollaboration.java +++ b/src/main/java/com/box/sdk/BoxCollaboration.java @@ -177,7 +177,7 @@ public class Info extends BoxResource.Info { private Date acknowledgedAt; private BoxFolder.Info item; private BoxFile.Info fileItem; - private Boolean canViewPath; + private boolean canViewPath; /** * Constructs an empty Info object. @@ -299,9 +299,9 @@ public void setRole(Role role) { * * @param canViewState the boolean value indicating whether the invitee can see the parent folder. */ - public void setCanViewPath(Boolean canViewState) { + public void setCanViewPath(boolean canViewState) { this.canViewPath = canViewState; - this.addPendingChange("can_view_path", canViewState.booleanValue()); + this.addPendingChange("can_view_path", canViewState); } /** diff --git a/src/test/java/com/box/sdk/BoxCollaborationTest.java b/src/test/java/com/box/sdk/BoxCollaborationTest.java index 221d820ad..8da437d05 100644 --- a/src/test/java/com/box/sdk/BoxCollaborationTest.java +++ b/src/test/java/com/box/sdk/BoxCollaborationTest.java @@ -16,8 +16,6 @@ import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; -import sun.tools.jconsole.Plotter; - public class BoxCollaborationTest { @Test