Below is my apex class:
public void submitForApproval(List<Account> acc)
{
try{
for(SObject ac :acc) {
if((ac.Account_Record_Type_Name__c == 'A' || ac.Account_Record_Type_Name__c == 'B') && ac.Status__c == 'New'){
// Create an approval request for the Account
Approval.ProcessSubmitRequest submitRequest = new Approval.ProcessSubmitRequest();
submitRequest.setComments('Submitting request for approval');
submitRequest.setObjectId(ac.id);
submitRequest.setSubmitterId(ac.CreatedById);
submitRequest.setProcessDefinitionNameOrId('Account for Approval');
Approval.ProcessResult result = Approval.process(submitRequest);
system.debug('Result ' + result.isSuccess() + 'NewObj ID' + ac.Id);
}
}
}catch(Exception ex){
system.debug('Exception in Approval Process submision and error is--->'+ex);
Batch.trackErrorLog(CLASS_NAME, 'submitForApproval',
'Exception Line Number:' + ex.getLineNo() +
'Exception Type' + ex.getType()+
'Exception Message' + ex.getmessage());
}
}
I tried to write a test class like this:
Account testdelAcc=new Account(Name = 'Test DelAcc');
try{
testdelAcc.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByName().get('ABC').getRecordTypeId();
insert testdelAcc;
}
catch(Exception e)
{
system.assertEquals(e.getMessage(), e.getMessage());
}
I am trying to pass Invalid Record Type but it does not cover the catch block. Can someone help me what I am missing here?