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

how to cover the for loop in test class?
I have written a test class for apex class.i got 89% but 'for loop' is not covered represented as below screenshot.how to achieve morethan 90%?can you anybody help me where iam missing exactly.
apex class:
public with sharing class Rfleet_Financial_Informations {
//Variable Declaration Parts
public List < RFLEET_Account_Protocol__c > contt {get;set;}
public List < EditableContact > myAssociatedContact {get;set;}
public Integer editableContactNumber {get;set;}
public Boolean refreshPage {get;set;}
public String protocolname {get;set;}
public String id;
//Constructor for invoking the Records from AccountProrocol Object
public Rfleet_Financial_Informations(ApexPages.StandardController stdCtrl) {
id = ApexPages.currentPage().getParameters().get('id');
myAssociatedContact = new List < EditableContact > ();
Integer counter = 0;
RFLEET_Protocol__c conn = [select name from RFLEET_Protocol__c where id = : id];
protocolname = conn.name;
contt = [select Name,Rfleet_Billing_Account__r.Name, Rfleet_Id_Alcor__c, Rfleet_Billing_Account_Type__c, Rfleet_Billing_Account__r.Rfleet_Street_Number__c, Rfleet_Billing_Account__r.Rfleet_Country__c, Rfleet_Billing_Account__r.Rfleet_Zip_Code__c, Rfleet_Billing_Account__r.Rfleet_State_Province__c, Rfleet_Billing_Account__r.Rfleet_City__c, Rfleet_Billing_Account__r.Rfleet_Street_Name__c from RFLEET_Account_Protocol__c where Rfleet_Protocol__c = : id];
for (RFLEET_Account_Protocol__c myContact: contt) {
myAssociatedContact.add(new EditableContact(myContact, false, counter));
counter++;
}
}
// This method is used for deleting the Row
public void deleteRowEditAction() {
try {
myAssociatedContact.get(editableContactNumber).editable = false;
delete(myAssociatedContact.get(editableContactNumber).myContact);
} catch (Exception e) {}
refreshPage = true;
}
public class EditableContact {
public RFLEET_Account_Protocol__c myContact {get;set;}
public Boolean editable {get;set;}
public Integer counterNumber {get;set;}
public EditableContact(RFLEET_Account_Protocol__c myContact, Boolean editable, Integer counterNumber) {
this.myContact = myContact;
this.editable = editable;
this.counterNumber = counterNumber;
}
}
}
test class:
@isTest
public class Rfleet_Financial_Informations_Test {
static testMethod void financialtest() {
Billing_Repository__c brc = new Billing_Repository__c(Name='frest',Rfleet_City__c='cger',Rfleet_Country__c='japan',Rfleet_Zip_Code__c='7854',CurrencyIsoCode='EUR');
Account acc = new Account(Name = 'cooluma',montant__c=0.2);
acc.Rfleet_Id_Alcor__c=brc.id;
acc.Rfleet_Street_Name__c ='gff';
acc.Rfleet_Street_Number__c ='232';
acc.Rfleet_Country__c ='fdffd';
acc.Rfleet_City__c ='cdfdf';
acc.Rfleet_State_Province__c ='dfdf';
acc.Rfleet_Zip_Code__c ='dfdfnhj';
insert acc;
acc.Name = 'vfggf';
update acc;
RFLEET_Protocol__c test = new RFLEET_Protocol__c(Name = 'prabu');
insert test;
test.Name = 'prabu';
update test;
RFLEET_Account_Protocol__c myContact = new RFLEET_Account_Protocol__c(Rfleet_Billing_Account__c = acc.Id, Rfleet_Billing_Account_Type__c = 'Vehicle', Rfleet_City__c =acc.Rfleet_City__c,Rfleet_Country__c =acc.Rfleet_Country__c, Rfleet_Id_Alcor__c = acc.Rfleet_Id_Alcor__c,
Rfleet_Protocol__c = acc.Id, Rfleet_State_Province__c =acc.Rfleet_State_Province__c , Rfleet_Street_name__c =acc.Rfleet_Street_Name__c, Rfleet_Street_number__c = acc.Rfleet_Street_Number__c, Rfleet_Zip_code__c =acc.Rfleet_Zip_Code__c);
string name = 'ListConditionCheck';
Boolean editable;
Integer counternumber;
Rfleet_Financial_Informations.editableContact wra = new Rfleet_Financial_Informations.EditableContact(mycontact, editable, counterNumber);
test = [select id, Name from RFLEET_Protocol__c LIMIT 1];
PageReference vfpage = Page.Rfleet_Financial_Informations;
System.test.SetCurrentpage(vfpage);
Apexpages.currentPage().getparameters().put('id',test.id);
Apexpages.StandardController sc = new Apexpages.StandardController(test);
Rfleet_Financial_Informations fintest = new Rfleet_Financial_Informations(sc);
fintest.deleteRowEditAction();
fintest.id = acc.Id;
}
}
screenshot:

apex class:
public with sharing class Rfleet_Financial_Informations {
//Variable Declaration Parts
public List < RFLEET_Account_Protocol__c > contt {get;set;}
public List < EditableContact > myAssociatedContact {get;set;}
public Integer editableContactNumber {get;set;}
public Boolean refreshPage {get;set;}
public String protocolname {get;set;}
public String id;
//Constructor for invoking the Records from AccountProrocol Object
public Rfleet_Financial_Informations(ApexPages.StandardController stdCtrl) {
id = ApexPages.currentPage().getParameters().get('id');
myAssociatedContact = new List < EditableContact > ();
Integer counter = 0;
RFLEET_Protocol__c conn = [select name from RFLEET_Protocol__c where id = : id];
protocolname = conn.name;
contt = [select Name,Rfleet_Billing_Account__r.Name, Rfleet_Id_Alcor__c, Rfleet_Billing_Account_Type__c, Rfleet_Billing_Account__r.Rfleet_Street_Number__c, Rfleet_Billing_Account__r.Rfleet_Country__c, Rfleet_Billing_Account__r.Rfleet_Zip_Code__c, Rfleet_Billing_Account__r.Rfleet_State_Province__c, Rfleet_Billing_Account__r.Rfleet_City__c, Rfleet_Billing_Account__r.Rfleet_Street_Name__c from RFLEET_Account_Protocol__c where Rfleet_Protocol__c = : id];
for (RFLEET_Account_Protocol__c myContact: contt) {
myAssociatedContact.add(new EditableContact(myContact, false, counter));
counter++;
}
}
// This method is used for deleting the Row
public void deleteRowEditAction() {
try {
myAssociatedContact.get(editableContactNumber).editable = false;
delete(myAssociatedContact.get(editableContactNumber).myContact);
} catch (Exception e) {}
refreshPage = true;
}
public class EditableContact {
public RFLEET_Account_Protocol__c myContact {get;set;}
public Boolean editable {get;set;}
public Integer counterNumber {get;set;}
public EditableContact(RFLEET_Account_Protocol__c myContact, Boolean editable, Integer counterNumber) {
this.myContact = myContact;
this.editable = editable;
this.counterNumber = counterNumber;
}
}
}
test class:
@isTest
public class Rfleet_Financial_Informations_Test {
static testMethod void financialtest() {
Billing_Repository__c brc = new Billing_Repository__c(Name='frest',Rfleet_City__c='cger',Rfleet_Country__c='japan',Rfleet_Zip_Code__c='7854',CurrencyIsoCode='EUR');
Account acc = new Account(Name = 'cooluma',montant__c=0.2);
acc.Rfleet_Id_Alcor__c=brc.id;
acc.Rfleet_Street_Name__c ='gff';
acc.Rfleet_Street_Number__c ='232';
acc.Rfleet_Country__c ='fdffd';
acc.Rfleet_City__c ='cdfdf';
acc.Rfleet_State_Province__c ='dfdf';
acc.Rfleet_Zip_Code__c ='dfdfnhj';
insert acc;
acc.Name = 'vfggf';
update acc;
RFLEET_Protocol__c test = new RFLEET_Protocol__c(Name = 'prabu');
insert test;
test.Name = 'prabu';
update test;
RFLEET_Account_Protocol__c myContact = new RFLEET_Account_Protocol__c(Rfleet_Billing_Account__c = acc.Id, Rfleet_Billing_Account_Type__c = 'Vehicle', Rfleet_City__c =acc.Rfleet_City__c,Rfleet_Country__c =acc.Rfleet_Country__c, Rfleet_Id_Alcor__c = acc.Rfleet_Id_Alcor__c,
Rfleet_Protocol__c = acc.Id, Rfleet_State_Province__c =acc.Rfleet_State_Province__c , Rfleet_Street_name__c =acc.Rfleet_Street_Name__c, Rfleet_Street_number__c = acc.Rfleet_Street_Number__c, Rfleet_Zip_code__c =acc.Rfleet_Zip_Code__c);
string name = 'ListConditionCheck';
Boolean editable;
Integer counternumber;
Rfleet_Financial_Informations.editableContact wra = new Rfleet_Financial_Informations.EditableContact(mycontact, editable, counterNumber);
test = [select id, Name from RFLEET_Protocol__c LIMIT 1];
PageReference vfpage = Page.Rfleet_Financial_Informations;
System.test.SetCurrentpage(vfpage);
Apexpages.currentPage().getparameters().put('id',test.id);
Apexpages.StandardController sc = new Apexpages.StandardController(test);
Rfleet_Financial_Informations fintest = new Rfleet_Financial_Informations(sc);
fintest.deleteRowEditAction();
fintest.id = acc.Id;
}
}
screenshot:
You have missed to insert myContact in your test class.
I am posting here a update test class ,
you can find the newly added line in line number 24.
Thanks.
Prosenjit.
All Answers
You have missed to insert myContact in your test class.
I am posting here a update test class ,
you can find the newly added line in line number 24.
Thanks.
Prosenjit.
public class accToPick
{
List<Account> acc;
public String val{get;set;}
public List<cContact> ist{get;set;}
public String index {get;set;}
public String fname{get;set;}
public String lname{get;set;}
public accToPick()
{
acc= [SELECT id,name FROM Account];
}
public List<SelectOption> getAccounnames()
{
List<SelectOption> accOptions= new List<SelectOption>();
for(Account acc2:acc)
{
accOptions.add(new selectOption(acc2.id,acc2.name));
}
return accOptions;
}
public List<cContact> conload()
{
ist= new List<cContact>();
for(Contact a:[SELECT id,name,email from Contact where Account.Id=:val])
{
ist.add(new cContact(a));
}
return null;
}
public void addContact()
{
Contact lc=new Contact(FirstName=fname,LastName=lname,AccountId=val);
try
{
insert lc;
}
catch(Exception e)
{
ApexPages.addMessages(e);
}
conload();
fname='';
lname='';
}
public void deletecon()
{
Contact c1=[select id from Contact where id=:index];
delete c1;
conload();
}
public PageReference sendmail()
{
List<Contact> selectedContacts = new List<Contact>();
//System.debug(selected + 'abc');
for(cContact cCon :ist)
{
if(cCon.selected==true)
{
selectedContacts.add(cCon.con);
}
}
System.debug('These are the selected Contacts…');
for(Contact con : selectedContacts)
{
string conEmail = con.Email;
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toAddresses = new String[] {conEmail};
mail.setToAddresses(toAddresses);
mail.setReplyTo('huria.99.anuj@gmail.com');
mail.setSenderDisplayName('Salesforce Support');
mail.setSubject('New Case Created : ' + case.Id);
mail.setBccSender(false);
mail.setUseSignature(false);
mail.setPlainTextBody('Thank for Contacting');
mail.setHtmlBody('Thank for Contacting');
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
}
return null;
}
public class cContact
{
public Contact con {get; set;}
public Boolean selected {get; set;}
public cContact(Contact c)
{
con = c;
selected = false;
}
}
}