You need to sign in to do that
Don't have an account?
Adil Shaik (HYD)
Could you help me in writing the test class for before insert trigger.
trigger PositionTrigger on Position__c (before insert,before update, before delete) {
if(trigger.isBefore && (trigger.isInsert || trigger.isUpdate)){
PositionTrigger_Handler.RecordTypeUpdate(Trigger.New);
}
}
=============
public class PositionTrigger_Handler {
Public Static void RecordTypeUpdate(List<Position__c> lstpos){
Map<string,id> MappingRec = new Map<string, id>();
List<RecordType> lstRec = [Select id, Developername from RecordType where SObjectType = 'Position__c'];
for(RecordType rec: lstRec){
MappingRec.put(rec.DeveloperName, rec.Id);
}
for(Position__c pos : lstpos){
if(pos.Phase__c == 'Phase 1'){
pos.RecordTypeId = MappingRec.get('Phase_1');
}
if(pos.Phase__c == 'Phase 2'){
pos.RecordTypeId = MappingRec.get('Phase_2');
}
if(pos.Phase__c == 'Phase 3'){
pos.RecordTypeId = MappingRec.get('Phase_3');
}
}
}
}
=============================
@isTest
public class PositionTrigger_Handler_Test {
Static testmethod void TestTrigger (){
List<Position__c> lstpos = New List<Position__c> ();
try{
Position__C pos1 = New Position__C(Name='Test1', Amount__c=500, Phase__c='Phase 1');
Position__C pos2 = New Position__C(Name='Test2', Amount__c=500, Phase__c='Phase 2');
Position__C pos3 = New Position__C(Name='Test3', Amount__c=500, Phase__c='Phase 3');
lstpos.add(pos1);
lstpos.add(pos2);
lstpos.add(pos3);
insert lstpos;
}
catch(DmlException e){
system.debug('the following exception has occured: '+e.getMessage());
}
}
}
if(trigger.isBefore && (trigger.isInsert || trigger.isUpdate)){
PositionTrigger_Handler.RecordTypeUpdate(Trigger.New);
}
}
=============
public class PositionTrigger_Handler {
Public Static void RecordTypeUpdate(List<Position__c> lstpos){
Map<string,id> MappingRec = new Map<string, id>();
List<RecordType> lstRec = [Select id, Developername from RecordType where SObjectType = 'Position__c'];
for(RecordType rec: lstRec){
MappingRec.put(rec.DeveloperName, rec.Id);
}
for(Position__c pos : lstpos){
if(pos.Phase__c == 'Phase 1'){
pos.RecordTypeId = MappingRec.get('Phase_1');
}
if(pos.Phase__c == 'Phase 2'){
pos.RecordTypeId = MappingRec.get('Phase_2');
}
if(pos.Phase__c == 'Phase 3'){
pos.RecordTypeId = MappingRec.get('Phase_3');
}
}
}
}
=============================
@isTest
public class PositionTrigger_Handler_Test {
Static testmethod void TestTrigger (){
List<Position__c> lstpos = New List<Position__c> ();
try{
Position__C pos1 = New Position__C(Name='Test1', Amount__c=500, Phase__c='Phase 1');
Position__C pos2 = New Position__C(Name='Test2', Amount__c=500, Phase__c='Phase 2');
Position__C pos3 = New Position__C(Name='Test3', Amount__c=500, Phase__c='Phase 3');
lstpos.add(pos1);
lstpos.add(pos2);
lstpos.add(pos3);
insert lstpos;
}
catch(DmlException e){
system.debug('the following exception has occured: '+e.getMessage());
}
}
}
You need to compare the recordtype id that is assigned from the trigger and expected value.
It covers 100% trigger and handler apex class as well
If this solution helps, Please mark it as best answer.
Thanks,
All Answers
You need to compare the recordtype id that is assigned from the trigger and expected value.
It covers 100% trigger and handler apex class as well
If this solution helps, Please mark it as best answer.
Thanks,
try below test class with 100% coverage
don't forget to mark it as best answer if it helps you.
Thank you