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
karthikarthi 

please help to write the test class as i'm new for development

i'm posting the code of my apex class. can somebody guide me how to write test class for the following.

public class UserSearchResultsController{

    private String txtFirstName;
    private String txtLastName;
    private String queryStr;
    private Id userid;
    public List<User> users;
    public boolean Isrendered {get;Set;}   
    public ID seluser{get;set;}
    public PageReference init(){
        txtFirstName = ApexPages.currentPage().getParameters().get('userfirstname');
        txtLastName = ApexPages.currentPage().getParameters().get('userlastname');
        seluser=ApexPages.currentPage().getParameters().get('id');

        userid = Userinfo.getUserId();
        queryStr = '';
        Isrendered = true;
        return null;
    }
   
    public PageReference doSearch(){
       
        txtFirstName = this.userfirstname;
        txtLastName = this.userlastname;
        system.debug('FirstName:'+txtFirstName);
        userid = Userinfo.getUserId();
        queryStr = '';
        Isrendered = true;
        //**** We can't include % in the URL
        if(txtFirstName.contains('%'))
        {      
        txtFirstName=txtFirstName.replace('%','');
        }
        if(txtLastName.contains('%'))
        {      
        txtLastName=txtLastName.replace('%','');
        }
 
        PageReference Newpage = new PageReference('/apex/SearchWaterCMSUsers?userfirstname=' + txtFirstName + '&userlastname=' + txtLastName);
        Newpage.setRedirect(true);
        return Newpage;
       
    }
 public PageReference Search(){
 
        txtFirstName = this.userfirstname;
        txtLastName = this.userlastname;
        system.debug('FirstName:'+txtFirstName);
        userid = Userinfo.getUserId();
        queryStr = '';
        Isrendered = true;
        //**** We can't include % in the URL
        if(txtFirstName.contains('%'))
        {      
        txtFirstName=txtFirstName.replace('%','');
        }
        if(txtLastName.contains('%'))
        {      
        txtLastName=txtLastName.replace('%','');
        }
 
        PageReference Newpage = new PageReference('/apex/changemanager?userfirstname=' + txtFirstName + '&userlastname=' + txtLastName+'&id='+seluser);
        Newpage.setRedirect(true);
        return Newpage;
       
    }

 
   
    public String userfirstname{
        get{return txtFirstName;}
        set{this.txtFirstName = value;}
    }
   
    public String userlastname{
        get{return this.txtLastName;}
        set{this.txtLastName = value;}
    }
   
 
  
    public List<User> getalluserssvisible(){
        String q = this.getqueryStringUser();
      //system.debug('Length:'+q.length());
        if(q != ''){          
            users = database.query(q);
            return users;   
        } else {
            return null;
        }
    }
   
    private String getqueryStringUser(){
        try
        {
        if(txtFirstName !=null){
            queryStr = 'select id, name,firstname,lastname,email from User u where u.Profile.Name = \'GE_PW WCMS Sales\'';
                   if(txtFirstName.length() > 0) queryStr = queryStr + ' and firstname like \''+txtFirstName+'%\'';
                   if(txtLastName.length() > 0) queryStr = queryStr + ' and lastname like \''+txtLastName+'%\'';
            queryStr = queryStr + ' order by firstname';
            queryStr = queryStr + ' limit 25';
            system.debug('Query String:'+queryStr);}
         else
         { queryStr=''; }
         return queryStr;
        }
        catch (Exception e)
        {
                   return null;
        }   
    }
 
}

Best Answer chosen by Admin (Salesforce Developers) 
kiranmutturukiranmutturu

Try this I got 91%...

 

@isTest
private class testmine{
    static testmethod void mytest(){
    
        UserSearchResultsController obj = new UserSearchResultsController();
        ApexPages.currentPage().getParameters().put('userfirstname', '%sa');
        ApexPages.currentPage().getParameters().put('userlastname', '%sa');
        obj.init();
        obj.doSearch();
        obj.Search();
        obj.userfirstname = 'test';
        obj.userlastname= 'test';
        obj.getalluserssvisible();
        
    
    }
}

 

All Answers

kiranmutturukiranmutturu

Try this I got 91%...

 

@isTest
private class testmine{
    static testmethod void mytest(){
    
        UserSearchResultsController obj = new UserSearchResultsController();
        ApexPages.currentPage().getParameters().put('userfirstname', '%sa');
        ApexPages.currentPage().getParameters().put('userlastname', '%sa');
        obj.init();
        obj.doSearch();
        obj.Search();
        obj.userfirstname = 'test';
        obj.userlastname= 'test';
        obj.getalluserssvisible();
        
    
    }
}

 

This was selected as the best answer
karthikarthi

thanks Kiran. i'm also getting 91% code coverage