You need to sign in to do that
Don't have an account?
Øyvind Borgersen 10
Test class contentdocument
Hi,
I have a trigger for contentdocument which I'm unable to get a 100% cover on. Can someone help me complete this class to a 100%? Right now, it's around 69%. The part marked in bold is not covered in the test class.
This is the class:
trigger contentDocumentTrigger on contentdocument(before delete) {
List <Id> contentDocId = new List <Id> ();
List <Case> caseList = new List <Case> ();
List <String> caseRecType = new List <String> ();
Set <Id> contDocLinkedSet = new Set <Id> ();
//Add static records to list
caseRecType.add('Videogram');
//Check if trigger isdelete
if (trigger.IsDelete) {
for (ContentDocument con: Trigger.old) {
System.debug('Trigger old has started' + Trigger.old);
contentDocId.add(con.Id);
System.debug('This is id for contentdocument' + con.Id);
}
// Find LinkedEntityId in from contentdocumentlink
for (ContentDocumentLink cdl: [SELECT ContentDocumentId,
LinkedEntityId
FROM ContentDocumentLink
WHERE ContentDocumentId IN: contentDocId]) {
contDocLinkedSet.add(cdl.LinkedEntityId);
System.debug('Set contdoclinkedset' + contDocLinkedSet);
// Find case from ID saved in query above(contDocLinkedSet)
for (List < Case > cas: [SELECT Id,
(SELECT Id FROM ContentDocumentLinks LIMIT 1)
FROM case
WHERE Id IN:contDocLinkedSet
AND case.RecordType.DeveloperName IN:caseRecType
]) {
system.debug('Cas list' + cas);
// Update case with false in File_exist__c
for (Case cs: cas) {
if (cs != null) {
cs.File_exist__c = false;
caseList.add(cs);
}
// Create map to prevent duplicates in delete
map<id, case> casmap = new map<id, case>();
// Add all values from caselist to map
casmap.putall(caseList);
system.debug('casmap ' + casmap);
// Check if casmap has values
if(casmap.size()>0){
// Update casmap values and remove checkmark for fileexist field
UPDATE casmap.values();
}
}
}
}
}
}
Test class:
@isTest
private class contentDocumentLinkTriggerTest {
static testMethod void newcontentDocument() {
Case testCase = new Case();
testCase.Subject = 'Test Case';
insert testCase;
ContentVersion contentVersion = new ContentVersion(
Title = 'Penguins',
PathOnClient = 'Penguins.jpg',
VersionData = Blob.valueOf('Test Content'),
IsMajorVersion = true
);
insert contentVersion;
List < ContentDocument > documents = [SELECT Id, Title, LatestPublishedVersionId FROM ContentDocument];
//create ContentDocumentLink record
ContentDocumentLink cdl = New ContentDocumentLink();
cdl.LinkedEntityId = testCase.id;
cdl.ContentDocumentId = documents[0].Id;
cdl.shareType = 'V';
insert cdl;
If(testCase != null) {
testcase.File_exist__c = false;
update testcase;
delete documents;
}
}
}
I have a trigger for contentdocument which I'm unable to get a 100% cover on. Can someone help me complete this class to a 100%? Right now, it's around 69%. The part marked in bold is not covered in the test class.
This is the class:
trigger contentDocumentTrigger on contentdocument(before delete) {
List <Id> contentDocId = new List <Id> ();
List <Case> caseList = new List <Case> ();
List <String> caseRecType = new List <String> ();
Set <Id> contDocLinkedSet = new Set <Id> ();
//Add static records to list
caseRecType.add('Videogram');
//Check if trigger isdelete
if (trigger.IsDelete) {
for (ContentDocument con: Trigger.old) {
System.debug('Trigger old has started' + Trigger.old);
contentDocId.add(con.Id);
System.debug('This is id for contentdocument' + con.Id);
}
// Find LinkedEntityId in from contentdocumentlink
for (ContentDocumentLink cdl: [SELECT ContentDocumentId,
LinkedEntityId
FROM ContentDocumentLink
WHERE ContentDocumentId IN: contentDocId]) {
contDocLinkedSet.add(cdl.LinkedEntityId);
System.debug('Set contdoclinkedset' + contDocLinkedSet);
// Find case from ID saved in query above(contDocLinkedSet)
for (List < Case > cas: [SELECT Id,
(SELECT Id FROM ContentDocumentLinks LIMIT 1)
FROM case
WHERE Id IN:contDocLinkedSet
AND case.RecordType.DeveloperName IN:caseRecType
]) {
system.debug('Cas list' + cas);
// Update case with false in File_exist__c
for (Case cs: cas) {
if (cs != null) {
cs.File_exist__c = false;
caseList.add(cs);
}
// Create map to prevent duplicates in delete
map<id, case> casmap = new map<id, case>();
// Add all values from caselist to map
casmap.putall(caseList);
system.debug('casmap ' + casmap);
// Check if casmap has values
if(casmap.size()>0){
// Update casmap values and remove checkmark for fileexist field
UPDATE casmap.values();
}
}
}
}
}
}
Test class:
@isTest
private class contentDocumentLinkTriggerTest {
static testMethod void newcontentDocument() {
Case testCase = new Case();
testCase.Subject = 'Test Case';
insert testCase;
ContentVersion contentVersion = new ContentVersion(
Title = 'Penguins',
PathOnClient = 'Penguins.jpg',
VersionData = Blob.valueOf('Test Content'),
IsMajorVersion = true
);
insert contentVersion;
List < ContentDocument > documents = [SELECT Id, Title, LatestPublishedVersionId FROM ContentDocument];
//create ContentDocumentLink record
ContentDocumentLink cdl = New ContentDocumentLink();
cdl.LinkedEntityId = testCase.id;
cdl.ContentDocumentId = documents[0].Id;
cdl.shareType = 'V';
insert cdl;
If(testCase != null) {
testcase.File_exist__c = false;
update testcase;
delete documents;
}
}
}
Try the following test class, it may be helpful for you:
You did not add RecordType in Case creation that's why your code not covered.
I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.
Thanks and Regards,
Deepali Kulshrestha
All Answers
Try the following test class, it may be helpful for you:
You did not add RecordType in Case creation that's why your code not covered.
I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.
Thanks and Regards,
Deepali Kulshrestha
And that the test code doesn't have asserts.
Regards
Andrew