Advertisement
Guest User

Untitled

a guest
Jun 13th, 2019
442
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.85 KB | None | 0 0
  1. global class EmailHandler implements QuickAction.QuickActionDefaultsHandler {
  2. // Empty constructor
  3. global EmailHandler() {
  4. }
  5. // The main interface method
  6. global void onInitDefaults(QuickAction.QuickActionDefaults[] defaults) {
  7. System.debug(defaults);
  8. QuickAction.SendEmailQuickActionDefaults sendEmailDefaults = null;
  9. // Check if the quick action is the standard Case Feed send email action
  10. // and set sendEmailDefaults
  11. for (Integer j = 0; j < defaults.size(); j++) {
  12. sendEmailDefaults = (QuickAction.SendEmailQuickActionDefaults)defaults.get(j);
  13. System.debug('Email Defaults For Loop ' + j + ': ' + sendEmailDefaults);
  14. break;
  15. }
  16.  
  17. if(sendEmailDefaults != null) {
  18. //select the relevant case
  19. Case c = [SELECT CaseNumber, Source__c, CC_Team__c, Subject, OwnerId
  20. FROM Case WHERE Id=:sendEmailDefaults.getContextId()];
  21. System.debug('Case ID: ' + c.Id);
  22. //select the user that owns the above case
  23. User u = [SELECT FirstName, LastName FROM User WHERE Id=:c.OwnerId];
  24.  
  25. EmailMessage emailMessage = (EmailMessage)sendEmailDefaults.getTargetSObject();
  26.  
  27. //this will clear certain fields if using the centre console
  28. if (sendEmailDefaults.getActionName() == 'Case.CC_Send_Email') {
  29. emailMessage.ToAddress = '';
  30. emailMessage.CcAddress = '';
  31. }
  32. System.debug('To Address after clean: ' + emailMessage);
  33. }
  34. }
  35. }
  36.  
  37. @isTest
  38. private class EmailHandlerTest {
  39. static Case myCase {get;set;}
  40. static EmailMessage myMsg {get;set;}
  41.  
  42. static testmethod void EmailPublisherLoader_NoReplyToId() {
  43. Exception failureDuringExecution = null;
  44. init();
  45.  
  46. //create QuickActionDefaults
  47. List<Map<String, Object>> defaultSettingAsObject = new List<Map<String, Object>>
  48. {
  49. new Map<String, Object>
  50. {
  51. 'targetSObject' => new EmailMessage(),
  52. 'contextId' => myCase.Id,
  53. 'ToAddress' => myMsg.ToAddress,
  54. 'CCAddress' => myMsg.CcAddress,
  55. 'actionType' => 'Email',
  56. 'actionName' => 'Case.CC_Send_Email',
  57. 'fromAddressList' => new List<String> { '[email protected]' }
  58. }
  59. };
  60.  
  61. List<QuickAction.SendEmailQuickActionDefaults> defaultsSettings =
  62. (List<QuickAction.SendEmailQuickActionDefaults>)JSON.deserialize(JSON.serialize(defaultSettingAsObject), List<QuickAction.SendEmailQuickActionDefaults>.class);
  63.  
  64. Test.startTest();
  65. (new EmailPublisherLoader()).onInitDefaults(defaultsSettings);
  66. System.debug('defaultsSettings after: ' + defaultsSettings);
  67. Test.stopTest();
  68. //System.assertEquals(null, defaultsSettings.QuickActionDefaults.targetSObject.ToAddress);
  69. }
  70.  
  71. static void init(){
  72. myCase =
  73. new Case(
  74. Status='Unassigned',
  75. Priority = 'Medium',
  76. Origin = 'Email',
  77. RecordTypeId = '012800000007qIgAAI'
  78. );
  79. insert myCase;
  80.  
  81. myMsg =
  82. new EmailMessage(
  83. ToAddress = '[email protected]',
  84. CCAddress = '[email protected]',
  85. ParentId = myCase.Id
  86. );
  87. insert myMsg;
  88. }
  89. }
  90.  
  91. 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