You need to sign in to do that
Don't have an account?
bhanu_prakash
test class creation for lookup update
Help me to create test class for below code , Actually updating on lookup field on another
trigger code :
trigger updatecompany on pse__Expense_Report__c(after insert, after update){
set<Id> ersIds = new set<Id>();
// get the ids of the er whose company is not equal to null
for(pse__Expense_Report__c er : trigger.new){
if(er.ffpsai__OwnerCompany__c != null || er.ffpsai__OwnerCompany__c != ''){
ersIds.add(er.Id);
}
}
List<pse__Region__c> reg = new List<pse__Region__c>();
// query the export report with the er ids --
for(pse__Region__c er : [select id, name, pse__Expense_Report__r.ffpsai__OwnerCompany__c from pse__Region__c where pse__Region__r.pse__Expense_Report__c in : ersIds]){
//assign the company value of er to export report company feidl
er.ffpsai__OwnerCompany__c = er.pse__Expense_Report__r.ffpsai__OwnerCompany__c;
// add them to the list
reg.add(er);
}
update reg;
}
trigger code :
trigger updatecompany on pse__Expense_Report__c(after insert, after update){
set<Id> ersIds = new set<Id>();
// get the ids of the er whose company is not equal to null
for(pse__Expense_Report__c er : trigger.new){
if(er.ffpsai__OwnerCompany__c != null || er.ffpsai__OwnerCompany__c != ''){
ersIds.add(er.Id);
}
}
List<pse__Region__c> reg = new List<pse__Region__c>();
// query the export report with the er ids --
for(pse__Region__c er : [select id, name, pse__Expense_Report__r.ffpsai__OwnerCompany__c from pse__Region__c where pse__Region__r.pse__Expense_Report__c in : ersIds]){
//assign the company value of er to export report company feidl
er.ffpsai__OwnerCompany__c = er.pse__Expense_Report__r.ffpsai__OwnerCompany__c;
// add them to the list
reg.add(er);
}
update reg;
}
You can simply insert data for pse__Expense_Report__c object
pse__Expense_Report__c obj= new pse__Expense_Report__c();
obj.ffpsai__OwnerCompany__c =''; // keep this blank
insert obj;
create data for pse__Region__c object and give lookup field as inserted above
pse__Region__c obj2= new pse__Region__c ();
obj2.pse__Expense_Report__c = obj.Id
insert pse__Region__c ;
update obj i.e.pse__Expense_Report__c and put some comapny name and write update obj
your trigger will get fire.
Let me know if this helps you to solve your problem.
Thanks,
Sukanya Banekar
Please used following test class for you functionality..
@isTest
public with sharing class updatecompanyTestClass {
public static testmethod void updatecompanyTest(){
List<pse__Expense_Report__c> PERlist = new List<pse__Expense_Report__c>();
pse__Expense_Report__c PERObj = new pse__Expense_Report__c();
PERObj.name= 'test';
PERObj.ffpsai__OwnerCompany__c='Componytest1';
insert PERObj;
pse__Region__c PRObj = new pse__Region__c();
PRObj.name = 'PrTest';
PRObj.pse__Expense_Report__c = PERObj.Id;
insert PRObj;
pse__Expense_Report__c PERObjToUpdate = [SELECT Id, ffpsai__OwnerCompany__c, name FROM pse__Expense_Report__c WHERE NAME ='test'];
test.starttest();
PERObjToUpdate.ffpsai__OwnerCompany__c = 'Componytest2';
update PERObjToUpdate;
test.stopTest();
pse__Region__c PERObjToUpdate = [SELECT Id, ffpsai__OwnerCompany__c, name FROM pse__Region__c WHERE PRObj.pse__Expense_Report__c = PERObjToUpdate.id];
system.assertEquals(PERObjToUpdate.ffpsai__OwnerCompany__c, PERObjToUpdate.ffpsai__OwnerCompany__c);
}
}
Thank you,
Amol Salve
Salesforce Developer