You need to sign in to do that
Don't have an account?
Praveen Bonalu
Test class for the dynamic controller (Please help)
Hi ,
I have written a visual force page and a controller to search the records dynamically when the string is given in the box.
I am not pretty much sure how to write a test class for it.
Here is the controller :
I have written a visual force page and a controller to search the records dynamically when the string is given in the box.
I am not pretty much sure how to write a test class for it.
Here is the controller :
public with sharing class TW_SearchEngineController{ public String selectedObject{get;set;} public pagereference retrieveObjName() { return null; } public String testresult{get; set; } private String queryFields_position = 'Branch__c,Department__c,Id,Name,Recruiter__c,Region__c,Status__c '; private String queryFields_applicant = 'City__c,Email__c,First_Name__c,Id,Last_Name__c,Position__c,Progess__c,Province__c '; private String queryFields_recruiting = 'Id,Confidential_Posting__c,Location__c,Name__c,Notes__c '; //Retrieve Applicant fields public String a_fName{get; set;} public String a_lName{get; set;} public String a_province{get; set;} //Retrive Position fields public String p_Title {get;set;} public String p_Dept {get;set;} public String p_reg {get;set;} //Retrive the Recruiting Resource fields public String r_ResName {get;set;} public String r_ResLoc {get;set;} public pageReference retrieveApplicants() { system.debug('Applicant Entered'); selectedObject = 'Applicant'; runQuery(); return null; } public pageReference retrievePositions() { system.debug('title: '+p_Title+' Dept: '+p_Dept+' region: '+p_reg); system.debug('Position Entered'); selectedObject = 'Position'; runQuery(); return null; } public pageReference retrieveRecruitingResources() { system.debug('Recruiting Resources Entered'); selectedObject = 'Recruiting Resources'; runQuery(); return null; } // get locations picklist values locations from recruiting Resources public List<SelectOption> getlocations() { List<SelectOption> options = new List<SelectOption>(); Schema.DescribeFieldResult fieldResult = Job_Posting_Site__c.Location__c.getDescribe(); List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues(); for( Schema.PicklistEntry f : ple) { options.add(new SelectOption(f.getLabel(), f.getValue())); } return options; } // get regions picklist values from positions public List<SelectOption> getRegions() { List<SelectOption> options = new List<SelectOption>(); Schema.DescribeFieldResult fieldResult = Position__c.Region__c.getDescribe(); List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues(); for( Schema.PicklistEntry f : ple) { options.add(new SelectOption(f.getLabel(), f.getValue())); } return options; } // get regions picklist values from positions public List<SelectOption> getbranches() { List<SelectOption> options = new List<SelectOption>(); Schema.DescribeFieldResult fieldResult = Position__c.Branch__c.getDescribe(); List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues(); for( Schema.PicklistEntry f : ple) { options.add(new SelectOption(f.getLabel(), f.getValue())); } return options; } //get department picklist values from position public List<SelectOption> getDepartments() { List<SelectOption> options = new List<SelectOption>(); Schema.DescribeFieldResult fieldResult = Position__c.Department__c.getDescribe(); List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues(); for( Schema.PicklistEntry f : ple) { options.add(new SelectOption(f.getLabel(), f.getValue())); } return options; } //get Type picklist values from Recruting Resources // public List<SelectOption> getRecRes() { List<SelectOption> options = new List<SelectOption>(); Schema.DescribeFieldResult fieldResult = Job_Posting_Site__c.Type__c.getDescribe(); List<Schema.PicklistEntry> ple = fieldResult.getPicklistValues(); for( Schema.PicklistEntry f : ple) { options.add(new SelectOption(f.getLabel(), f.getValue())); } return options; } public List<Job_Posting_Site__c> rList {get; set;} public List<Candidate__c> aList {get; set;} public List<Position__c> pList {get; set;} public void runQuery() { system.debug('Entered runQuery'); rList = new List<Job_Posting_Site__c>(); aList = new List<Candidate__c>(); pList = new List<Position__c>(); system.debug('*****'+selectedObject); if(selectedObject == '--None--') { system.debug('None entered'); if(aList != null)aList.clear(); if(pList != null)pList.clear(); if(rList != null)rList.clear(); } else if(selectedObject == 'Applicant') { system.debug('Applicant entering'); if(String.isEmpty(a_fName) && String.isEmpty(a_lName) && String.isEmpty(a_province)) return; system.debug('****'+(String.isEmpty(a_fName) || String.isEmpty(a_lName) || String.isEmpty(a_province))); setCon = null; //aList = Database.query('select '+queryFields_applicant + ' from Candidate__c limit 20'); aList = (List<Candidate__c>) setCon.getRecords(); if(pList != null)pList.clear(); if(rList != null)rList.clear(); } else if (selectedObject == 'Position'){ system.debug('position entering1'); system.debug('title: '+p_Title +' Dept: '+p_Dept+' Region: '+p_reg); if(String.isEmpty(p_Title) && String.isEmpty(p_Dept) && String.isEmpty(p_reg)) return; system.debug('position entering2'); setCon = null; pList = (List<Position__c>) setCon.getRecords(); //pList = Database.query('select '+queryFields_position + ' from Position__c limit 20'); if(aList != null)aList.clear(); if(rList != null)rList.clear(); } else if (selectedObject == 'Recruiting Resources'){ system.debug('Recruiting Resources entering'); if(String.isEmpty(r_ResName) && String.isEmpty(r_ResLoc)) return; setCon = null; rList = (List<Job_Posting_Site__c>) setCon.getRecords(); //rList = Database.query('select '+queryFields_recruiting + ' from Job_Posting_Site__c limit 20'); if(pList != null)pList.clear(); if(aList != null)aList.clear(); } if(aList != null) system.debug('applicant records retrieved'+ aList.size()); if(rList != null) system.debug('recruiting records retrieved'+ rList.size()); if(pList != null) system.debug('position records retrieved'+ pList.size()); } private String prepareQuery(String obj, String fields, String[] fieldNames, String[] fieldValues) { String str = ''; Integer a = fieldNames.size(); Integer b = fieldValues.size(); if(a == b){ str += 'Select '+fields+ ' from '+obj+' where '; for(Integer i = 0; i < a; i++){ str += fieldNames[i] + ' like \''+fieldValues[i]+'%\' '; if(i != a-1) str+= ' and '; } } return str; } public ApexPages.StandardSetController setCon { get { String soql = ''; List<String> selectedFields = new List<String>(); List<String> fieldValues = new List<String>(); if(selectedObject == 'Applicant'){ selectedFields = new String[]{'First_Name__c','Last_Name__c', 'Province__c'}; fieldValues = new String[]{a_fName,a_lName,a_province}; soql = prepareQuery('Candidate__c', queryFields_applicant, selectedFields, fieldValues); system.debug('Applicant'+soql); } else if(selectedObject == 'Position') { selectedFields = new String[]{'name','Department__c', 'Region__c'}; if(p_reg!= null) p_reg = p_reg.contains('None') ? '' : p_reg; if(p_Dept!= null) p_Dept = p_Dept.contains('None') ? '' : p_Dept; fieldValues = new String[]{p_Title,p_Dept,p_reg}; soql = prepareQuery('Position__c', queryFields_position, selectedFields, fieldValues); } else if(selectedObject == 'Recruiting Resources') { selectedFields = new String[]{'Name__c'}; fieldValues = new String[]{r_ResName}; soql = prepareQuery('Job_Posting_Site__c', queryFields_recruiting, selectedFields, fieldValues); } if(setCon == null) { try{ system.debug('soql prepared: '+soql); setCon = new ApexPages.StandardSetController(Database.getQueryLocator(soql)); setCon.setPageSize(5); } catch (Exception e){ system.debug(e.getMessage()); } } return setCon; } set; } // returns the first page of records public void first() { setCon.first(); if (selectedObject == 'Position')pList = setCon.getRecords(); else if (selectedObject == 'Recruiting Resources')rList = setCon.getRecords(); else if (selectedObject == 'Applicant')aList = setCon.getRecords(); } // returns the last page of records public void last() { setCon.last(); if (selectedObject == 'Position')pList = setCon.getRecords(); else if (selectedObject == 'Recruiting Resources')rList = setCon.getRecords(); else if (selectedObject == 'Applicant')aList = setCon.getRecords(); } // returns the previous page of records public void previous() { setCon.previous(); if (selectedObject == 'Position')pList = setCon.getRecords(); else if (selectedObject == 'Recruiting Resources')rList = setCon.getRecords(); else if (selectedObject == 'Applicant')aList = setCon.getRecords(); } // returns the next page of records public void next() { setCon.next(); if (selectedObject == 'Position')pList = setCon.getRecords(); else if (selectedObject == 'Recruiting Resources')rList = setCon.getRecords(); else if (selectedObject == 'Applicant')aList = setCon.getRecords(); } public list<Schema.Picklistentry> getEntries(){ return Position__c.fields.Region__c.getDescribe().getpicklistvalues(); } }