Apex Assignment 3
Apex Assignment 3
Develop trigger which update "Resume Renewal Date" field value to "Resume Upload Date" + 6 months.
Develop a batch class:- Which will fetch all Contact records having "Resume Renewal Date" is equals to today and send the email
to those Contact's informing that they should update their resume, You've to use Email template with the following information.
Also, provide facility to execute batch class, Contact record's "Resume Renewal Date" field has a specific date, not just today.
Develop Test Class for Trigger and Batch Class.
/*
* @Name : Assignment3_Handler.apxc
* @Purpose : Apex Assignment 3.
* @Description : Batch Class to send email to Contact to update Resume on Resume_Renewal_Date
* @Since : 13 09 2022
* @date : 13 09 2022
* @PreWork : Created 'Resume Update' Email Template, and Two Custom fields 'Resume_Renewal_Date__c','Resume_Upload_Date__c
* @OtherRelateFiles : Assignment3_Handler.apxc, Ass3_BatchClass.apxc,Ass_3Test.apxc,Ass_3_Batch_Test.apxc, Assignment3Trigger.apxt
*/
/*
* @Name : Assignment3Trigger.apxt
* @Purpose : Apex Assignment 3.
* @Description : Batch Class to send email to Contact to update Resume on Resume_Renewal_Date
* @Since : 13 09 2022
* @date : 13 09 2022
* @PreWork : Created 'Resume Update' Email Template, and Two Custom fields 'Resume_Renewal_Date__c','Resume_Upload_Date__c
* @OtherRelateFiles : Assignment3_Handler.apxc, Ass3_BatchClass.apxc,Ass_3Test.apxc,Ass_3_Batch_Test.apxc, Assignment3Trigger.apxt
*/
/*
* @Name : Ass_3Test.apxc
* @Purpose : Apex Assignment 3.
* @Description : Batch Class to send email to Contact to update Resume on Resume_Renewal_Date
* @Since : 13 09 2022
* @date : 13 09 2022
* @PreWork : Created 'Resume Update' Email Template, and Two Custom fields 'Resume_Renewal_Date__c','Resume_Upload_Date__c
* @OtherRelateFiles : Assignment3_Handler.apxc, Ass3_BatchClass.apxc,Ass_3Test.apxc,Ass_3_Batch_Test.apxc, Assignment3Trigger.apxt
*/
@isTest
public class Ass_3Test {
@testSetup static void setup() {
// Create common test Contacts
// Test data setup
// Create an account with an contact, and then try to insert it
List<contact> TestContact = new List<contact>();
for(Integer i=0;i<2;i++) {
TestContact.add(new contact(LastName = 'Surname '+i));
}
insert TestContact;
}
Assignment 3 1
@isTest static void Test1_Negative() {
Contact ListOfRecord= [SELECT Id, LastName, Resume_Renewal_Date__c, Resume_Upload_Date__c, Email FROM Contact WHERE LastName= 'Surna
ListOfRecord.Resume_Upload_Date__c = Null;
}
Contact ListOfContact= [SELECT Id, LastName, Resume_Renewal_Date__c, Resume_Upload_Date__c, Email FROM Contact WHERE LastName= 'Sur
ListOfContact.Resume_Upload_Date__c = system.today();
// Perform test
Test.startTest();
Database.UpsertResult result = Database.upsert(ListOfContact,false);
Test.stopTest();
// Verify
System.assertEquals('Surname 1',ListOfContact.LastName );
}
}
/*
* @Name : Ass3_BatchClass.apxc
* @Purpose : Apex Assignment 3.
* @Description : Batch Class to send email to Contact to update Resume on Resume_Renewal_Date
* @Since : 13 09 2022
* @date : 13 09 2022
* @PreWork : Created 'Resume Update' Email Template
* @OtherRelateFiles : Assignment3_Handler.apxc, Ass3_BatchClass.apxc,Ass_3Test.apxc,Ass_3_Batch_Test.apxc, Assignment3Trigger.apxt
*/
//Checking Result
if (results[0].success){
System.debug('The email was sent successfully.');
}else{
System.debug('The email failed to send: ' +
results[0].errors[0].message);
}
}
}
Global void finish(Database.BatchableContext BC){
}
}
/*
* @Name : Ass_3_Batch_Test.apxc
* @Purpose : Apex Assignment 3.
* @Description : Batch Class to send email to Contact to update Resume on Resume_Renewal_Date
* @Since : 13 09 2022
* @date : 13 09 2022
* @PreWork : Created 'Resume Update' Email Template
Assignment 3 2
* @OtherRelateFiles : Assignment3_Handler.apxc, Ass3_BatchClass.apxc,Ass_3Test.apxc,Ass_3_Batch_Test.apxc, Assignment3Trigger.apxt
*/
@istest
public class Ass_3_Batch_Test {
@testSetup static void setup() {
// Test setup, To Create common test Contacts
List<contact> ListContact = new List<contact>();
for(Integer i=0;i<200;i++) {
ListContact.add(new contact(LastName = 'Surname '+i, Email='[email protected]', Resume_Renewal_Date__c = system.today()
}
insert ListContact;
}
@istest
public static void MethodTest3(){
//Contact to check test setup Record and initialse it to New Contact Variable
Contact RecordContact= [SELECT Id, LastName, Resume_Renewal_Date__c, Resume_Upload_Date__c, Email FROM Contact WHERE LastName= 'Sur
Resume Renewal Date Automatically Updated After Insertion of Resume Update Date
Assignment 3 3
Executing Batch to Check Email Response
Assignment 3 4