Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- global class EmailHandler implements QuickAction.QuickActionDefaultsHandler {
- // Empty constructor
- global EmailHandler() {
- }
- // The main interface method
- global void onInitDefaults(QuickAction.QuickActionDefaults[] defaults) {
- System.debug(defaults);
- QuickAction.SendEmailQuickActionDefaults sendEmailDefaults = null;
- // Check if the quick action is the standard Case Feed send email action
- // and set sendEmailDefaults
- for (Integer j = 0; j < defaults.size(); j++) {
- sendEmailDefaults = (QuickAction.SendEmailQuickActionDefaults)defaults.get(j);
- System.debug('Email Defaults For Loop ' + j + ': ' + sendEmailDefaults);
- break;
- }
- if(sendEmailDefaults != null) {
- //select the relevant case
- Case c = [SELECT CaseNumber, Source__c, CC_Team__c, Subject, OwnerId
- FROM Case WHERE Id=:sendEmailDefaults.getContextId()];
- System.debug('Case ID: ' + c.Id);
- //select the user that owns the above case
- User u = [SELECT FirstName, LastName FROM User WHERE Id=:c.OwnerId];
- EmailMessage emailMessage = (EmailMessage)sendEmailDefaults.getTargetSObject();
- //this will clear certain fields if using the centre console
- if (sendEmailDefaults.getActionName() == 'Case.CC_Send_Email') {
- emailMessage.ToAddress = '';
- emailMessage.CcAddress = '';
- }
- System.debug('To Address after clean: ' + emailMessage);
- }
- }
- }
- @isTest
- private class EmailHandlerTest {
- static Case myCase {get;set;}
- static EmailMessage myMsg {get;set;}
- static testmethod void EmailPublisherLoader_NoReplyToId() {
- Exception failureDuringExecution = null;
- init();
- //create QuickActionDefaults
- List<Map<String, Object>> defaultSettingAsObject = new List<Map<String, Object>>
- {
- new Map<String, Object>
- {
- 'targetSObject' => new EmailMessage(),
- 'contextId' => myCase.Id,
- 'ToAddress' => myMsg.ToAddress,
- 'CCAddress' => myMsg.CcAddress,
- 'actionType' => 'Email',
- 'actionName' => 'Case.CC_Send_Email',
- 'fromAddressList' => new List<String> { '[email protected]' }
- }
- };
- List<QuickAction.SendEmailQuickActionDefaults> defaultsSettings =
- (List<QuickAction.SendEmailQuickActionDefaults>)JSON.deserialize(JSON.serialize(defaultSettingAsObject), List<QuickAction.SendEmailQuickActionDefaults>.class);
- Test.startTest();
- (new EmailPublisherLoader()).onInitDefaults(defaultsSettings);
- System.debug('defaultsSettings after: ' + defaultsSettings);
- Test.stopTest();
- //System.assertEquals(null, defaultsSettings.QuickActionDefaults.targetSObject.ToAddress);
- }
- static void init(){
- myCase =
- new Case(
- Status='Unassigned',
- Priority = 'Medium',
- Origin = 'Email',
- RecordTypeId = '012800000007qIgAAI'
- );
- insert myCase;
- myMsg =
- new EmailMessage(
- ToAddress = '[email protected]',
- CCAddress = '[email protected]',
- ParentId = myCase.Id
- );
- insert myMsg;
- }
- }
- 10:27:36:053 USER_DEBUG [35]|DEBUG|defaultsSettings after: (SendEmailQuickActionDefaults:[QuickActionDefaults.actionName=Case.CC_Send_Email, QuickActionDefaults.actionType=Email, QuickActionDefaults.contextId=50023000001yVHlAAM, QuickActionDefaults.targetSObject=EmailMessage:{ToAddress=}, emailTemplateId=null, fromAddressList=(), ignoreTemplateSubject=null, insertTemplateBody=null, replyToId=null])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement