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
BittusBittus 

Test class to cover list in private method

Hi All,

I am working on a Test Class and not able to cover the list in private method.

Controller:-
----------------
public class addWholesaleForcastController {
    public string selectedYear{get;set;}
    string recordTypeId = '';
    string retURL = '';
    set<String> setRegion = new set<String>();
    public String dbAction{get;set;}
    public addWholesaleForcastController(ApexPages.StandardController controller) {
        getRegions();
        selectedYear = ApexPages.currentPage().getParameters().get('year');
        retURL = ApexPages.currentPage().getParameters().get('retURL');
        List<RecordType> lstRt = [Select Id from RecordType where sObjectType='SalesForecastData__c'
            and DeveloperName='Monthwhl'];
        if(lstRt.size()>0){
            recordTypeId = lstRt[0].Id;
        }
        getWholesaleData();
    }
    public PageReference cancel(){
        PageReference P = new PageReference(retURL);
        return P;
    }
    public PageReference save(){
        try{
            List<SalesForecastData__c> lstData = new List<SalesForecastData__c>();
            if(lstWholesale.size()>0){
                for(Wholesale data:lstWholesale){
                    lstdata.add(data.data);
                }
            }
            if(lstdata.size()>0) upsert lstdata;
            //////////////
            PageReference P = new PageReference(retURL);
            return P;
        }
        catch(Exception ex){
            ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,ex.getMessage()));
            return null;
        }
    }
    public List<Wholesale> lstWholesale{get;set;}
    void getWholesaleData(){
        lstWholesale = new List<Wholesale>();
        if(common.NVL(selectedYear) != ''){
            List<SalesForecastData__c> lstData = [Select Id, Name, Region__c, Region_Text__c,
                Jan__c, Feb__c, Mar__c, Apr__c, May__c, Jun__c, Jul__c, Aug__c, Sep__c,
                Oct__c, Nov__c, Dec__c, Year__c
                from SalesForecastData__c Where Year__c =:selectedYear and RecordtypeId=:recordTypeId];
            if(lstData.size()>0){
                dbAction = 'Update';
                for(SalesForecastData__c data:lstData){
                    lstWholesale.add(new Wholesale(data));
                }
            }
            else{
                dbAction = 'Add';
                if(setRegion.size()>0){
                    for(String rgn:setRegion){
                        SalesForecastData__c data = new SalesForecastData__c();
                        data.Year__c = selectedYear;
                        data.Region__c = rgn;
                        data.RecordtypeId=recordTypeId;
                        lstWholesale.add(new Wholesale(data));
                    }
                }
            }
        }
    }
    void getRegions(){
        setRegion.add('01');
        setRegion.add('02');
        setRegion.add('03');
        setRegion.add('04');
        setRegion.add('05');
        setRegion.add('06');
        setRegion.add('07');
        setRegion.add('08');
        setRegion.add('09');
        setRegion.add('10');
        setRegion.add('11');
        setRegion.add('12');
        setRegion.add('13');
        setRegion.add('14');
        setRegion.add('15');
        setRegion.add('16');
        setRegion.add('Cent');
        setRegion.add('East');
        setRegion.add('None');
        setRegion.add('S&G');
        setRegion.add('West');
    }
    class Wholesale{
        public SalesForecastData__c data{get;set;}
        public Wholesale(SalesForecastData__c data){
            this.data = data;
        }
    }
}

Test Class:-
------------------------
@isTest
public class Test_WholesaleForcast {
static testMethod void Test_WholesaleForcast2(){
        List<RecordType> lstRT2 = [Select Id from RecordType Where DeveloperName='Monthwhl' and sObjectType='SalesForecastData__c'];
        String recordtypeId = 'Monthwhl';
        SalesForecastData__c Sales2 = new SalesForecastData__c(Year__c = '2014');
               insert sales2;
        Test.startTest();
        ApexPages.StandardController sc = new ApexPages.standardController(sales2);
        addWholesaleForcastController  addwhlsale = new addWholesaleForcastController (sc);
        addwhlsale.save();
        addwhlsale.dbAction = 'abc';
        addwhlsale.selectedYear = '2014';
        Test.stopTest();
    }

}
Vivek DeshmaneVivek Deshmane
Hi,
Apply ​@TestVisible annotation to method 

Please let  me know if it works.

Best Regards,
-Vivek
BittusBittus
Thanks for ur reply. Hope it works, but i need to do without using it. For time being, i need to cover the List<SalesForecastData__c> in the below code.

void getWholesaleData(){
        lstWholesale = new List<Wholesale>();
        if(common.NVL(selectedYear) != ''){
            List<SalesForecastData__c> lstData = [Select Id, Name, Region__c, Region_Text__c,
                Jan__c, Feb__c, Mar__c, Apr__c, May__c, Jun__c, Jul__c, Aug__c, Sep__c,
                Oct__c, Nov__c, Dec__c, Year__c
                from SalesForecastData__c Where Year__c =:selectedYear and RecordtypeId=:recordTypeId];
            if(lstData.size()>0){
                dbAction = 'Update';
                for(SalesForecastData__c data:lstData){
                    lstWholesale.add(new Wholesale(data));
                }
            }
            else{
                dbAction = 'Add';
                if(setRegion.size()>0){
                    for(String rgn:setRegion){
                        SalesForecastData__c data = new SalesForecastData__c();
                        data.Year__c = selectedYear;
                        data.Region__c = rgn;
                        data.RecordtypeId=recordTypeId;
                        lstWholesale.add(new Wholesale(data));
                    }
                }