You need to sign in to do that
Don't have an account?
Vijay Kumar Rebbala 1
Test class for try catch and final block
Class:
global class DeleteoldCases{
Public void SFDCDeleteoldCases(){
List<Case> QueryCases = [SELECT Id FROM Case WHERE CreatedDate < LAST_N_MONTHS:18 ORDER BY CreatedDate ASC LIMIT 9000];
Integer QueryCount = database.countQuery('SELECT Count() FROM Case WHERE CreatedDate < LAST_N_MONTHS:18 LIMIT 9000');
If (QueryCases.isEmpty())
{
return;
}
try{
delete QueryCases;
}catch(DmlException e) {
System.debug('An unexpected error has occurred: ' + e.getMessage());
}catch(NullPointerException npe) {
System.debug('The following exception has occurred: ' + npe.getMessage());
}finally{
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toAddresses = new String[] {'CSAdmins@zynga.com'};
mail.setToAddresses(toAddresses);
mail.setSubject('Salesforce ZRM CaseDelete Status');
mail.setPlainTextBody('The Scheduled Apex job processed ' +QueryCount);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
}
}
}
Test Class:
@isTest
public Class testDeleteoldCases {
public static testMethod void testschedule() {
DeleteoldCases delca = new DeleteoldCases();
delca.SFDCDeleteoldCases();
Case newcase = new Case();
newcase.Subject = 'Testing123456798';
insert newcase;
List<Case> QueryCases = [SELECT Id FROM Case WHERE Subject = 'Testing123456798' ORDER BY CreatedDate ASC LIMIT 9000];
try {
if(Test.isRunningTest()) {
QueryCases = null;
}
delete QueryCases;
} catch(Exception e) {
system.debug('Failed to delete cases');
}
}
}
global class DeleteoldCases{
Public void SFDCDeleteoldCases(){
List<Case> QueryCases = [SELECT Id FROM Case WHERE CreatedDate < LAST_N_MONTHS:18 ORDER BY CreatedDate ASC LIMIT 9000];
Integer QueryCount = database.countQuery('SELECT Count() FROM Case WHERE CreatedDate < LAST_N_MONTHS:18 LIMIT 9000');
If (QueryCases.isEmpty())
{
return;
}
try{
delete QueryCases;
}catch(DmlException e) {
System.debug('An unexpected error has occurred: ' + e.getMessage());
}catch(NullPointerException npe) {
System.debug('The following exception has occurred: ' + npe.getMessage());
}finally{
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toAddresses = new String[] {'CSAdmins@zynga.com'};
mail.setToAddresses(toAddresses);
mail.setSubject('Salesforce ZRM CaseDelete Status');
mail.setPlainTextBody('The Scheduled Apex job processed ' +QueryCount);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
}
}
}
Test Class:
@isTest
public Class testDeleteoldCases {
public static testMethod void testschedule() {
DeleteoldCases delca = new DeleteoldCases();
delca.SFDCDeleteoldCases();
Case newcase = new Case();
newcase.Subject = 'Testing123456798';
insert newcase;
List<Case> QueryCases = [SELECT Id FROM Case WHERE Subject = 'Testing123456798' ORDER BY CreatedDate ASC LIMIT 9000];
try {
if(Test.isRunningTest()) {
QueryCases = null;
}
delete QueryCases;
} catch(Exception e) {
system.debug('Failed to delete cases');
}
}
}
I can't see how your code could throw a null pointer exception so I doubt you'll be able to test that.