You need to sign in to do that
Don't have an account?

emailmessage
Hi, i having problem with the test class. Please advise
public static void updateFileAttachment(List<EmailMessage> newSObjects) {
Map<id, Integer> mapcdt = new Map<id, Integer>();
Set<Id> Ids = new Set<Id>();
for (EmailMessage em : newSObjects) {
Ids.add(em.ActivityId);
}system.debug(ids);
List<Task> tasks = new List<task>();
tasks=[SELECT ID,Has_Attachment__c,(SELECT ID FROM ContentDocumentLinks) FROM TASK WHERE Id iN :ids ];
system.debug('I AM HIT' + tasks);
List<Task> taskUpdated = new List<Task>();
if (tasks.size() > 0) {
for (Task td : tasks) {
if(!mapcdt.containskey(td.id)){
mapcdt.put(td.id, td.ContentDocumentLinks.size());
}
}
for (Task t : tasks) {
system.debug('I AM HIT' + Ids);
if (mapcdt.containskey(t.id)) {
Integer count = mapcdt.get(t.id);
system.debug(count);
if (count >= 0 && t.Has_Attachment__c == false) {
t.Has_Attachment__c = true;
system.debug('line 23' + t.has_attachment__c);
taskUpdated.add(t);
}
}
}
if(!taskUpdated.isEmpty()){
update taskUpdated;
}
}
}
@isTest
static void WithAttachment(){
Profile p = [
SELECT Id, Name
FROM Profile
WHERE UserType = 'Standard'
LIMIT 1
];
User u = new User();
u.firstname = 'Test';
u.lastname = 'Advisor';
u.email = 'test@test.com.test';
u.username = UserInfo.getOrganizationId() + 'test@test.ci.com';
u.profileid = p.Id;
u.Alias = 'testa';
u.LanguageLocaleKey = 'en_us';
u.TimeZoneSidKey = 'America/New_York';
u.IsActive = true;
u.LocaleSidKey = 'en_us';
u.EmailEncodingKey = 'ISO-8859-1';
insert u;
Task tasks = [SELECT id, Has_Attachment__c FROM Task LIMIT 1];
ContentVersion cv = [SELECT id FROM ContentVersion LIMIT 1];
Id doc = [SELECT ContentDocumentId FROM ContentVersion WHERE Id = :cv.Id]
.ContentDocumentId;
EmailMessage emails = new EmailMessage();
emails.FromAddress = u.email;
emails.status = '3';
emails.ToAddress = 'Test@ci.com';
emails.Subject = 'Email with Attachment';
emails.htmlBody = '<html><body><b>Hello</b></body></html>';
emails.IsClientManaged= true;
// emails.ContentDocumentIds =doc;
insert emails;
EmailMessageRelation emr = new EmailMessageRelation();
emr.emailMessageId = emails.id;
emr.relationId = u.id; // user id of the sender
emr.relationType = 'FromAddress';
insert emr;
EmailMessage em1 = [SELECT ID, HASATTACHMENT,ContentDocumentIds, ActivityId FROM EMAILMESSAGE];
// em1.ContentDocumentIds = doc;
// update em1;
system.debug(em1);
// ContentDocumentLink cdl1 = new ContentDocumentLink();
// cdl1.LinkedEntityId = tasks.Id;
// cdl1.ContentDocumentId = doc;
// cdl1.shareType = 'V';
// insert cdl1;
List<EmailMessage> lst = new List<EmailMessage>();
lst.add(emails);
Test.StartTest();
/* Messaging.EmailFileAttachment attachment = new Messaging.EmailFileAttachment();
attachment.setFileName('attachmentFilename.pdf');
attachment.setContentType('application/pdf');
attachment.setBody(Blob.valueOf('Test Body'));
Messaging.SingleEmailMessage emailss = new Messaging.SingleEmailMessage();
emailss.setToAddresses(new List<String>{'Test@ci.com'});
emailss.setSubject('test');
emailss.setPlainTextBody('test');
emailss.setFileAttachments(new Messaging.EmailFileAttachment[] { attachment });
Messaging.sendEmail( new Messaging.SingleEmailMessage[] { emailss } );
*/
EmailMessageTriggerHelper.updateFileAttachment(lst);
Test.stoptest();
List<EmailMessage> em = [SELECT ID, HASATTACHMENT,ContentDocumentIds, ActivityId FROM EMAILMESSAGE];
SYSTEM.debug(em);
Task t = [SELECT id , Has_attachment__c FROM Task];
// System.assertEquals(t.Has_attachment__c, true);
}
public static void updateFileAttachment(List<EmailMessage> newSObjects) {
Map<id, Integer> mapcdt = new Map<id, Integer>();
Set<Id> Ids = new Set<Id>();
for (EmailMessage em : newSObjects) {
Ids.add(em.ActivityId);
}system.debug(ids);
List<Task> tasks = new List<task>();
tasks=[SELECT ID,Has_Attachment__c,(SELECT ID FROM ContentDocumentLinks) FROM TASK WHERE Id iN :ids ];
system.debug('I AM HIT' + tasks);
List<Task> taskUpdated = new List<Task>();
if (tasks.size() > 0) {
for (Task td : tasks) {
if(!mapcdt.containskey(td.id)){
mapcdt.put(td.id, td.ContentDocumentLinks.size());
}
}
for (Task t : tasks) {
system.debug('I AM HIT' + Ids);
if (mapcdt.containskey(t.id)) {
Integer count = mapcdt.get(t.id);
system.debug(count);
if (count >= 0 && t.Has_Attachment__c == false) {
t.Has_Attachment__c = true;
system.debug('line 23' + t.has_attachment__c);
taskUpdated.add(t);
}
}
}
if(!taskUpdated.isEmpty()){
update taskUpdated;
}
}
}
@isTest
static void WithAttachment(){
Profile p = [
SELECT Id, Name
FROM Profile
WHERE UserType = 'Standard'
LIMIT 1
];
User u = new User();
u.firstname = 'Test';
u.lastname = 'Advisor';
u.email = 'test@test.com.test';
u.username = UserInfo.getOrganizationId() + 'test@test.ci.com';
u.profileid = p.Id;
u.Alias = 'testa';
u.LanguageLocaleKey = 'en_us';
u.TimeZoneSidKey = 'America/New_York';
u.IsActive = true;
u.LocaleSidKey = 'en_us';
u.EmailEncodingKey = 'ISO-8859-1';
insert u;
Task tasks = [SELECT id, Has_Attachment__c FROM Task LIMIT 1];
ContentVersion cv = [SELECT id FROM ContentVersion LIMIT 1];
Id doc = [SELECT ContentDocumentId FROM ContentVersion WHERE Id = :cv.Id]
.ContentDocumentId;
EmailMessage emails = new EmailMessage();
emails.FromAddress = u.email;
emails.status = '3';
emails.ToAddress = 'Test@ci.com';
emails.Subject = 'Email with Attachment';
emails.htmlBody = '<html><body><b>Hello</b></body></html>';
emails.IsClientManaged= true;
// emails.ContentDocumentIds =doc;
insert emails;
EmailMessageRelation emr = new EmailMessageRelation();
emr.emailMessageId = emails.id;
emr.relationId = u.id; // user id of the sender
emr.relationType = 'FromAddress';
insert emr;
EmailMessage em1 = [SELECT ID, HASATTACHMENT,ContentDocumentIds, ActivityId FROM EMAILMESSAGE];
// em1.ContentDocumentIds = doc;
// update em1;
system.debug(em1);
// ContentDocumentLink cdl1 = new ContentDocumentLink();
// cdl1.LinkedEntityId = tasks.Id;
// cdl1.ContentDocumentId = doc;
// cdl1.shareType = 'V';
// insert cdl1;
List<EmailMessage> lst = new List<EmailMessage>();
lst.add(emails);
Test.StartTest();
/* Messaging.EmailFileAttachment attachment = new Messaging.EmailFileAttachment();
attachment.setFileName('attachmentFilename.pdf');
attachment.setContentType('application/pdf');
attachment.setBody(Blob.valueOf('Test Body'));
Messaging.SingleEmailMessage emailss = new Messaging.SingleEmailMessage();
emailss.setToAddresses(new List<String>{'Test@ci.com'});
emailss.setSubject('test');
emailss.setPlainTextBody('test');
emailss.setFileAttachments(new Messaging.EmailFileAttachment[] { attachment });
Messaging.sendEmail( new Messaging.SingleEmailMessage[] { emailss } );
*/
EmailMessageTriggerHelper.updateFileAttachment(lst);
Test.stoptest();
List<EmailMessage> em = [SELECT ID, HASATTACHMENT,ContentDocumentIds, ActivityId FROM EMAILMESSAGE];
SYSTEM.debug(em);
Task t = [SELECT id , Has_attachment__c FROM Task];
// System.assertEquals(t.Has_attachment__c, true);
}
Are you facing any errors as such?
Thanks.