You need to sign in to do that
Don't have an account?
Bryan Paldino
Build an Apex Class using the class for test
Hi Everyone,
I'm new to Apex coding and can't seem to wrap my brain around how to create an Apex class to test a trigger I have developed. I was wondering if anyone can help me.
trigger CreateRenEnrollmentrecord on Case (before update) {
List<Enrollment__c> enrollments = new List<Enrollment__c>();
//For each enrollment processed by the trigger, add a new
for (Case newEnrollment: Trigger.New) {
if ((newEnrollment.Proactive_Renewal_override__c == 'Yes' & newEnrollment.Renewal_Enrollment_built__c <> 'Yes') || (newEnrollment.Begin_Reenroll_workflow__c== 'Yes' & newEnrollment.Renewal_Enrollment_built__c <> 'Yes')) {
newEnrollment.Renewal_Enrollment_built__c = 'Yes';
enrollments.add(new Enrollment__c(
Name = 'Renewal',
Case__c = newEnrollment.Id,
Type_2__c = 'Renewal',
Product__c= newEnrollment.Product__c,
Start_Date__c = newEnrollment.Next_Enrollment_Date__c,
Account_Manager_2__c = newEnrollment.Account_Manager__c,
Status__c = 'Re-enrollment Communication'));
}
}
insert enrollments;
}
Thanks
I'm new to Apex coding and can't seem to wrap my brain around how to create an Apex class to test a trigger I have developed. I was wondering if anyone can help me.
trigger CreateRenEnrollmentrecord on Case (before update) {
List<Enrollment__c> enrollments = new List<Enrollment__c>();
//For each enrollment processed by the trigger, add a new
for (Case newEnrollment: Trigger.New) {
if ((newEnrollment.Proactive_Renewal_override__c == 'Yes' & newEnrollment.Renewal_Enrollment_built__c <> 'Yes') || (newEnrollment.Begin_Reenroll_workflow__c== 'Yes' & newEnrollment.Renewal_Enrollment_built__c <> 'Yes')) {
newEnrollment.Renewal_Enrollment_built__c = 'Yes';
enrollments.add(new Enrollment__c(
Name = 'Renewal',
Case__c = newEnrollment.Id,
Type_2__c = 'Renewal',
Product__c= newEnrollment.Product__c,
Start_Date__c = newEnrollment.Next_Enrollment_Date__c,
Account_Manager_2__c = newEnrollment.Account_Manager__c,
Status__c = 'Re-enrollment Communication'));
}
}
insert enrollments;
}
Thanks
use the below test class:
small update in the steven code to fire the trigger:
@isTest
private class CreateRenEnrollmentrecordTest {
@isTest static void testHandler(){
Account acct = new Account(Name = 'Test Account');
insert acct;
Case newCase = new Case();
newCase.Proactive_Renewal_override__c = 'Yes';
newCase.Begin_Reenroll_workflow__c = 'No';
newCase.Renewal_Enrollment_built__c = 'Yes';
newCase.AccountId = acct.Id;
newCase.Status = 'New';
newCase.Subject = 'Test';
insert newCase;
newCase.Renewal_Enrollment_built__c = 'No';
Test.startTest();
update newCase;
Test.stopTest();
List<Enrollment__c> enrollments = [SELECT Id FROM Enrollment__c];
System.assert(enrollments.size() > 0);
}
}
Can you please Let me know if it helps or not!!!
If it helps don't forget to mark this as a best answer!!!
Thanks,
Raj
All Answers
use the below test class:
small update in the steven code to fire the trigger:
@isTest
private class CreateRenEnrollmentrecordTest {
@isTest static void testHandler(){
Account acct = new Account(Name = 'Test Account');
insert acct;
Case newCase = new Case();
newCase.Proactive_Renewal_override__c = 'Yes';
newCase.Begin_Reenroll_workflow__c = 'No';
newCase.Renewal_Enrollment_built__c = 'Yes';
newCase.AccountId = acct.Id;
newCase.Status = 'New';
newCase.Subject = 'Test';
insert newCase;
newCase.Renewal_Enrollment_built__c = 'No';
Test.startTest();
update newCase;
Test.stopTest();
List<Enrollment__c> enrollments = [SELECT Id FROM Enrollment__c];
System.assert(enrollments.size() > 0);
}
}
Can you please Let me know if it helps or not!!!
If it helps don't forget to mark this as a best answer!!!
Thanks,
Raj
@isTest
private class CreateRenEnrollmentrecordTest {
// Here we are inserting account and case.
@testSetup
static void setup(){
Account acctObj = new Account();
acctObj.Name = 'Test Account'
insert acctObj;
Case caseObj = new Case();
caseObj.Proactive_Renewal_override__c = 'Yes';
caseObj.Begin_Reenroll_workflow__c = 'No';
caseObj.Renewal_Enrollment_built__c = 'Yes';
caseObj.AccountId = acct.Id;
caseObj.Status = 'New';
caseObj.Subject = 'Test';
insert caseObj;
}
@isTest
static void testMethod1(){
// Here getting the inserted account and fetching the related Case.
Account acct = [SELECT Id FROM Account WHERE Name='Test Account' LIMIT 1];
Case newcaseObj = [SELECT AccountId FROM Case WHERE AccountId=:acct LIMIT 1];
// Updating the particular field of Case.
newcaseObj.Renewal_Enrollment_built__c = 'No';
Test.startTest();
update newcaseObj;
Test.stopTest();
}
@isTest
static void testMethod2()
{
List<Enrollment__c> enrollments = [SELECT Id FROM Enrollment__c];
System.assert(enrollments.size() > 0); // Checking the list of size.
}
}
Please select as best answer if it helps you.
Thank You,
Ajay Dubedi