Last active
October 23, 2020 11:21
-
-
Save swapnilshrikhande/ad98cc9845a6fb013b28c19a17e107f2 to your computer and use it in GitHub Desktop.
Example to create salesforce workspace folders programmatically.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@testSetup | |
private static void createTestData() { | |
ContentWorkspace testWorkspace = new ContentWorkspace(Name='TEST CLASS', DeveloperName='TEST_CLASS'); | |
insert testWorkspace; | |
} | |
@isTest | |
private static void testGetFilesList(){ | |
ContentWorkspace testWorkspace = [Select Id from ContentWorkspace where Name = 'TEST CLASS']; | |
ContentFolder workspaceFolder = [Select Id from ContentFolder where Name =: testWorkspace.Id]; | |
ContentFolder testFolderRecord = new ContentFolder(Name='TEST FOLDER', ParentContentFolderId=workspaceFolder.Id); | |
insert testFolderRecord; | |
List<ContentVersion> contentVersions = new List<ContentVersion>(); | |
for(Integer i = 1; i <= 12; i++) { | |
String fileExtension = ''; | |
Switch on i { | |
when 1 { | |
fileExtension='csv'; | |
} | |
when 2 { | |
fileExtension='jpg'; | |
} | |
when 3 { | |
fileExtension='gif'; | |
} | |
when 4 { | |
fileExtension='tiff'; | |
} | |
when 5 { | |
fileExtension='ppt'; | |
} | |
when 6 { | |
fileExtension='xls'; | |
} | |
when 7 { | |
fileExtension='xlsx'; | |
} | |
when 8 { | |
fileExtension='doc'; | |
} | |
when 9 { | |
fileExtension='docx'; | |
} | |
when 10 { | |
fileExtension='pdf'; | |
} | |
when 11 { | |
fileExtension='pptx'; | |
} | |
when else { | |
fileExtension='json'; | |
} | |
} | |
ContentVersion cv = new ContentVersion(); | |
cv.title = 'test content'+i; | |
cv.VersionData = Blob.valueOf('Unit Test Attachment Body'+i); | |
cv.PathOnClient = 'test content'+i+'.'+fileExtension; | |
contentVersions.add(cv); | |
} | |
insert contentVersions; | |
List<ContentDocumentLink> documentLinks = new List<ContentDocumentLink>(); | |
List<ContentFolderMember> folderMembers = new List<ContentFolderMember>(); | |
for(ContentVersion cv : [Select Id, ContentDocumentId from ContentVersion]) { | |
ContentDocumentLink cdl = new ContentDocumentLink(); | |
cdl.ContentDocumentId = cv.ContentDocumentId; | |
cdl.LinkedEntityId = testWorkspace.Id; | |
cdl.Sharetype = 'I'; | |
documentLinks.add(cdl); | |
} | |
insert documentLinks; | |
for(ContentFolderMember cfm : [Select Id, ChildRecordId, ParentContentFolderId | |
from ContentFolderMember | |
where ParentContentFolderId =: workspaceFolder.Id]) { | |
cfm.ParentContentFolderId = testFolderRecord.Id; | |
folderMembers.add(cfm); | |
} | |
update folderMembers; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment