function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Timmy AhluwaliaTimmy Ahluwalia 

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);
    }
ANUTEJANUTEJ (Salesforce Developers) 
Hi Timmy,

Are you facing any errors as such?

Thanks.