diff --git a/src/intTest/java/com/box/sdk/BoxFileIT.java b/src/intTest/java/com/box/sdk/BoxFileIT.java index 1a5a4ae7f..d2b35e595 100644 --- a/src/intTest/java/com/box/sdk/BoxFileIT.java +++ b/src/intTest/java/com/box/sdk/BoxFileIT.java @@ -943,6 +943,21 @@ public void setsVanityNameOnASharedLink() { } } + @Test + public void createDefaultSharedLink() { + BoxAPIConnection api = jwtApiForServiceAccount(); + BoxFile uploadedFile = null; + try { + uploadedFile = uploadFileToUniqueFolderWithSomeContent(api, "file_to_share.txt"); + BoxSharedLinkRequest request = new BoxSharedLinkRequest(); + uploadedFile.createSharedLink(request); + BoxSharedLink sharedLink = uploadedFile.getInfo().getSharedLink(); + assertThat(sharedLink, is(notNullValue())); + } finally { + deleteFile(uploadedFile); + } + } + @Test public void setsAndRetrievesDispositionAt() throws ParseException { BoxAPIConnection api = jwtApiForServiceAccount(); diff --git a/src/main/java/com/box/sdk/BoxJSONObject.java b/src/main/java/com/box/sdk/BoxJSONObject.java index 603e2f5fb..6b7caf6db 100644 --- a/src/main/java/com/box/sdk/BoxJSONObject.java +++ b/src/main/java/com/box/sdk/BoxJSONObject.java @@ -213,7 +213,7 @@ void update(JsonObject jsonObject) { * * @return a JsonObject containing the pending changes. */ - private JsonObject getPendingJSONObject() { + protected JsonObject getPendingJSONObject() { for (Map.Entry entry : this.children.entrySet()) { BoxJSONObject child = entry.getValue(); JsonObject jsonObject = child.getPendingJSONObject(); diff --git a/src/main/java/com/box/sdk/BoxSharedLink.java b/src/main/java/com/box/sdk/BoxSharedLink.java index 9b0bb8fa9..c16bff6cb 100644 --- a/src/main/java/com/box/sdk/BoxSharedLink.java +++ b/src/main/java/com/box/sdk/BoxSharedLink.java @@ -231,6 +231,15 @@ private Access parseAccessValue(JsonValue value) { return Access.valueOf(accessString); } + @Override + protected JsonObject getPendingJSONObject() { + JsonObject result = super.getPendingJSONObject(); + if (result == null) { + result = new JsonObject(); + } + return result; + } + @Override void parseJSONMember(JsonObject.Member member) { JsonValue value = member.getValue(); diff --git a/src/test/java/com/box/sdk/BoxFileTest.java b/src/test/java/com/box/sdk/BoxFileTest.java index 677dec3f4..b44d07410 100644 --- a/src/test/java/com/box/sdk/BoxFileTest.java +++ b/src/test/java/com/box/sdk/BoxFileTest.java @@ -1033,6 +1033,30 @@ public String getJSON() { file.createSharedLink(sharedLink); } + @Test + public void createDefaultSharedLink() { + //given + BoxAPIConnection api = new BoxAPIConnectionForTests(""); + api.setRequestInterceptor( + request -> { + //then + String requestString = request.bodyToString(); + assertThat(requestString, is("{\"shared_link\":{}}")); + return new BoxJSONResponse() { + @Override + public String getJSON() { + return "{}"; + } + }; + } + ); + BoxSharedLinkRequest sharedLink = new BoxSharedLinkRequest(); + + //when + BoxFile file = new BoxFile(api, "12345"); + file.createSharedLink(sharedLink); + } + @Test public void setMetadataWorksWhenNoChangesSubmittedAndConflictOccured() { // given diff --git a/src/test/java/com/box/sdk/BoxSharedLinkTest.java b/src/test/java/com/box/sdk/BoxSharedLinkTest.java index 4754b4768..aeb249af5 100644 --- a/src/test/java/com/box/sdk/BoxSharedLinkTest.java +++ b/src/test/java/com/box/sdk/BoxSharedLinkTest.java @@ -1,7 +1,6 @@ package com.box.sdk; import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertThrows; @@ -43,7 +42,7 @@ public void doNotStorePendingChangeWhenPermissionsNotChanged() { link.setPermissions(this.permissions(true, false)); assertThat(link.getPermissions(), is(permissions(true, false))); - assertThat(link.getPendingChangesAsJsonObject(), is(nullValue())); + assertThat(link.getPendingChangesAsJsonObject().toString(), is("{}")); } @Test