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

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;
}
}