You need to sign in to do that
Don't have an account?

I am writing a test class to update the field of one of my bill object and I am not getting any code coverage for my for loops which go over a list of contacts and find a contact with a status of Signing Officer
All the tests pass and I have 50% Code Covergae, the highlighted bold text is the one that I do not have code coverage for.
public class UpdateContactfields{
public static Account getAccount(loan__Loan_account_Due_Details__c a) {
Account a1 = [SELECT Id, Name, CurrencyIsoCode FROM Account WHERE Name =: a.Account_Name__c];
return a1;
}
public static List<Contact> ListofCons(loan__Loan_account_Due_Details__c a){
List<Contact> c = [SELECT AccountId, Name, Email, Title, Contact_Status__c FROM Contact WHERE AccountId =: getAccount(a).Id ];
return c;
}
public static String setfield(loan__Loan_account_Due_Details__c a1){
if((ListofCons(a1)).size()>0){
for(Contact c2:(ListofCons(a1))){
if(c2.Contact_Status__c == 'Signing Officer'){
a1.Signing_Officer__c = c2.Name;
}
}
}
return a1.Signing_Officer__c;
}
}
@isTest
private class UpdateContacts{
@isTest static void UpdateContacts_Test() {
Account acc = new Account(Name = 'DEF');
insert acc;
Account acc1 = new Account(Name = 'PRI');
insert acc1;
Contact c1 = New Contact();
c1.LastName = 'ABC';
c1.Title = 'CEO';
c1.Contact_Status__c = 'Signing Officer';
c1.AccountId = acc.Id;
c1.Email = 'sh123@gmail.com';
insert c1;
Contact c2 = New Contact();
c2.LastName = 'XYZ';
c2.Title = 'CFO';
c2.Contact_Status__c = 'Financial Operations';
c2.AccountId = acc.Id;
c2.Email = 'lo123@gmail.com';
insert c2;
List<Contact> cons1 = new List<Contact>();
cons1.add(c1);
cons1.add(c2);
Id n1;
loan__Office_Name__c[] a = [SELECT Name,loan__Office_Name_ID__c,CurrencyIsoCode, loan__Office_Short_Name__c FROM loan__Office_Name__c WHERE Name = 'TIMIA Capital Corporation YVR'Limit 1];
if(a.size()>0){
n1 = a[0].Id;
}
Id n2;
loan__Loan_Product__c[] a1 = [SELECT Name, loan__Loan_Product_External_Id__c FROM loan__Loan_Product__c WHERE Name = 'Revenue Loan - HiGrowth STEP UP'Limit 1];
if(a1.size()>0){
n2 = a1[0].Id;
}
else n2 = null;
loan__Loan_Account__c l1 = new loan__Loan_Account__c(loan__Account__c = acc.Id, loan__Loan_Amount__c = 1000000, loan__Due_Day__c = 5, loan__Interest_Rate__c = 21,loan__Branch__c = n1,loan__Loan_Product_Name__c = n2);
Database.insert (l1, false);
loan__Loan_Account__c l2 = new loan__Loan_Account__c(loan__Account__c = acc1.Id, loan__Loan_Amount__c = 1000000, loan__Due_Day__c = 5, loan__Interest_Rate__c = 21,loan__Branch__c = n1,loan__Loan_Product_Name__c = n2);
Database.insert(l2,false);
loan__Loan_account_Due_Details__c b1 = new loan__Loan_account_Due_Details__c(loan__Loan_Account__c = l1.Id);
System.assertEquals(l1.Id, b1.loan__Loan_Account__c);
loan__Loan_account_Due_Details__c b3 = new loan__Loan_account_Due_Details__c(loan__Loan_Account__c = l2.Id);
Database.insert (b1, false);
Database.insert(b3, false);
try {
loan__Loan_account_Due_Details__c b2 = [SELECT Name, loan__Loan_Account__c, Signing_Officer__c, CurrencyIsoCode, Account_Name__c FROM loan__Loan_account_Due_Details__c WHERE Name =: b1.Name];
Account a2 = [SELECT Id, Name, CurrencyIsoCode FROM Account WHERE Name =: b2.Account_Name__c];
System.assertEquals(a2,UpdateContactfields.getAccount(b2));
System.assertEquals(acc.Id, UpdateContactfields.getAccount(b2).Id);
System.assertEquals('DEF',UpdateContactfields.getAccount(b2).Name);
System.assertEquals(cons1,(UpdateContactfields.ListofCons(b2)));
System.assertEquals(2,(UpdateContactfields.ListofCons(b2)).size());
System.assert((UpdateContactfields.ListofCons(b2)).contains(c1),true);
System.assert(UpdateContactfields.ListofCons(b2).contains(c2),true);
Contact con1 = (UpdateContactfields.ListofCons(b2))[0];
System.assertEquals('ABC', (UpdateContactfields.ListofCons(b2))[0].Name);
System.assert(con1.Contact_Status__c == 'Signing Officer', true);
System.assert(b2.Signing_Officer__c == null, true);
System.assertEquals('ABC',UpdateContactfields.setfield(b2));
System.assertEquals('ABC', b2.Signing_Officer__c);
Contact cons2 = (UpdateContactfields.ListofCons(b2))[1];
System.assertEquals('XYZ', (UpdateContactfields.ListofCons(b2))[0].Name);
System.assert(cons2.Contact_Status__c == 'Signing Officer', false);
System.assert(b2.Signing_Officer__c == null, false);
System.assertEquals('ABC',UpdateContactfields.setfield(b2));
System.assertEquals('ABC', b2.Signing_Officer__c);
Contact con3 = (UpdateContactfields.ListofCons(b2))[2];
System.assertEquals(null, (UpdateContactfields.ListofCons(b2))[2]);
loan__Loan_account_Due_Details__c b4 = [SELECT Name, loan__Loan_Account__c, Signing_Officer__c, CurrencyIsoCode, Account_Name__c FROM loan__Loan_account_Due_Details__c WHERE Name =: b3.Name];
System.assertEquals(acc1,UpdateContactfields.getAccount(b4));
System.assertEquals(0,(UpdateContactfields.ListofCons(b4)).size());
System.assert(UpdateContactfields.ListofCons(b4).contains(c1), false);
System.assert(UpdateContactfields.ListofCons(b4).contains(c2), false);
System.assertEquals(null, UpdateContactfields.setfield(b2));
System.assertEquals(null, b4.Signing_Officer__c);
}
catch(QueryException e){
}
}
}
public class UpdateContactfields{
public static Account getAccount(loan__Loan_account_Due_Details__c a) {
Account a1 = [SELECT Id, Name, CurrencyIsoCode FROM Account WHERE Name =: a.Account_Name__c];
return a1;
}
public static List<Contact> ListofCons(loan__Loan_account_Due_Details__c a){
List<Contact> c = [SELECT AccountId, Name, Email, Title, Contact_Status__c FROM Contact WHERE AccountId =: getAccount(a).Id ];
return c;
}
public static String setfield(loan__Loan_account_Due_Details__c a1){
if((ListofCons(a1)).size()>0){
for(Contact c2:(ListofCons(a1))){
if(c2.Contact_Status__c == 'Signing Officer'){
a1.Signing_Officer__c = c2.Name;
}
}
}
return a1.Signing_Officer__c;
}
}
@isTest
private class UpdateContacts{
@isTest static void UpdateContacts_Test() {
Account acc = new Account(Name = 'DEF');
insert acc;
Account acc1 = new Account(Name = 'PRI');
insert acc1;
Contact c1 = New Contact();
c1.LastName = 'ABC';
c1.Title = 'CEO';
c1.Contact_Status__c = 'Signing Officer';
c1.AccountId = acc.Id;
c1.Email = 'sh123@gmail.com';
insert c1;
Contact c2 = New Contact();
c2.LastName = 'XYZ';
c2.Title = 'CFO';
c2.Contact_Status__c = 'Financial Operations';
c2.AccountId = acc.Id;
c2.Email = 'lo123@gmail.com';
insert c2;
List<Contact> cons1 = new List<Contact>();
cons1.add(c1);
cons1.add(c2);
Id n1;
loan__Office_Name__c[] a = [SELECT Name,loan__Office_Name_ID__c,CurrencyIsoCode, loan__Office_Short_Name__c FROM loan__Office_Name__c WHERE Name = 'TIMIA Capital Corporation YVR'Limit 1];
if(a.size()>0){
n1 = a[0].Id;
}
Id n2;
loan__Loan_Product__c[] a1 = [SELECT Name, loan__Loan_Product_External_Id__c FROM loan__Loan_Product__c WHERE Name = 'Revenue Loan - HiGrowth STEP UP'Limit 1];
if(a1.size()>0){
n2 = a1[0].Id;
}
else n2 = null;
loan__Loan_Account__c l1 = new loan__Loan_Account__c(loan__Account__c = acc.Id, loan__Loan_Amount__c = 1000000, loan__Due_Day__c = 5, loan__Interest_Rate__c = 21,loan__Branch__c = n1,loan__Loan_Product_Name__c = n2);
Database.insert (l1, false);
loan__Loan_Account__c l2 = new loan__Loan_Account__c(loan__Account__c = acc1.Id, loan__Loan_Amount__c = 1000000, loan__Due_Day__c = 5, loan__Interest_Rate__c = 21,loan__Branch__c = n1,loan__Loan_Product_Name__c = n2);
Database.insert(l2,false);
loan__Loan_account_Due_Details__c b1 = new loan__Loan_account_Due_Details__c(loan__Loan_Account__c = l1.Id);
System.assertEquals(l1.Id, b1.loan__Loan_Account__c);
loan__Loan_account_Due_Details__c b3 = new loan__Loan_account_Due_Details__c(loan__Loan_Account__c = l2.Id);
Database.insert (b1, false);
Database.insert(b3, false);
try {
loan__Loan_account_Due_Details__c b2 = [SELECT Name, loan__Loan_Account__c, Signing_Officer__c, CurrencyIsoCode, Account_Name__c FROM loan__Loan_account_Due_Details__c WHERE Name =: b1.Name];
Account a2 = [SELECT Id, Name, CurrencyIsoCode FROM Account WHERE Name =: b2.Account_Name__c];
System.assertEquals(a2,UpdateContactfields.getAccount(b2));
System.assertEquals(acc.Id, UpdateContactfields.getAccount(b2).Id);
System.assertEquals('DEF',UpdateContactfields.getAccount(b2).Name);
System.assertEquals(cons1,(UpdateContactfields.ListofCons(b2)));
System.assertEquals(2,(UpdateContactfields.ListofCons(b2)).size());
System.assert((UpdateContactfields.ListofCons(b2)).contains(c1),true);
System.assert(UpdateContactfields.ListofCons(b2).contains(c2),true);
Contact con1 = (UpdateContactfields.ListofCons(b2))[0];
System.assertEquals('ABC', (UpdateContactfields.ListofCons(b2))[0].Name);
System.assert(con1.Contact_Status__c == 'Signing Officer', true);
System.assert(b2.Signing_Officer__c == null, true);
System.assertEquals('ABC',UpdateContactfields.setfield(b2));
System.assertEquals('ABC', b2.Signing_Officer__c);
Contact cons2 = (UpdateContactfields.ListofCons(b2))[1];
System.assertEquals('XYZ', (UpdateContactfields.ListofCons(b2))[0].Name);
System.assert(cons2.Contact_Status__c == 'Signing Officer', false);
System.assert(b2.Signing_Officer__c == null, false);
System.assertEquals('ABC',UpdateContactfields.setfield(b2));
System.assertEquals('ABC', b2.Signing_Officer__c);
Contact con3 = (UpdateContactfields.ListofCons(b2))[2];
System.assertEquals(null, (UpdateContactfields.ListofCons(b2))[2]);
loan__Loan_account_Due_Details__c b4 = [SELECT Name, loan__Loan_Account__c, Signing_Officer__c, CurrencyIsoCode, Account_Name__c FROM loan__Loan_account_Due_Details__c WHERE Name =: b3.Name];
System.assertEquals(acc1,UpdateContactfields.getAccount(b4));
System.assertEquals(0,(UpdateContactfields.ListofCons(b4)).size());
System.assert(UpdateContactfields.ListofCons(b4).contains(c1), false);
System.assert(UpdateContactfields.ListofCons(b4).contains(c2), false);
System.assertEquals(null, UpdateContactfields.setfield(b2));
System.assertEquals(null, b4.Signing_Officer__c);
}
catch(QueryException e){
}
}
}