You need to sign in to do that
Don't have an account?
Test Class for a controller class
Can anybody help me as how do i write a test class for this controller
public with sharing class CheckOutInventoryController {
public Kiosk__c kiosk {get;set;}
public boolean showMainContent {get;Set;}
public List<SelectOption> custodians {get;Set;}
public CheckOutInventoryController(ApexPages.StandardController stdController)
{
//initialize custodian list
custodians = new List<SelectOption>();
custodians.add(new SelectOption('','--None--'));
try
{
this.kiosk=(Kiosk__c)stdController.getRecord();
this.kiosk=[Select Id, Name, Account__c,Account__r.Name, Region__c,Supervisor__c,Market__c,Market__r.General_manager__c,
Market__r.Region__c,Market__r.Region__r.Area_Director__c,Market__r.Region__r.Regional_Manager__c, Market__r.Region__r.Unit_VP__c
from Kiosk__c where Id=:kiosk.Id Limit 1];
//get inventory records associated to kiosk where the location is at Kiosk
List<Inventory__c> avilableInventoryList=[Select Id,Location__c from Inventory__c
where Kiosk__c=:kiosk.Id and Location__c='Kiosk'];
if(avilableInventoryList.size()>0)
{
Set<Id> employeeIdList=new Set<Id>();
Set<Id> managementUserIds=new Set<Id>();
//get supervisor id
if(kiosk.Supervisor__c!=null)
{
employeeIdList.add(kiosk.Supervisor__c);
}
//get upper management user ids
if(kiosk.Market__c!=null)
{
//get market general manager
if(kiosk.Market__r.General_manager__c!=null)
{
managementUserIds.add(kiosk.Market__r.General_manager__c);
}
//if region is not null
if(kiosk.Market__r.Region__c!=null)
{
//get Area Director
if(kiosk.Market__r.Region__r.Area_Director__c!=null)
{
managementUserIds.add(kiosk.Market__r.Region__r.Area_Director__c);
}
//get Regional manager
if(kiosk.Market__r.Region__r.Regional_Manager__c!=null)
{
managementUserIds.add(kiosk.Market__r.Region__r.Regional_Manager__c);
}
//get Unit VP
if(kiosk.Market__r.Region__r.Unit_VP__c!=null)
{
managementUserIds.add(kiosk.Market__r.Region__r.Unit_VP__c);
}
}
}
//build custodian list
List<Employee__c> employeeList=[Select Id, Name,User_Name__c,User_Name__r.Profile.Name,
User_Name__r.UserRoleId,User_Name__r.UserRole.Name from Employee__c where Status__c='Active' and
(Kiosk__c =:kiosk.Id or User_Name__c in:managementUserIds or Id in:employeeIdList) order by Name];
for(Employee__c e:employeeList)
{
//add if supervisor or upper management
if(employeeIdList.contains(e.Id)|| managementUserIds.contains(e.User_Name__c))
{
custodians.add(new SelectOption(e.Id,e.Name));
}
else
{
if(e.User_Name__c!=null)
{
if(e.User_Name__r.Profile.Name.toUpperCase().endsWith('REP')==false)
{
custodians.add(new SelectOption(e.Id,e.Name));
}
}
}
}
if(custodians.size()>1)
{
showMainContent=true;
}
else
{
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.Error,'There are no Custodians Available!'));
}
}
else
{
showMainContent=false;
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.Error,'There are no Inventory Records Available at this Kiosk!'));
}
}
catch(Exception ex)
{
ApexPages.addMessage(new ApexPages.Message(ApexPages.Severity.Error,'Failed to Load Page! You may not have access to the Kiosk!'+ex));
}
}
}