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
steve456steve456 

Test Class for a controller class-----Very Urgent

 

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