@isTest private class RentalApplyControllerTest { @TestSetup static void makeData(){ List sobjList = new List(); sobjList.add('Rental_Apply__c'); sobjList.add('Contact'); TestDataUtility.CreatePIPolicyConfigurations(sobjList); } static testMethod void testMethod1() { String userMode = 'classic';//classic lightning String objectType = 'Contact'; String recordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Doctor').getRecordTypeId(); Map detailsMap = new Map(); Map detailsMap2 = new Map(); Map detailsMap3 = new Map(); detailsMap.put('calculated',true); detailsMap.put('autoNumber',false); detailsMap.put('type','address'); detailsMap2.put('calculated',false); detailsMap2.put('autoNumber',false); detailsMap2.put('type','repair'); detailsMap3.put('calculated',false); detailsMap3.put('autoNumber',false); detailsMap3.put('type','repair'); List> componentMapList = new List>(); List> componentMapList2 = new List>(); List> componentMapList3 = new List>(); Map componentMap = new Map(); Map componentMap2 = new Map(); Map componentMap3 = new Map(); componentMap.put('value','Name'); componentMap.put('type','Field'); componentMap.put('details',detailsMap); componentMapList.add(componentMap); componentMap2.put('value','Name'); componentMap2.put('type','Field'); componentMap2.put('details',detailsMap2); componentMapList2.add(componentMap2); componentMap3.put('value','LastName'); componentMap3.put('type','Field'); componentMap3.put('details',detailsMap3); componentMapList3.add(componentMap3); List> layoutComponentsList = new List>(); Map layoutComponents = new Map(); layoutComponents.put('layoutComponents',componentMapList); layoutComponents.put('label','Address'); layoutComponents.put('placeholder',true); layoutComponents.put('editableForNew',true); layoutComponents.put('required',false); layoutComponentsList.add(layoutComponents); Map layoutComponents2 = new Map(); layoutComponents2.put('layoutComponents',componentMapList2); layoutComponents2.put('label','Repair'); layoutComponents2.put('placeholder',true); layoutComponents2.put('editableForNew',true); layoutComponents2.put('required',false); layoutComponentsList.add(layoutComponents2); Map layoutComponents3 = new Map(); layoutComponents3.put('layoutComponents',componentMapList3); layoutComponents3.put('label','Repair'); layoutComponents3.put('placeholder',true); layoutComponents3.put('editableForNew',true); layoutComponents3.put('required',false); layoutComponentsList.add(layoutComponents3); List> itemList = new List>(); Map item = new Map(); item.put('layoutItems',layoutComponentsList); itemList.add(item); List> sectionList = new List>(); Map section = new Map(); section.put('heading',''); section.put('useHeading',true); section.put('columns',1); section.put('useCollapsibleSection',true); section.put('layoutRows',itemList); sectionList.add(section); Map layoutSection = new Map(); layoutSection.put('layouts','123'); layoutSection.put('editLayoutSections',sectionList); String layoutSectionJson = JSON.serialize(layoutSection); Test.setMock(HttpCalloutMock.class, new TestDataUtility.BaseHttpMock(layoutSectionJson,'OK','200')); Test.startTest(); String url = ApexPages.currentPage().getParameters().put('Name','test'); url = ApexPages.currentPage().getParameters().put('Name','test'); url = ApexPages.currentPage().getParameters().put('CF00N10000008ps61_lkid','test'); url = ApexPages.currentPage().getParameters().put('CF00N10000003Mp1d_lkid','test'); url = ApexPages.currentPage().getParameters().put('CF00N10000003O3V6_lkid','test'); url = ApexPages.currentPage().getParameters().put('CF00N10000003Mp2R_lkid','test'); url = ApexPages.currentPage().getParameters().put('00N10000003Msk0','test'); url = ApexPages.currentPage().getParameters().put('00N10000003Msk5','test'); url = ApexPages.currentPage().getParameters().put('00N100000098amW','test'); url = ApexPages.currentPage().getParameters().put('00N10000003OJzc','test'); ApexPages.StandardController scc = new ApexPages.StandardController(new Rental_Apply__c()); RentalApplyController racc = new RentalApplyController(scc); Test.stopTest(); } static testMethod void testMethod2() { String raJson = '{\"HP_received_sign_rich__c\":\"\",\"Name\":\"123456\",\"OPDPlan__c\":\"000000000000000\",\"GI_Diff__c\":\"\",\"Add_Approval_Status__c\":\"\",\"ApplyPerson_Phone__c\":\"\",\"Person_In_Charge__c\":\"0050l000005vPbu\",\"Loaner_centre_mail_address__c\":\"\",\"applyUser__c\":\"0050l000005vPbu\",\"Cross_Region_Assign__c\":\"\",\"Priority_Inspect__c\":false,\"SalesdeptSelect__c\":\"医疗东北营业本部\",\"RecordTypeId\":\"01210000000RHIi\",\"Zsq_Rental_Apply__c\":\"000000000000000\",\"Asset_return_time_OK__c\":\"\",\"Hospital__c\":\"0010l00001PQFkh\",\"Loaner_medical_Staff__c\":\"0030l00000mFW7G\",\"Strategic_dept__c\":\"0010l00001PQFkh\",\"Phone_number__c\":\"***********\",\"Account__c\":\"0010l00001PQFkh\",\"Demo_purpose1__c\":\"产品试用\",\"Repair__c\":\"000000000000000\",\"NoOpp_Reason__c\":\"\",\"Product_category__c\":\"GI\",\"Follow_UP_Opp__c\":\"000000000000000\",\"Campaign__c\":\"000000000000000\",\"Follow_pcl_status2_Text__c\":\"\",\"QIS_number__c\":\"000000000000000\",\"Statu_Achievements__c\":\"000000000000000\",\"QISRepair__c\":\"000000000000000\",\"CrinicalTrialName__c\":\"\",\"DB_loaner_request__c\":\"\",\"IsJump__c\":false,\"AgreementBorrowingExtensionDate__c\":\"\",\"JumpCause__c\":\"\",\"NewRepair__c\":\"000000000000000\",\"IsJump_Rental__c\":false,\"JumpCause_Rental__c\":\"\",\"JumpDate_Rental__c\":\"\",\"Demo_purpose_text__c\":\"dfasvq\",\"Hope_Lonaer_date_Num__c\":\"3\",\"Request_return_day__c\":\"2022/03/27\",\"Shipment_address__c\":\"000000000000000\",\"direct_send__c\":\"上门自提\",\"Dealer__c\":\"000000000000000\",\"pickup_time__c\":\"2022/03/24 17:44\",\"Loaner_received_staff__c\":\"test\",\"Loaner_received_staff_phone__c\":\"1234567890\",\"direct_shippment_address__c\":\"**********\",\"Post_Code__c\":\"12345-123\",\"Old_Rental_Apply__c\":\"000000000000000\",\"Split_Apply_Reason__c\":\"\",\"HP_received_sign_day__c\":\"\",\"HP_received_sign_NG__c\":false,\"HP_received_sign_NG_Reason__c\":\"\",\"AssetManageConfirm__c\":false,\"Cancel_Reason__c\":\"\",\"Loaner_cancel_request__c\":\"\",\"Cancel_time__c\":\"\",\"HP_received_sign_NewDate__c\":\"\",\"Rental_Received_Day__c\":\"\",\"Add_Request_demo_time__c\":\"\",\"Add_Request_approval_time__c\":\"\",\"ExtensionStatus__c\":\"\",\"ExtensionSuccessTimes__c\":\"\",\"ExtensionApplicationTime_Initial__c\":\"\",\"ExtensionApprovalTime_Initial__c\":\"\",\"ExtensionApplicationTime_Final__c\":\"\",\"ExtensionApprovalTime_Final__c\":\"\",\"Repair_Final_Inspection_Date__c\":\"\",\"All_Delivery_Flag_c__c\":false,\"Request_demo_time__c\":\"\",\"Request_approval_time__c\":\"\",\"Application_accept_time__c\":\"\",\"Request_answer_time__c\":\"\",\"HP_City__c\":\"Abejones\",\"OwnerId\":\"0050l000005vPbu\",\"OPD__c\":\"000000000000000\",\"OPDAmount__c\":\"\",\"IsOPD_Account__c\":\"\",\"OriginalOpdPlanApplication__c\":\"\",\"demo_purpose2__c\":\"试用(无询价)\",\"ToAgency__c\":\"大连\",\"Loaner_cancel_reason__c\":\"_\\u0001_\",\"Phone_Number_Encrypt__c\":\"415f2dab7eb6b2a866e02d823080a845\",\"Direct_Shippment_Address_Encrypt__c\":\"2df1bc4bf3800c5e05e3d9f394c3446567d1f05482d2295650b7b50e9e4aa97a92338985c9693f576e1e6df667aaee46\",\"AWS_Data_Id__c\":\"956621521466425345\"}'; // Map fieldValueMap = (Map)JSON.deserializeStrict(raJson, Map.class); // Map fieldValueMap = (Map)JSON.deserializeUntyped(raJson); // Rental_Apply__c rentalApplyInfo = new Rental_Apply__c(); // Map schemaMap = Schema.getGlobalDescribe(); // Schema.SObjectType rentalApplySchema = schemaMap.get('Rental_Apply__c'); // Map fieldAPIToTypeMap = rentalApplySchema.getDescribe().fields.getMap(); // for(String fieldAPI :fieldValueMap.keySet()){ // Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType(); // String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); // if(String.isBlank(fieldValue)){ // continue; // } // if(String.valueOf(fielddataType)=='DATE'){ // System.debug('DATE fieldAPI = '+fieldAPI+' filedData = '+String.valueOf(fieldValueMap.get(fieldAPI))); // // rentalApplyInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-'))); // rentalApplyInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-'))); // }else if(String.valueOf(fielddataType)=='DATETIME'){ // String dt = String.valueOf(fieldValueMap.get(fieldAPI)); // if(String.isNotBlank(dt)&&dt.contains('T')){ // dt = dt.replace('T',' '); // rentalApplyInfo.put(fieldAPI, Datetime.valueOfGmt(dt)); // }else if(String.isNotBlank(dt)) { // //rentalApplyInfo.put(fieldAPI, Datetime.valueOf(dt)); // dt = dt.replace('/', '-') + ':00'; // System.debug('dt = ' + dt); // rentalApplyInfo.put(fieldAPI, Datetime.valueOf(dt)); // }else{ // rentalApplyInfo.put(fieldAPI, null); // } // }else if(String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){ // rentalApplyInfo.put(fieldAPI, Decimal.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)))); // } else if(String.valueof(fielddataType)=='BOOLEAN'){ // rentalApplyInfo.put(fieldAPI, fieldValueMap.get(fieldAPI)); // }else { // rentalApplyInfo.put(fieldAPI, String.valueOf(fieldValueMap.get(fieldAPI))); // } // } // insert rentalApplyInfo; Test.startTest(); RentalApplyController.saveRentalApply(raJson,'savdqerva',true); Test.stopTest(); } static testMethod void testMethod3() { Rental_Apply__c ra = TestDataUtility.CreateRentalApplys(1)[0]; String raJson = JSON.serialize(ra); Test.setMock(HttpCalloutMock.class, new TestDataUtility.CreateMetaDataUtilityHttpMock()); Test.startTest(); System.debug('ra--------'+ra); ApexPages.StandardController sc = new ApexPages.StandardController(ra); RentalApplyController rac = new RentalApplyController(sc); Test.stopTest(); } static testMethod void testMethod4() { Rental_Apply__c ra = TestDataUtility.CreateRentalApplys(1)[0]; String raJson = '{\"HP_received_sign_rich__c\":\"\",\"Name\":\"123456\",\"OPDPlan__c\":\"000000000000000\",\"GI_Diff__c\":\"\",\"Add_Approval_Status__c\":\"\",\"ApplyPerson_Phone__c\":\"\",\"Person_In_Charge__c\":\"0050l000005vPbu\",\"Loaner_centre_mail_address__c\":\"\",\"applyUser__c\":\"0050l000005vPbu\",\"Cross_Region_Assign__c\":\"\",\"Priority_Inspect__c\":false,\"SalesdeptSelect__c\":\"医疗东北营业本部\",\"RecordTypeId\":\"01210000000RHIi\",\"Zsq_Rental_Apply__c\":\"000000000000000\",\"Asset_return_time_OK__c\":\"\",\"Hospital__c\":\"0010l00001PQFkh\",\"Loaner_medical_Staff__c\":\"0030l00000mFW7G\",\"Strategic_dept__c\":\"0010l00001PQFkh\",\"Phone_number__c\":\"***********\",\"Account__c\":\"0010l00001PQFkh\",\"Demo_purpose1__c\":\"产品试用\",\"Repair__c\":\"000000000000000\",\"NoOpp_Reason__c\":\"\",\"Product_category__c\":\"GI\",\"Follow_UP_Opp__c\":\"000000000000000\",\"Campaign__c\":\"000000000000000\",\"Follow_pcl_status2_Text__c\":\"\",\"QIS_number__c\":\"000000000000000\",\"Statu_Achievements__c\":\"000000000000000\",\"QISRepair__c\":\"000000000000000\",\"CrinicalTrialName__c\":\"\",\"DB_loaner_request__c\":\"\",\"IsJump__c\":false,\"AgreementBorrowingExtensionDate__c\":\"\",\"JumpCause__c\":\"\",\"NewRepair__c\":\"000000000000000\",\"IsJump_Rental__c\":false,\"JumpCause_Rental__c\":\"\",\"JumpDate_Rental__c\":\"\",\"Demo_purpose_text__c\":\"dfasvq\",\"Hope_Lonaer_date_Num__c\":\"3\",\"Request_return_day__c\":\"2022/03/27\",\"Shipment_address__c\":\"000000000000000\",\"direct_send__c\":\"上门自提\",\"Dealer__c\":\"000000000000000\",\"pickup_time__c\":\"2022/03/24 17:44\",\"Loaner_received_staff__c\":\"test\",\"Loaner_received_staff_phone__c\":\"1234567890\",\"direct_shippment_address__c\":\"**********\",\"Post_Code__c\":\"12345-123\",\"Old_Rental_Apply__c\":\"000000000000000\",\"Split_Apply_Reason__c\":\"\",\"HP_received_sign_day__c\":\"\",\"HP_received_sign_NG__c\":false,\"HP_received_sign_NG_Reason__c\":\"\",\"AssetManageConfirm__c\":false,\"Cancel_Reason__c\":\"\",\"Loaner_cancel_request__c\":\"\",\"Cancel_time__c\":\"\",\"HP_received_sign_NewDate__c\":\"\",\"Rental_Received_Day__c\":\"\",\"Add_Request_demo_time__c\":\"\",\"Add_Request_approval_time__c\":\"\",\"ExtensionStatus__c\":\"\",\"ExtensionSuccessTimes__c\":\"\",\"ExtensionApplicationTime_Initial__c\":\"\",\"ExtensionApprovalTime_Initial__c\":\"\",\"ExtensionApplicationTime_Final__c\":\"\",\"ExtensionApprovalTime_Final__c\":\"\",\"Repair_Final_Inspection_Date__c\":\"\",\"All_Delivery_Flag_c__c\":false,\"Request_demo_time__c\":\"\",\"Request_approval_time__c\":\"\",\"Application_accept_time__c\":\"\",\"Request_answer_time__c\":\"\",\"HP_City__c\":\"Abejones\",\"OwnerId\":\"0050l000005vPbu\",\"OPD__c\":\"000000000000000\",\"OPDAmount__c\":\"\",\"IsOPD_Account__c\":\"\",\"OriginalOpdPlanApplication__c\":\"\",\"demo_purpose2__c\":\"试用(无询价)\",\"ToAgency__c\":\"大连\",\"Loaner_cancel_reason__c\":\"_\\u0001_\",\"Phone_Number_Encrypt__c\":\"415f2dab7eb6b2a866e02d823080a845\",\"Direct_Shippment_Address_Encrypt__c\":\"2df1bc4bf3800c5e05e3d9f394c3446567d1f05482d2295650b7b50e9e4aa97a92338985c9693f576e1e6df667aaee46\",\"AWS_Data_Id__c\":\"'+ra.AWS_Data_Id__c+'\"}'; System.debug('ra.AWS_Data_Id__c------'+ra.AWS_Data_Id__c); Test.startTest(); RentalApplyController.saveRentalApply(raJson,'savdqerva',false); Test.stopTest(); } }