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
Patrick C Mayer 91Patrick 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.
 

Best Answer chosen by Patrick C Mayer 91
jsnyderjsnyder
It's talking about another one, not this one.  You've posted TaskCompletionMailerTest.test() while it's talking about IdleCaseTriggerTest.test()

All Answers

jsnyderjsnyder
It's talking about another one, not this one.  You've posted TaskCompletionMailerTest.test() while it's talking about IdleCaseTriggerTest.test()
This was selected as the best answer
Patrick C Mayer 91Patrick C Mayer 91
damn i feel like a chump