private void runUpdateFolderTest(Session session, Folder testFolder) { Folder folder = createFolder(session, testFolder, "folder1"); try { if (folder.getChangeToken() == null) { addResult(createResult(SKIPPED, "Repository does not provide change tokens for folders. Test skipped!")); return; } if (!folder.getAllowableActions().getAllowableActions().contains(Action.CAN_UPDATE_PROPERTIES)) { addResult(createResult(SKIPPED, "Folder name can't be changed. Test skipped!")); return; } // the first update should succeed Map<String, Object> properties2 = new HashMap<String, Object>(); properties2.put(PropertyIds.NAME, "folder2"); folder.updateProperties(properties2, false); try { Map<String, Object> properties3 = new HashMap<String, Object>(); properties3.put(PropertyIds.NAME, "folder3"); folder.updateProperties(properties3, false); addResult(createResult(FAILURE, "Updating properties a second time with the same change token " + "should result in an UpdateConflict exception!")); } catch (CmisUpdateConflictException e) { // expected exception } } finally { deleteObject(folder); } }
private void runAddChildFolderTest(Session session, Folder testFolder) { Folder folder = createFolder(session, testFolder, "folder1"); try { if (folder.getChangeToken() == null) { addResult(createResult(SKIPPED, "Repository does not provide change tokens for folders. Test skipped!")); return; } if (!folder.getAllowableActions().getAllowableActions().contains(Action.CAN_UPDATE_PROPERTIES)) { addResult(createResult(SKIPPED, "Folder name can't be changed. Test skipped!")); return; } createDocument(session, folder, "doc1", "content"); try { Map<String, Object> properties2 = new HashMap<String, Object>(); properties2.put(PropertyIds.NAME, "folder2"); folder.updateProperties(properties2, false); } catch (CmisUpdateConflictException e) { addResult(createResult(WARNING, "Adding a child to a folder changes the change token of the folder. " + "CMIS clients might not expect that.")); } } finally { deleteObject(folder); } } }