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
Neha KakrooNeha Kakroo 

Can somebody pls help with the test class for the below code?

public with sharing class ctrl_MultiSelectPickList 
{
    public String Label{get; set;}
    
    public List<String> selected{get; set;}
    public List<String> deselected{get; set;}

    public SelectOption Available { get; set; }
    public SelectOption Chosen { get; set; }
    
    private List<SelectOption> selectedOptions = null;
    private List<SelectOption> AllOptions = null;

    // A Reference list (all options)
    List<Options> opt{get; set;}
 
    public List<SelectOption> getselectedOptions()
    {
        return selectedOptions;
    }
    public void setselectedOptions(List<SelectOption> value)
    {
        selectedOptions = value;
    }

    public List<SelectOption> getAllOptions()
    {
        return AllOptions;
    }
    
    public void setAllOptions(List<SelectOption> value)
    {
        AllOptions = value;
    }


    private class Options
    {
        public Integer Index{get; set;}
        public String Item{get; set;}
    }

    public ctrl_MultiSelectPickList()
    {
        System.Debug('Amritaa Calling constructor ctrl_MultiSelectPickList()');
        selected = new List<String>();
        deselected = new List<String>();
        
        Available = new SelectOption('Available','Available', true);
        Chosen = new SelectOption('Chosen','Chosen', true);
        
         // A map to store all competitors 
        List<Competitor__c> mapCompetitor = new List<Competitor__c>([SELECT Name FROM Competitor__c ORDER BY Competitor__c.Name ASC]);
        Integer i=0;
        opt = new List<Options>();
        for(Competitor__c comp : mapCompetitor)
        {
            Options tempOpt = new Options();
            tempOpt.Index = i++;
            tempOpt.Item = comp.Name;
            opt.add(tempOpt);
        }    
        
        //System.Debug('Amritaa Exiting constructor ctrl_MultiSelectPickList()');
        
    }

    public void Selecting() 
    {    
        //System.Debug('Amritaa Calling Selecting()');
        //System.Debug('Amritaa selected is : ' + selected);
        //Amrita selected : (Compensation Strategies, Inc., HMX, Conrad Siegel Actuaries, FPL Advisory)
        try
        {
            for(String toSelect: selected) 
            {  
                Integer i = 0;  
                While(i < AllOptions.size()) 
                {  
                    if(AllOptions[i].getvalue()==toSelect) 
                    {   
                        selectedOptions.add(new SelectOption(toSelect,toSelect));   
                        AllOptions.remove(i);
                        break;  
                    }                      
                    i++;  
                } 
            }
            selectedOptions = Sort(selectedOptions); 
            System.Debug('Amritaa chosen box has : ' + selectedOptions);
        }
        catch(Exception exp)
        {
            System.Debug(exp.getMessage());
        }
        //System.Debug('Amritaa Exiting Selecting()');
    }

    public void Deselecting() 
    {  
        //System.Debug('Amritaa Calling Deselecting()');
        //System.Debug('Amritaa de-selecting is : ' + deselected);

        for(String toDeselect: deselected) 
        {              
            Integer i = 0;  
            While(i < selectedOptions.size()) 
            {  
                if(selectedOptions[i].getvalue() == toDeselect) 
                {   
                    AllOptions.add(new SelectOption(toDeselect, toDeselect));   
                    selectedOptions.remove(i);  
                    break;
                }                      
                i++;  
            } 
        }
        AllOptions = sort(AllOptions);  
        //selectedOptions = SortOptionList(selectedOptions); 
        
        //System.Debug('Amritaa Exiting Deselecting()');
    } 
    //Arun
    private List<String> sortList(List<String> competitors) 
    {
        Map<String, String> interimMap = new Map<String, String>();
        List<String> interimList = new List<String>();
        
        for(String comp : Competitors)
        {
            interimMap.put(comp.toUpperCase(), comp);
            interimList.add(comp.toUpperCase());
        }

        interimList.sort();
    
        // purge the initial competitors list
        competitors.clear();
                    
        for(String comp : interimList){
            competitors.add(interimMap.get(comp));
        }
                    
        return competitors;
    }

    //---Arun
    
    public List<SelectOption> Sort(List<SelectOption> lstToSort)
    {
        System.Debug('Original List: ' + lstToSort);
        List<SelectOption> returnList = new List<SelectOption>();

        // Convert SelectOption list To String List
        List<String> convertedList = new List<String>();
        for(SelectOption opt: lstToSort)
        {
            //convertedList.add((opt.getLabel()).toUpperCase()); 
            convertedList.add(opt.getLabel()); 
        }

        
        //convertedList.sort();
        convertedList = sortList(convertedList);
        System.Debug('Convert and Sorted: ' + convertedList);

        // Convert String List to SelectOption list
        for(String strOpt: convertedList)
        {
            returnList.add(new SelectOption(strOpt,strOpt)); 
        }
        System.Debug('Returning: ' + returnList);
        return returnList;
    }
    
    // A method to sort the list of "SelectOption"
    public static List<SelectOption> SortOptionList(List<SelectOption> ListToSort)
    {
        //System.Debug('Amritaa Calling POC SortOptionList()');
    
        if(ListToSort == null || ListToSort.size() <= 1)
        {
            return ListToSort;
        }
            
        List<SelectOption> Less = new List<SelectOption>();
        List<SelectOption> Greater = new List<SelectOption>();
        integer pivot = 0;
        
        // save the pivot and remove it from the list
        SelectOption pivotValue = ListToSort[pivot];
        ListToSort.remove(pivot);
        
        for(SelectOption opt : ListToSort)
        {
            if(opt.getLabel() <= pivotValue.getLabel())
            {
                Less.add(opt);
            }
            else if(opt.getLabel() > pivotValue.getLabel())
            {
                Greater.add(opt);
            }
        }
        List<SelectOption> returnList = new List<SelectOption> ();
        returnList.addAll(SortOptionList(Less));
        returnList.add(pivotValue);
        returnList.addAll(SortOptionList(Greater));
        //System.Debug('Amritaa Exiting POC SortOptionList()');
        
        return returnList; 
    }
    
}