|
3 | 3 | import static com.box.sdk.BoxApiProvider.jwtApiForServiceAccount; |
4 | 4 | import static com.box.sdk.CleanupTools.deleteFile; |
5 | 5 | import static com.box.sdk.CleanupTools.deleteFolder; |
| 6 | +import static com.box.sdk.CleanupTools.deleteUser; |
6 | 7 | import static com.box.sdk.Retry.retry; |
7 | 8 | import static com.box.sdk.UniqueTestFolder.getUniqueFolder; |
| 9 | +import static com.box.sdk.UniqueTestFolder.randomizeName; |
8 | 10 | import static com.box.sdk.UniqueTestFolder.removeUniqueFolder; |
9 | 11 | import static com.box.sdk.UniqueTestFolder.setupUniqeFolder; |
10 | 12 | import static com.box.sdk.UniqueTestFolder.uploadSampleFileToUniqueFolder; |
11 | 13 | import static java.time.ZoneOffset.UTC; |
12 | 14 | import static org.junit.Assert.assertEquals; |
| 15 | +import static org.junit.Assert.assertNotEquals; |
13 | 16 | import static org.junit.Assert.assertNotNull; |
14 | 17 | import static org.junit.Assert.assertTrue; |
15 | 18 |
|
16 | 19 | import java.time.Instant; |
17 | 20 | import java.time.LocalDateTime; |
18 | 21 | import java.util.ArrayList; |
| 22 | +import java.util.Collections; |
19 | 23 | import java.util.Date; |
20 | 24 | import java.util.List; |
21 | 25 | import java.util.concurrent.atomic.AtomicReference; |
@@ -146,5 +150,79 @@ public void createListAndCancelSignRequest() throws InterruptedException { |
146 | 150 | deleteFolder(signedFileFolder); |
147 | 151 | } |
148 | 152 | } |
| 153 | + |
| 154 | + @Test |
| 155 | + public void createignRequestForGroup() throws InterruptedException { |
| 156 | + // Test Setup |
| 157 | + BoxAPIConnection api = jwtApiForServiceAccount(); |
| 158 | + BoxFolder uniqueFolder = getUniqueFolder(api); |
| 159 | + BoxFile file = null; |
| 160 | + BoxFolder signedFileFolder = null; |
| 161 | + BoxUser groupMemberUser1 = null; |
| 162 | + BoxUser groupMemberUser2 = null; |
| 163 | + String userName1 = randomizeName("login1") + "@boz.com"; |
| 164 | + String userName2 = randomizeName("login2") + "@boz.com"; |
| 165 | + AtomicReference<BoxSignRequest.Info> signRequestInfoCancel = new AtomicReference<>(); |
| 166 | + String signerGroupName = randomizeName("GroupName"); |
| 167 | + |
| 168 | + try { |
| 169 | + groupMemberUser1 = BoxUser.createEnterpriseUser(api, userName1, "userName1").getResource(); |
| 170 | + groupMemberUser2 = BoxUser.createEnterpriseUser(api, userName2, "userName2").getResource(); |
| 171 | + |
| 172 | + file = uploadSampleFileToUniqueFolder(api, "file_to_sign.pdf"); |
| 173 | + List<BoxSignRequestFile> files = Collections.singletonList(new BoxSignRequestFile(file.getID())); |
| 174 | + |
| 175 | + List<BoxSignRequestSigner> signers = new ArrayList<>(); |
| 176 | + signers.add(new BoxSignRequestSigner(userName1).setSignerGroupId(signerGroupName)); |
| 177 | + signers.add(new BoxSignRequestSigner(userName2).setSignerGroupId(signerGroupName)); |
| 178 | + |
| 179 | + signedFileFolder = uniqueFolder.createFolder("Folder - signRequestGroupIntegrationTest").getResource(); |
| 180 | + |
| 181 | + // Do Create |
| 182 | + BoxSignRequest.Info signRequestInfoCreate = BoxSignRequest |
| 183 | + .createSignRequest(api, files, signers, signedFileFolder.getID()); |
| 184 | + |
| 185 | + String signRequestIdCreate = signRequestInfoCreate.getID(); |
| 186 | + List<BoxSignRequestSigner> createdSigners = signRequestInfoCreate.getSigners(); |
| 187 | + BoxSignRequestSigner createdSigner1 = createdSigners.get(1); |
| 188 | + BoxSignRequestSigner createdSigner2 = createdSigners.get(2); |
| 189 | + |
| 190 | + // Test Create |
| 191 | + assertNotNull(signRequestInfoCreate.getID()); |
| 192 | + assertEquals(createdSigners.size(), 3); |
| 193 | + assertEquals(createdSigner1.getSignerGroupId(), createdSigner2.getSignerGroupId()); |
| 194 | + assertNotEquals(createdSigner1.getSignerGroupId(), signerGroupName); |
| 195 | + |
| 196 | + // Do Get by ID |
| 197 | + BoxSignRequest signRequestGetByID = new BoxSignRequest(api, signRequestIdCreate); |
| 198 | + |
| 199 | + List<BoxSignRequestSigner> signersGet = signRequestGetByID.getInfo().getSigners(); |
| 200 | + BoxSignRequestSigner signer1Get = signersGet.get(1); |
| 201 | + BoxSignRequestSigner signer2Get = createdSigners.get(2); |
| 202 | + |
| 203 | + // Test Get |
| 204 | + assertNotNull(signRequestInfoCreate.getID()); |
| 205 | + assertEquals(signersGet.size(), 3); |
| 206 | + assertEquals(signer1Get.getSignerGroupId(), signer2Get.getSignerGroupId()); |
| 207 | + assertEquals(signer1Get.getSignerGroupId(), createdSigner1.getSignerGroupId()); |
| 208 | + |
| 209 | + retry(() -> signRequestInfoCancel.set(signRequestGetByID.cancel()), 5, 1000); |
| 210 | + |
| 211 | + } finally { |
| 212 | + deleteUser(groupMemberUser1); |
| 213 | + deleteUser(groupMemberUser2); |
| 214 | + |
| 215 | + if (signRequestInfoCancel.get() != null) { |
| 216 | + // Clean up |
| 217 | + List<BoxFile.Info> signRequestFiles = signRequestInfoCancel.get().getSignFiles().getFiles(); |
| 218 | + for (BoxFile.Info signRequestFile : signRequestFiles) { |
| 219 | + BoxFile fileToDelete = new BoxFile(api, signRequestFile.getID()); |
| 220 | + fileToDelete.delete(); |
| 221 | + } |
| 222 | + } |
| 223 | + deleteFile(file); |
| 224 | + deleteFolder(signedFileFolder); |
| 225 | + } |
| 226 | + } |
149 | 227 | } |
150 | 228 |
|
0 commit comments