can anyone tell me how to cover the below method.
private static void processActionPlan(Workbook workbook) {
Map<String, Schema.SObjectField> objectFieldMap = ObjectDescriptionUtility.getFields('Action_Planning_ICIP__c');
Map<String, ActionPlanMapping__c> fieldMap = new Map<String, ActionPlanMapping__c>();
for(ActionPlanMapping__c p : ActionPlanMapping__c.getAll().values()) { fieldMap.put(p.Name, p); }
Id recordTypeId = SFRecordTypes.getId('Action_Planning_ICIP__c', 'HOCAI Action Plan (HOCAI) & Budget');
AggregateResult [] ar = [SELECT count(Id) recCount FROM Action_Planning_ICIP__c WHERE Related_HOCAI__c=: recordId];
Integer apNumber = (Integer)ar[0].get('recCount') +1;
List<Action_Planning_ICIP__c> actionPlans = new List<Action_Planning_ICIP__c>();
for(Sheet sheet : workbook.sheets) {
if(sheet.sheet.contains('Action Plan')) {
for(Row row : sheet.rows) {
try {
String actionPlanName = 'Action Plan - ' + apNumber;
Action_Planning_ICIP__c actionPlan = new Action_Planning_ICIP__c(Related_HOCAI__c=recordId, RecordTypeId=recordTypeId);
for(String c : row.columns.keySet()) {
if(fieldMap.containsKey(c)) {
Schema.DisplayType fldType = objectFieldMap.get(fieldMap.get(c).Field_Name__c).getDescribe().getType();
System.debug('----------> fieldName: ' + fieldMap.get(c).Field_Name__c);
System.debug('----------> fieldType: ' + fldType);
String importValue = row.columns.get(c);
if(fldType == Schema.DisplayType.REFERENCE) {
actionPlan.put(fieldMap.get(c).Field_Name__c, importValue);
}else if(fldType == Schema.DisplayType.STRING || fldType == Schema.DisplayType.TEXTAREA) {
actionPlan.put(fieldMap.get(c).Field_Name__c, importValue);
} else if(fldType == Schema.DisplayType.DATE) {
System.debug('--------------> before date parse: ' + importValue);
Date d = Date.parse(importValue);
System.debug('--------------> after date parse: ' + d);
actionPlan.put(fieldMap.get(c).Field_Name__c, d);
} else if(fldType == Schema.DisplayType.CURRENCY) {
Decimal d = Decimal.valueOf(importValue.replace('$','').replace(',',''));
actionPlan.put(fieldMap.get(c).Field_Name__c, d);
} else if(fldType == Schema.DisplayType.PERCENT) {
Decimal p = Decimal.valueOf(importValue);
actionPlan.put(fieldMap.get(c).Field_Name__c, p);
}else if(fldType == Schema.DisplayType.DOUBLE) {
Double d = Double.valueOf(importValue.replace(',',''));
actionPlan.put(fieldMap.get(c).Field_Name__c, d);
}
}
}
my test class is
@isTest
private class CRSImportTest {
static Assessment_Summary__c aSum;
static testMethod void myUnitTest() {
String testData = 'SHEET: 1 - Financial Personnel';
// Start Test
Test.startTest();
createTestData();
Assessment_Summary__c aSumResult = [Select a.Total_Score__c, a.Total_Maximum_Value__c, a.Total_Applicable_Value__c,
a.Total_Actual_Score__c, a.SystemModstamp, a.OwnerId, a.Number_of_Control_Statements__c,
a.Name, a.Maximum_Value_For_Receivables__c, a.Maximum_Value_For_Procurement__c,
a.Maximum_Value_For_Other_Assets__c, a.Maximum_Value_For_Inventory_Management__c,
a.Maximum_Value_For_Internal_Control__c, a.Maximum_Value_For_Fixed_Assets__c,
a.Maximum_Value_For_Financial_Systems__c, a.Maximum_Value_For_Financial_Reporting__c,
a.Maximum_Value_For_Financial_Personnel__c, a.Maximum_Value_For_Doc_RecordKeeping__c,
a.Id, a.Applicable_Value_For_Receivables__c, a.Applicable_Value_For_Procurement__c,
a.Applicable_Value_For_Other_Assets__c, a.Applicable_Value_For_Inventory_Managemen__c,
a.Applicable_Value_For_Internal_Control__c, a.Applicable_Value_For_Fixed_Assets__c,
a.Applicable_Value_For_Financial_Systems__c, a.Applicable_Value_For_Financial_Reporting__c,
a.Applicable_Value_For_Financial_Personnel__c, a.Applicable_Value_For_Doc_RecordKeeping__c,
a.Actual_Score_For_Receivables__c, a.Actual_Score_For_Procurement__c, a.Actual_Score_For_Other_Assets__c,
a.Actual_Score_For_Inventory_Management__c, a.Actual_Score_For_Internal_Control__c,
a.Actual_Score_For_Fixed_Assets__c, a.Actual_Score_For_Financial_Systems__c,
a.Actual_Score_For_Financial_Reporting__c, a.Actual_Score_For_Financial_Personnel__c,
a.Actual_Score_For_Doc_RecordKeeping__c, a.Account__c
From Assessment_Summary__c a where Id = :aSum.Id];
// verify the field Number_of_Control_Statements__c
System.assert( aSumResult.Number_of_Control_Statements__c > 0);
System.assert( aSumResult.Number_of_Control_Statements__c == 27);
ApexPages.StandardController sc = new ApexPages.StandardController(aSum);
CRSImport importController = new CRSImport(sc);
CRSImport.importSheetCSV(aSum.Id, testData);
//CRSImport.importSheet(aSum.Id,ICIPMap.id,testData);
//CRSImport.importSheet(aSum.Id,'',testData);
// Stop Test
Test.stopTest();
}
// create the dummy data
static void createTestData() {
//Custom settings
ActionPlanMapping__c action=new ActionPlanMapping__c(Name='test');
action.Column_Name__c='10';
action.Field_Name__c='6';
insert action;
ICIPMapping__c ICIPMap=new ICIPMapping__c(Name='test');
ICIPMap.Field_Name__c='A75';
insert ICIPMap;
Question_Control_Set__c qSet = new Question_Control_Set__c();
qSet.Is_Active__c = true;
qSet.Control_Statements_For_Financial_Personn__c = 2;
qSet.Control_Statements_For_Financial_Systems__c = 2;
qSet.Control_Statements_For_Internal_Control__c = 2;
qSet.Control_Statements_For_Financial_Report__c = 3;
qSet.Control_Statements_For_Documentation__c = 3;
qSet.Control_Statements_For_Inventory_Mgmt__c = 7;
qSet.Control_Statements_For_Other_Assets__c = 8;
qSet.X3_6__c = 'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq';
qSet.Maximum_Value_10_10__c = 2;
qSet.Maximum_Value_1_10__c = 3;
qSet.Maximum_Value_2_10__c = 4;
qSet.Maximum_Value_3_2__c = 5;
qSet.Maximum_Value_3_1__c = 2;
qSet.Maximum_Value_3_3__c = 2;
qSet.Maximum_Value_4_10__c = 6;
qSet.Maximum_Value_9_4__c = 8;
qSet.Maximum_Value_5_6__c = 2;
qSet.Maximum_Value_6_18__c = 4;
insert qSet;
aSum = new Assessment_Summary__c();
//aSum.Name = 'testAssesment';
insert aSum;
// create child records
Financial_Personnel__c fPer = new Financial_Personnel__c();
fPer.Assessment_Summary__c = aSum.Id;
fper.Total_Maximum_Value__c = 4;
fper.Question_Control_Set__c = qSet.Id;
insert fPer;
Financial_Reporting__c fRep = new Financial_Reporting__c ();
fRep.Assessment_Summary__c = aSum.Id;
fRep.Question_Control_Set__c = qSet.Id;
insert fRep;
Documentation_RecordKeeping__c docRec = new Documentation_RecordKeeping__c();
docRec.Assessment_Summary__c = aSum.Id;
docRec.Question_Control_Set__c = qSet.Id;
insert docRec;
Other_Assets_and_Payables__c otherAnP = new Other_Assets_and_Payables__c();
otherAnP.Assessment_Summary__c = aSum.Id;
otherAnp.Question_Control_Set__c = qSet.Id;
insert otherAnP;
Internal_Control__c iCon = new Internal_Control__c ();
iCon.Assessment_Summary__c = aSum.Id;
iCon.Question_Control_Set__c = qSet.Id;
insert iCon;
Financial_Systems__c fSys = new Financial_Systems__c();
fSys.Question_Control_Set__c = qSet.Id;
fSys.Assessment_Summary__c = aSum.Id;
insert fSys;
Inventory_Management__c invenMgmt = new Inventory_Management__c();
invenMgmt.Question_Control_Set__c = qSet.Id;
invenMgmt.Assessment_Summary__c = aSum.Id;
insert invenMgmt;
Action_Planning_ICIP__c actionPlans = new Action_Planning_ICIP__c();
actionPlans.Related_HOCAI__c = aSum.Id;
actionPlans.Related_SRFMP_Assessment__c=aSum.Id;
insert actionPlans;
}
}
for eg private static test(color c)