• enahij
  • NEWBIE
  • 0 Points
  • Member since 2022

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 0
    Replies
Hello, can you please help me a test class for this class.
I tried to write one but I always have 0% coverage.
Any help or suggestions please.

public without sharing class SendEmaile { 
    public class Params { 
        @InvocableVariable 
        public String template; 
        @InvocableVariable
        public String orgWideEmailAddress; 
        @InvocableVariable 
        public String toAddress; 
        @InvocableVariable 
        public Id contactId; 
        @InvocableVariable
        public Id recordId; 
        @InvocableVariable
        public Id relatedId; 
        @InvocableVariable
        public Boolean sendAttachment; 
    } 

    @InvocableMethod 
    public static void sendEmail(List<Params> requests) { 
        try { 
            Params request = (requests.size() == 1) ? requests[0] : null; 
            if (request != null) { 
                // Get Content Document Ids 
                Set<String> contentDocumentIds = new Set<String>(); 
                List<ContentDocumentLink> cdls = [SELECT ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId = :request.recordId]; 
                for (ContentDocumentLink doc : cdls) { 
                    contentDocumentIds.add(doc.ContentDocumentId); 
                } 
                EK_Parameter__mdt noReplyEmail = EK_Parameter__mdt.getInstance('Facture');
               // Get Email Template 
                Id templateId = [SELECT Id FROM EmailTemplate WHERE DeveloperName = 'Interv'].Id; 
                // New email message 
                Messaging.SingleEmailMessage mail = Messaging.renderStoredEmailTemplate(templateId, null, request.relatedId); 
                // Set OrgWideEmailAddress Id 
                Id orgWideEmailAddressId = [SELECT Id FROM OrgWideEmailAddress WHERE Address =: noReplyEmail.Value__c LIMIT 1].Id; 
                if (orgWideEmailAddressId != null) { 
                    mail.setOrgWideEmailAddressId(orgWideEmailAddressId); 
                } 
                // Set Email Properties 
                mail.toAddresses = new String[]{request.toAddress}; 
                mail.setTargetObjectId(request.contactId); 
                mail.setWhatId(request.relatedId); 
                mail.setTreatTargetObjectAsRecipient(false); 
                mail.setTreatBodiesAsTemplate(false); 
                // Set Email Attachments 
                if (request.sendAttachment == true) { 
                    List<ContentVersion> contentVersionFile = [SELECT VersionData, Title, FileType FROM ContentVersion WHERE ContentDocumentId IN :contentDocumentIds AND IsLatest = true]; 
                    List<Messaging.EmailFileAttachment> emailFileAttachments = new List<Messaging.EmailFileAttachment>(); 
                    for (ContentVersion cv : contentVersionFile) { 
                        Messaging.EmailFileAttachment efa = new Messaging.EmailFileAttachment(); 
                        efa.setFileName(cv.Title + '.' + cv.FileType); 
                        efa.setBody(cv.VersionData); 
                        emailFileAttachments.add(efa); 
                    } 
                    if (!emailFileAttachments.isEmpty()) { 
                        mail.setFileAttachments(emailFileAttachments); 
                    } 
                } 
                // Send Email 
                Messaging.SingleEmailMessage[] messages = new List<Messaging.SingleEmailMessage>{mail}; 
                if (!Test.isRunningTest()) { 
                    Messaging.SendEmailResult[] results = Messaging.sendEmail(messages); 
                    if (results[0].success) { 
                        System.debug('The email was sent successfully.'); 
                    } else { 
                        System.debug('The email failed to send: ' + results[0].errors[0].message); 
                    } 
                } 
            } 
        } catch (Exception e) { 
            throw new SendEmailException(e.getMessage(), e); 
        } 
    } 
    /** 
     * EXCEPTIONS 
     */ 
    public class SendEmailException extends Exception { } 
}
  • April 29, 2022
  • Like
  • 0