function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Ankit Khurana24Ankit Khurana24 

urgent:how to write test class for class performing pagination

below class shows all contacts on vf page in data table and perform pagination...maxim of 20 records are shown on a page...next,previous,last buttons are provided for navigation

 

public class ContactGrid

{
public Boolean Displayout{get;set;}
public List<Contact> cList {get;set;}
public List<Contact> cppz{get;set;}
public List<Contact> subListCon{get;set;}
public List<Contact> mainListCon{get;set;}
public Id retid{get;set;}
public boolean shownext{get;set;}
public boolean showprevoius{get;set;}
Integer pageNumber{get;set;}
Integer maxPages;

List<Contact> updatedContactList = new List<Contact>();
public ContactGrid(){
cppz = new List<Contact>();
subListCon = new List<Contact>();
mainListCon = new List<Contact>();
shownext = false;
showprevoius = false;
pageNumber = 1;

cppz=[Select c.Phone, c.LastName, c.FirstName, c.Email, c.AccountId From Contact c];
integer remainder = math.MOD(cppz.size(),20);
if(remainder ==0){
maxPages = cppz.size()/20;
}
else{
maxPages = cppz.size()/20+ 1;
}
if(cppz.size()>0)
{

if(cppz.size()>20)
{
for(integer i =0;i<20;i++)
{
Contact chlObj = cppz[i];
subListCon.add(chlObj);
}
shownext = true;
}
else
{
for(Contact chlObj : cppz)
{
subListCon.add(chlObj);
}
shownext = false;
showprevoius = false;
}
for(Contact chlObj : cppz)
{
mainListCon.add(chlObj);
}
}

 

}

public void goToLast()
{
while (shownext)
nextBtnClick();
}

public void nextBtnClick()
{
pageNumber = pageNumber+1;
System.debug('pageNumber----->' + pageNumber);
System.debug('maxPages + '+maxPages);
subListCon = new list<Contact>();
if(pageNumber == maxPages){
System.debug('pageNumber == maxPages ');
for(integer i=((20*pageNumber)-20); i<mainListCon.size(); i++)
{
subListCon.add(mainListCon[i]);
}
shownext = false;
}
else{

for(integer i=((20*pageNumber)-20); i<(20*pageNumber); i++)
{
subListCon.add(mainListCon[i]);
}
}
showprevoius = true;
}


public void previousBtnClick()
{
pageNumber = pageNumber-1;

subListCon = new list<Contact>();
for(integer i=((20*pageNumber)-20); i<(20*pageNumber); i++)
{
subListCon.add(mainListCon[i]);
}
shownext = true;
if(pageNumber == maxPages){
shownext = false;
}
if(pageNumber == 1){
showprevoius = false;
}
else{
showprevoius = true;
}
}

public void saveContact()
{

for(Contact c: subListCon ){
updatedContactList.add(c);
}
if(updatedContactList.size()> 0)
update updatedContactList;
//Displayout = true;
//return null;
}

public pageReference CreateContact()
{
List<Contact> new1= new List<Contact>();
cppz.addall(new1);
return null;
}



}