You need to sign in to do that
Don't have an account?
Hi All, i have written a test class but iit's not covered Code. Can any one help me. and i am begginer, if any mistake i made, please letme know.
Apex Class::
public static void GetIBISDataFromTrigger(map<id,Account> newMap, map<id,Account> oldMap){
loan__Trigger_Parameters__c trigParam = loan__Trigger_Parameters__c.getInstance();
genesis__Org_Parameters__c orgParam = genesis__Org_Parameters__c.getInstance();
IF(orgParam.genesis__Disable_Triggers__c == False && trigParam.GetIBISDataTrigger__c == False){
Set<Id> accountIds = new Set<Id>();
for(Account acc : newMap.values()){
if(acc.IBIS_Specialised_Industry__c != OldMap.get(acc.Id).IBIS_Specialised_Industry__c ||
acc.IBIS_Sub_Industry__c != OldMap.get(acc.Id).IBIS_Sub_Industry__c || (acc.IBIS_Industry__c=='FAST-TRACK' && acc.IBIS_Industry__c!= OldMap.get(acc.Id).IBIS_Industry__c)){
//Store Account Ids
accountIds.add(acc.Id);
}
}
IF(accountIds.size() > 0)
{
//get the IBIS Data
Map<String,IBIS_Data__c> CodeMap = new Map<String,IBIS_Data__c>();
List<IBIS_Data__c> conList = [Select id,
Name,
Code_Data__c,
IBIS_Sub_Industry__c,
IBIS_Specialised_Industry__c,
IBIS_Industry_Type__c
From IBIS_Data__c order by createdDate DESC];
for(IBIS_Data__c ibisData : conList){
IF(ibisData.IBIS_Specialised_Industry__c == null){
if(!CodeMap.Containskey(ibisData.IBIS_Sub_Industry__c)){
CodeMap.put(ibisData.IBIS_Sub_Industry__c,ibisData);
}
}else{
if(!CodeMap.Containskey(ibisData.IBIS_Specialised_Industry__c)){
CodeMap.put(ibisData.IBIS_Specialised_Industry__c,ibisData);
}
}
}
for(ID accId : accountIds){
if(newMap.get(accId).IBIS_Specialised_Industry__c != null){
if(CodeMap.ContainsKey(newMap.get(accId).IBIS_Specialised_Industry__c)){
newMap.get(accId).IBIS_Code__c = CodeMap.get(newMap.get(accId).IBIS_Specialised_Industry__c).Code_Data__c;
newMap.get(accId).IBIS_Industry_Type__c = CodeMap.get(newMap.get(accId).IBIS_Specialised_Industry__c).IBIS_Industry_Type__c;
}else{
newMap.get(accId).IBIS_Code__c = '';
}
}else if(newMap.get(accId).IBIS_Sub_Industry__c != null){
if(CodeMap.ContainsKey(newMap.get(accId).IBIS_Sub_Industry__c)){
newMap.get(accId).IBIS_Code__c = CodeMap.get(newMap.get(accId).IBIS_Sub_Industry__c).Code_Data__c;
newMap.get(accId).IBIS_Industry_Type__c = CodeMap.get(newMap.get(accId).IBIS_Sub_Industry__c).IBIS_Industry_Type__c;
}else{
newMap.get(accId).IBIS_Code__c = '';
}
}
else if(newMap.get(accId).IBIS_Industry__c=='FAST-TRACK'){
if(CodeMap.ContainsKey(newMap.get(accId).IBIS_Industry__c)){
newMap.get(accId).IBIS_Code__c = CodeMap.get(newMap.get(accId).IBIS_Industry__c).Code_Data__c;
newMap.get(accId).IBIS_Industry_Type__c = CodeMap.get(newMap.get(accId).IBIS_Industry__c).IBIS_Industry_Type__c;
}else{
newMap.get(accId).IBIS_Code__c = '';
}
}
else{
newMap.get(accId).IBIS_Code__c = '';
}
}
}
}
}
}
Test Class::
static testMethod void GetIBISDataFromTriggertest(){
Test.startTest();
loan__Trigger_Parameters__c trigParam = new loan__Trigger_Parameters__c();
genesis__Org_Parameters__c orgParam = new genesis__Org_Parameters__c();
orgParam.genesis__Disable_Triggers__c = False;
trigParam.GetIBISDataTrigger__c = False;
update orgParam;
update trigParam;
List<Account> acclist = new List<Account>();
Account acc1 = new Account(Name = 'Test with Sole Proprietor', Company_Structure__c = 'Sole Proprietor', ABN_Status__c = 'Active', IBIS_Specialised_Industry__c ='Hydroponic Crop Farming');
insert acc1;
if(acc1.id != null){
for(Account acc : [select id, Name, Company_Structure__c, ABN_Status__c, IBIS_Specialised_Industry__c from Account where Name='Test with Sole Proprietor' limit 1]){
acc.IBIS_Specialised_Industry__c='Coal Seam Gas Extraction';
acclist.add(acc);
}
update acclist;
}
test.stopTest();
}
Try below Test Class Please Mark It As Best Answer If It Helps
Thank You!
https://salesforce.stackexchange.com/questions/244788/how-do-i-write-an-apex-unit-test
https://salesforce.stackexchange.com/questions/244794/how-do-i-increase-my-code-coverage-or-why-cant-i-cover-these-lines
Thanks!