You need to sign in to do that
Don't have an account?
Patrick C Mayer 91
Deploy INVALID_CROSS_REFERENCE_KEY error
trigger TaskCompletionMailerTrigger on Task (after update) { Task[] tasks = trigger.new; for (Task t : tasks) { if (t.Status.equals('Completed') && !t.OwnerId.equals(UserInfo.getUserId())) { User[] user = [SELECT Id, Email FROM User WHERE Id =: (t.OwnerId)]; String userEmail; if (user.size() > 0) { userEmail = user[0].Email; } else { System.debug('User Lookup Failed on Task OwnerId: ' + t.OwnerId); } Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); String[] toAddresses = new String[] { userEmail }; mail.setToAddresses(toAddresses); mail.setSubject('Automated Task Completion email: ' + t.Subject); String rel = ''; Account[] acct = [SELECT Id, Name FROM Account WHERE Id =: t.AccountId]; if (acct.size() > 0) { rel = 'Account - ' + acct[0].Name; } String body = 'Task: ' + t.Subject + '\nCompleted by ' + UserInfo.getName() + '\nRelated To: ' + rel + '\nComments: ' + t.Description; mail.setPlainTextBody(body); Messaging.sendEmail(new Messaging.SingleEMailMessage[]{mail}); } } }
@isTest (seeAllData=true) public class TaskCompletionMailerTest{ static testMethod void test() { Account acct = new Account(Name = 'Test Account'); insert acct; User creator = new User(alias = 'crtr', email='patrick@eatstreet.com', emailencodingkey='UTF-8', lastname='Testing', languagelocalekey='en_US', localesidkey='en_US', profileid = UserInfo.getProfileId(), timezonesidkey='America/Los_Angeles', username='creator@testorg.com'); User completer = new User(alias = 'cmpltr', email='completer@test.com', emailencodingkey='UTF-8', lastname='Testing', languagelocalekey='en_US', localesidkey='en_US', profileid = UserInfo.getProfileId(), timezonesidkey='America/Los_Angeles', username='completer@testorg.com'); insert creator; insert completer; Task t = new Task(Ownerid = creator.Id, Subject = 'Test', ActivityDate = Date.today(), WhatId = acct.Id, Status = 'Pending', Priority = 'Low', Description = 'Test'); insert t; Integer emailbefore = Limits.getEmailInvocations(); System.runAs(completer) { t.Status = 'Completed'; update t; } System.assertNotEquals(emailbefore,Limits.getEmailInvocations(),'should have decreased'); emailbefore = Limits.getEmailInvocations(); System.runAs(creator) { t.Status = 'Completed'; update t; } System.assertEquals(emailbefore,Limits.getEmailInvocations(),'should remained constant'); } }
I am having touble deploying this. It keeps returning "Failure Message: "System.DmlException: Insert failed. First exception on row 0; first error: INVALID_CROSS_REFERENCE_KEY, invalid cross reference id: []", Failure Stack Trace: "Class.IdleCaseTriggerTest.test: line 16, column 1""
I don't even have any code on line 16.
All Answers