Im getting the error 'System.NullPointerException: Argument cannot be null' when I run my test class, in the below test method.
/*
* update a existing report
*/
static testMethod void test_updateExistingReport(){
if (!setupComplete){
setupTestData();
}
Report__c rsReport = [SELECT Id, Name, Date_Filter__c, Report_Settings__c, EndDate__c, StartDate__c FROM Report__c WHERE Id=:report.Id LIMIT 1];
System.Test.setCurrentPage(new PageReference('/apex/x?sel-parent-grc__risk__c=grc__Business_Unit__c,grc__Category__c&sel-risk__risk_assessment__c=Risk__Risk_Assessment_Date__c,Risk__Inherent_Rating__c,Risk__Residual_Rating__c&selectedBusinessUnitId='+newBusinessUnit.Id));
CreateReportController cls = new CreateReportController(new ApexPages.standardController(rsReport));
for (ReportHelper.RelatedList rList : cls.relatedList){ //ERROR
if (rList.objectName.toLowerCase() == 'risk__risk_assessment__c'){
rList.isSelected = true;
}
}
cls.reportFilters[0].selectedField = 'grc__category__c';
cls.reportFilters[0].selectedOperator = 'equals';
cls.reportFilters[0].obj.put('grc__category__c','Operational');
cls.reportFilters[0].isCustomField = true;
cls.reportFilters[0].isLookorPickOrDate = true;
cls.reportFilters[0].isDependentOrMultiPick = false;
cls.selectedDateFilterField = 'grc__last_review_date__c';
cls.saveReport();
Report__c newReport = [SELECT Id, Name, Date_Filter__c, Report_Settings__c, EndDate__c, StartDate__c FROM Report__c WHERE Id=:report.Id LIMIT 1];
System.assertEquals('grc__last_review_date__c',newReport.Date_Filter__c);
System.assertEquals(System.today().addDays(-15), newReport.StartDate__c);
System.assert(newReport.Report_Settings__c != null);
}
Error shows up in the for loop in the above test method (Marked as '//ERROR' at the end of the line)
I wonder my method in the class should be changed. Below is my method in the class.
public PageReference validateFilters(){
// check the columns
// Parent Object
parentObj = ReportHelper.UpdateFields(parentObj, String.escapeSingleQuotes(ApexPages.currentPage().getParameters().get('sel-parent-grc__risk__c')), parentObj.objName);
// Related List
for (ReportHelper.RelatedList rList : relatedList){
if (rList.isSelected){
rList.fieldsList = ReportHelper.UpdateFields(rList.fieldsList, String.escapeSingleQuotes(ApexPages.currentPage().getParameters().get('sel-'+rList.objectName.toLowerCase())), rList.objectName);
}
}
if (objName == parentObj.objName){
updateFitler(reportFilters.get(filterNo-1));
}else{
for (ReportHelper.RelatedList rList : relatedList){
if (objName == rList.objectName){
updateFitler(rList.relatedListFilters.get(filterNo-1));
}
}
}
return null;
}
How can I fix this exception ?