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
DolgoldyDolgoldy 

Stuck in Code coverrage

Hi ,
I Written test class, pass all the data but not getting conerage plz help
below is the class, test classs.
public class RetailLicenseController {
    
    
    
    
    @AuraEnabled
    public static Response createRetailLiscense( String jsonData,String customerID ){
        
        
        // Create a savepoint
        Savepoint savePointRec = Database.setSavepoint();
        
        try{
            
           Map<String,String> mpStatus = new Map<String,String>();
            
            system.debug('<<<<<<<jsonData>>>>>>' + jsonData);
            
            RetailLiscenseDTO objRetailLiscenseDTO = (RetailLiscenseDTO)JSON.deserialize(jsonData, RetailLiscenseDTO.class); 
            
            system.debug('<<<<<<<objRetailLiscenseDTO>>>>>>' + objRetailLiscenseDTO);
            
            
            //DML for Explosive
            
                    
            if( objRetailLiscenseDTO.ExplosiveClass!=null ){
                                
                BPCL_ROIR_License__c explosiveObj = new BPCL_ROIR_License__c() ;
                
                explosiveObj.Customer_name__c = customerID;
                explosiveObj.Certificate_Name__c = 'Explosive';            
                explosiveObj.License_No__c = objRetailLiscenseDTO.ExplosiveClass.ExplosiveLisenceNo;
                explosiveObj.License_Valid_From__c = fromStringToDate ( objRetailLiscenseDTO.ExplosiveClass.ExplosiveFrmDate );
                explosiveObj.License_Valid_Till__c = fromStringToDate ( objRetailLiscenseDTO.ExplosiveClass.ExplosiveTillDate );
                explosiveObj.License_Remarks__c = objRetailLiscenseDTO.ExplosiveClass.ExplosiveRemarks;
                
                insert explosiveObj;
                
                mpStatus.put('Explosive','Success');
                
                
            }
            
            
            //DML for DPSL
            
            if( objRetailLiscenseDTO.DPSLClass != null ){
                
               
                
                BPCL_ROIR_License__c DPSLObj = new BPCL_ROIR_License__c() ;
                
                DPSLObj.Customer_name__c = customerID;
                
                
                DPSLObj.Certificate_Name__c = 'DPSL'; 
                
                DPSLObj.Partners_Proprietor_Name__c = objRetailLiscenseDTO.DPSLClass.DPSLPartnersProprietorNo;
                DPSLObj.License_Valid_From__c =  fromStringToDate ( objRetailLiscenseDTO.DPSLClass.DPSLPartnersProprietorFrmDate ) ;
                DPSLObj.License_Valid_Till__c = fromStringToDate ( objRetailLiscenseDTO.DPSLClass.DPSLPartnersProprietorTillDate );
                DPSLObj.License_Remarks__c = objRetailLiscenseDTO.DPSLClass.DPSLPartnersProprietorRemarks;
                
                insert DPSLObj;
                
                mpStatus.put('DPSL','Success');
            }
            
            
            
            
            //DML for WandMClass
            
            if( objRetailLiscenseDTO.WandMClass != null ){
                
                
                BPCL_ROIR_License__c wandMLObj = new BPCL_ROIR_License__c() ;
                
                wandMLObj.Customer_name__c = customerID;
                
                wandMLObj.Certificate_Name__c = 'W&M'; 
                
                wandMLObj.License_No__c = objRetailLiscenseDTO.WandMClass.WandMLicenseNumber;
                wandMLObj.License_Valid_From__c = fromStringToDate ( objRetailLiscenseDTO.WandMClass.WandMFrmDate );
                wandMLObj.License_Valid_Till__c = fromStringToDate ( objRetailLiscenseDTO.WandMClass.WandMTillDate );
                wandMLObj.License_Remarks__c = objRetailLiscenseDTO.WandMClass.WandMRemarks;
                                
                insert wandMLObj;
                
                mpStatus.put('W&M','Success');
                
            }
            
            
            //DML for Air Guauge Calibration
            
            if( objRetailLiscenseDTO.AirGuaugeCalibrationClass != null ){
                
                
                BPCL_ROIR_License__c airguageObj = new BPCL_ROIR_License__c() ;
                
                airguageObj.Customer_name__c = customerID;
                
                airguageObj.Certificate_Name__c = 'Air Gauge Calibration'; 
                
                airguageObj.License_No__c = objRetailLiscenseDTO.AirGuaugeCalibrationClass.AirGuaugeLicenseNumber;
                airguageObj.License_Valid_From__c = fromStringToDate ( objRetailLiscenseDTO.AirGuaugeCalibrationClass.AirGuaugeFrmDate );
                airguageObj.License_Valid_Till__c = fromStringToDate ( objRetailLiscenseDTO.AirGuaugeCalibrationClass.AirGuaugeTillDate );
                airguageObj.License_Remarks__c = objRetailLiscenseDTO.AirGuaugeCalibrationClass.AirGuaugeRemarks;               
                
                insert airguageObj;
                
                mpStatus.put('AirGaugeCalibration','Success');
                
            }
            
            
            //DML for Trade license            
            
            BPCL_ROIR_License__c  tradeLicenseObj = new BPCL_ROIR_License__c() ;
            
            tradeLicenseObj.Customer_name__c = customerID;
            
            tradeLicenseObj.Certificate_Name__c = 'Trade license'; 
            
            tradeLicenseObj.Name_of_the_License_holder__c = objRetailLiscenseDTO.TradeLicenseClass.TradeLicenseHolderName;
            tradeLicenseObj.License_Valid_From__c = fromStringToDate ( objRetailLiscenseDTO.TradeLicenseClass.TradeLicenseFrmDate );
            tradeLicenseObj.License_Valid_Till__c = fromStringToDate ( objRetailLiscenseDTO.TradeLicenseClass.TradeLicenseTillDate );
            tradeLicenseObj.License_Remarks__c = objRetailLiscenseDTO.TradeLicenseClass.TradeLicenseRemarks;
            
            if( String.isNotBlank( objRetailLiscenseDTO.TradeLicenseClass.TradeLicenseHolderName) ){
                
                insert tradeLicenseObj;
                
                mpStatus.put('Tradelicense','Success');
                
            }
            
            
            //DML for ALPLicenseClass
            
            
            BPCL_ROIR_License__c  ALPObj = new BPCL_ROIR_License__c() ;
            
            ALPObj.Customer_name__c = customerID;
            
            ALPObj.Certificate_Name__c = 'ALPG License'; 
            
            ALPObj.License_No__c = objRetailLiscenseDTO.ALPLicenseClass.ALPLicenseNumber;
            ALPObj.License_Valid_From__c = fromStringToDate ( objRetailLiscenseDTO.ALPLicenseClass.ALPValidFrmDate );
            ALPObj.License_Valid_Till__c = fromStringToDate ( objRetailLiscenseDTO.ALPLicenseClass.ALPValidToDate );
            ALPObj.License_Remarks__c = objRetailLiscenseDTO.ALPLicenseClass.ALPRemarks;
            
            if( String.isNotBlank( objRetailLiscenseDTO.ALPLicenseClass.ALPLicenseNumber) ){
                
                insert ALPObj;
                
                mpStatus.put('ALPGLicense','Success');
                
            }
            
            
            //DML for CNG License
                        
            BPCL_ROIR_License__c  CNGObj = new BPCL_ROIR_License__c() ;
            
            CNGObj.Customer_name__c = customerID;
            
            CNGObj.Certificate_Name__c = 'CNG License'; 
            
            CNGObj.License_No__c = objRetailLiscenseDTO.CNGLicenseClass.CNGLicenseNumber;
            CNGObj.License_Valid_From__c = fromStringToDate ( objRetailLiscenseDTO.CNGLicenseClass.CNGLicenseValidFrmDate );
            CNGObj.License_Valid_Till__c = fromStringToDate ( objRetailLiscenseDTO.CNGLicenseClass.CNGLicenseValidToDate );
            CNGObj.License_Remarks__c = objRetailLiscenseDTO.CNGLicenseClass.CNGRemarks;
            
            if( String.isNotBlank( objRetailLiscenseDTO.CNGLicenseClass.CNGLicenseNumber) ){
                
                insert CNGObj;
                
                mpStatus.put('CNG','Success');
                
            }
            
            
            //DML for PAN
            
            BPCL_ROIR_License__c  PANObj = new BPCL_ROIR_License__c() ;
            
            PANObj.Customer_name__c = customerID;
            
            PANObj.Certificate_Name__c = 'PAN'; 
            
            PANObj.PAN_Number__c = objRetailLiscenseDTO.PANClass.PANNo;
            PANObj.License_Valid_From__c = fromStringToDate ( objRetailLiscenseDTO.PANClass.PANValidFrmDate );
            PANObj.License_Valid_Till__c = fromStringToDate ( objRetailLiscenseDTO.PANClass.PANValidTillDate );
            PANObj.License_Remarks__c = objRetailLiscenseDTO.PANClass.PANRemarks;
            
            if( String.isNotBlank( objRetailLiscenseDTO.PANClass.PANNo) ){
                
                insert PANObj;
                
                mpStatus.put('PAN','Success');
                
            }
            
            
            //DML for GST
            
            
            
            BPCL_ROIR_License__c  GSTObj = new BPCL_ROIR_License__c() ;
            
            GSTObj.Customer_name__c = customerID;
            
            GSTObj.Certificate_Name__c = 'GST'; 
            
            GSTObj.GST_Number__c = objRetailLiscenseDTO.GSTClass.GSTNumber;
            GSTObj.License_Valid_From__c = fromStringToDate ( objRetailLiscenseDTO.GSTClass.GSTValidFrmDate );
            GSTObj.License_Valid_Till__c = fromStringToDate ( objRetailLiscenseDTO.GSTClass.GSTValidTillDate );
            GSTObj.License_Remarks__c = objRetailLiscenseDTO.GSTClass.GSTRemarks;
            
            if( String.isNotBlank( objRetailLiscenseDTO.GSTClass.GSTNumber) ){
                
                insert GSTObj;
                
                mpStatus.put('GST','Success');
            }
                        
            if(mpStatus.size()==0){
                
                return new Response(false, null, 'Exception occured while submitting form, Please Try again.');
                
            }else{
                
                return new Response(true, objRetailLiscenseDTO, 'Retail Licenses has been Saved Successfully!');
            }
            
            
            
            
        }Catch(Exception ex){
            System.debug('<<<<<<<Exception occured in createRIOR, Exception>>>>>>>>>' + ex.getMessage() + ', on line ' + ex.getLineNumber()); 
            // Rollback operation
            Database.rollback(savePointRec);            
            return new Response(false, null, 'Exception occured while submitting form, Please Try again.');
            //return new Response(false, null, 'Exception occured while submitting form, Exception: ' + ex.getMessage() + ', on line ' + ex.getLineNumber() );
        }
        
    }
    
    // Convert String to Date //16/11/2022
    public static Date fromStringToDate(String DateStr){
        
        Date convertedDate;
        
        system.debug('>>>>DateStr>>>'+DateStr); //2022-11-23
        
        if( String.isNotBlank(DateStr) ){
            List<String> intLst=DateStr.split('-');
            String yearStr = intLst[0];
            string monthStr = intLst[1];
            string dayStr = intLst[2];
            
            string strDate = yearStr + '-' + monthStr + '-' + dayStr ;
            convertedDate = Date.valueOf(strDate );
        }
        return convertedDate ;
    }
    
    
    
    
}
 
@isTest
public class RetailLicenseControllerTest {
    
     @isTest
    static void test(){
       Account accParent = new Account(Name ='test Account11',
                                  RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByName().get('Retail').getRecordTypeId(),
                                  BillingStreet = 'test', 
                                  BillingCity='Chicago', 
                                  BillingState = 'Illinois', 
                                  BillingCountry='United States',
                                  BillingPostalCode = '60657',
                                  Busniess_Unit__c ='Retail',
                                  Customer_Type__c	='RO Dealers(Channel Partner)',
                                  Email_Id__c ='test@gmail.com',
                                  BL_Number__c = '123',     
                                  Sales_Area_Code_Text__c = '3102',
                                  Active__c = true
                                       
                                 );
        insert accParent;
       
        //Create Distributer
        Account acc = new Account(Name ='test Account112',
                                  ParentId = accParent.Id,
                                  RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByName().get('Retail').getRecordTypeId(),
                                  BillingStreet = 'test', 
                                  BillingCity='Chicago', 
                                  BillingState = 'Illinois', 
                                  BillingCountry='United States',
                                  BillingPostalCode = '60657',
                                  Busniess_Unit__c ='Retail',
                                  Customer_Type__c	='RO Dealers(Channel Partner)',
                                  Email_Id__c ='test@gmail.com',
                                    BL_Number__c = '123',     
                                  Sales_Area_Code_Text__c = '512',
                                  Active__c = true
                                 );
        insert acc;     
       
        
     // Explosive
       
       BPCL_ROIR_License__c ObjLicense_1 = new BPCL_ROIR_License__c();
        
		ObjLicense_1 .Certificate_Name__c ='Explosive'; 
 		ObjLicense_1.Certificate_Number__c = 'Test123';
        ObjLicense_1.Customer_name__c = acc.ID ;
        ObjLicense_1.License_No__c = 'LC-0056' ;
        ObjLicense_1.License_Valid_From__c =  Date.today().addDays(30);
       ObjLicense_1.License_Valid_Till__c = Date.today();
         ObjLicense_1.License_Remarks__c = 'Test';
         
       Insert ObjLicense_1;
        
        //  DPSL
        
           BPCL_ROIR_License__c ObjLicense_2 = new BPCL_ROIR_License__c();
        
		ObjLicense_2 .Certificate_Name__c ='DPSL'; 
 		ObjLicense_2.Certificate_Number__c = 'Test123';
        ObjLicense_2.Customer_name__c = acc.ID ;
        ObjLicense_2.License_No__c = 'LC-0056' ;
        ObjLicense_2.License_Valid_From__c =  Date.today().addDays(30);
       ObjLicense_2.License_Valid_Till__c = Date.today();
         ObjLicense_2.License_Remarks__c = 'Test';
         
       Insert ObjLicense_2;
        
        //W&M
        
        BPCL_ROIR_License__c ObjLicense_3 = new BPCL_ROIR_License__c();
        
		ObjLicense_3 .Certificate_Name__c ='W&M'; 
 		ObjLicense_3.Certificate_Number__c = 'Test123';
        ObjLicense_3.Customer_name__c = acc.ID ;
        ObjLicense_3.License_No__c = 'LC-0056' ;
        ObjLicense_3.License_Valid_From__c =  Date.today().addDays(30);
       ObjLicense_3.License_Valid_Till__c = Date.today();
         ObjLicense_3.License_Remarks__c = 'Test';
         
       Insert ObjLicense_3;
        
        //Air Gauge Calibration
        
        BPCL_ROIR_License__c ObjLicense_4 = new BPCL_ROIR_License__c();
        
		ObjLicense_4 .Certificate_Name__c ='Air Gauge Calibration'; 
 		ObjLicense_4.Certificate_Number__c = 'Test123';
        ObjLicense_4.Customer_name__c = acc.ID ;
        ObjLicense_4.License_No__c = 'LC-0056' ;
        ObjLicense_4.License_Valid_From__c =  Date.today().addDays(30);
       ObjLicense_4.License_Valid_Till__c = Date.today();
         ObjLicense_4.License_Remarks__c = 'Test';
         
       Insert ObjLicense_4;
        
        //Trade license
        
        
           BPCL_ROIR_License__c ObjLicense_5 = new BPCL_ROIR_License__c();
        
		ObjLicense_5.Certificate_Name__c ='Air Gauge Calibration'; 
 		ObjLicense_5.Certificate_Number__c = 'Test123';
        ObjLicense_5.Customer_name__c = acc.ID ;
        ObjLicense_5.License_No__c = 'LC-0056' ;
        ObjLicense_5.License_Valid_From__c =  Date.today().addDays(30);
       ObjLicense_5.License_Valid_Till__c = Date.today();
         ObjLicense_5.License_Remarks__c = 'Test';
         
       Insert ObjLicense_5;
        
        //ALPG License
      
         BPCL_ROIR_License__c ObjLicense_6 = new BPCL_ROIR_License__c();
        
		ObjLicense_6.Certificate_Name__c ='ALPG License'; 
 		ObjLicense_6.Certificate_Number__c = 'Test123';
        ObjLicense_6.Customer_name__c = acc.ID ;
        ObjLicense_6.License_No__c = 'LC-0056' ;
        ObjLicense_6.License_Valid_From__c =  Date.today().addDays(30);
       ObjLicense_6.License_Valid_Till__c = Date.today();
         ObjLicense_6.License_Remarks__c = 'Test';
         
       Insert ObjLicense_6;
        
        //CNG License
        
          BPCL_ROIR_License__c ObjLicense_7 = new BPCL_ROIR_License__c();
        
		ObjLicense_7.Certificate_Name__c ='CNG License'; 
 		ObjLicense_7.Certificate_Number__c = 'Test123';
        ObjLicense_7.Customer_name__c = acc.ID ;
        ObjLicense_7.License_No__c = 'LC-0056' ;
        ObjLicense_7.License_Valid_From__c =  Date.today().addDays(30);
       ObjLicense_7.License_Valid_Till__c = Date.today();
         ObjLicense_7.License_Remarks__c = 'Test';
         
       Insert ObjLicense_7;
        
        //PAN
       
         BPCL_ROIR_License__c ObjLicense_8 = new BPCL_ROIR_License__c();
        
		 ObjLicense_8.Certificate_Name__c ='PAN'; 
 		 ObjLicense_8.Certificate_Number__c = 'Test123';
         ObjLicense_8.Customer_name__c = acc.ID ;
         ObjLicense_8.License_No__c = 'LC-0056' ;
         ObjLicense_8.License_Valid_From__c =  Date.today().addDays(30);
       ObjLicense_8.License_Valid_Till__c = Date.today();
          ObjLicense_8.License_Remarks__c = 'Test';
         
       Insert  ObjLicense_8;
        
       Test.startTest();
        
        RetailLicenseController.createRetailLiscense('jsonData',acc.Id);
        RetailLiscenseDTO objDto = new RetailLiscenseDTO();
         objDto.ExplosiveClass.ExplosiveLisenceNo = 'Test 123';
		objDto.ExplosiveClass.ExplosiveRemarks = 'Test'; 
        objDto.ExplosiveClass.ExplosiveFrmDate = 'Date.today().addDays(30)';
        objDto.ExplosiveClass.ExplosiveTillDate = 'Date.today()';
     
        Test.stopTest();
     
       
   }


}
 
public class RetailLiscenseDTO {
    
    
    @AuraEnabled public ExplosiveClass ExplosiveClass{get;set;}   
    
    @AuraEnabled public DPSLClass DPSLClass{get;set;}
    
    @AuraEnabled public WandMClass WandMClass{get;set;}
    
    @AuraEnabled public AirGuaugeCalibrationClass AirGuaugeCalibrationClass{get;set;}
    
    @AuraEnabled public TradeLicenseClass TradeLicenseClass{get;set;}
    
    @AuraEnabled public ALPLicenseClass ALPLicenseClass{get;set;}
    
    @AuraEnabled public CNGLicenseClass CNGLicenseClass{get;set;}
    
    @AuraEnabled public PANClass PANClass{get;set;}
    
    @AuraEnabled public GSTClass GSTClass{get;set;}  
    
    
    public RetailLiscenseDTO(){
        
        this.ExplosiveClass = new ExplosiveClass();
        
        this.DPSLClass = new DPSLClass(); 
        
        this.WandMClass = new WandMClass(); 
        
        this.AirGuaugeCalibrationClass = new AirGuaugeCalibrationClass(); 
        
        this.TradeLicenseClass = new TradeLicenseClass();
        
        this.ALPLicenseClass = new ALPLicenseClass();
        
        this.CNGLicenseClass = new CNGLicenseClass(); 
        
        this.PANClass = new PANClass();
        
        this.GSTClass = new GSTClass();
        
    }
    
    
    //ExplosiveClass
    Public class ExplosiveClass{
        
        @AuraEnabled public String ExplosiveLisenceNo{get;set;} 
        @AuraEnabled public String ExplosiveFrmDate{get;set;} 
        @AuraEnabled public String ExplosiveTillDate{get;set;} 
        @AuraEnabled public String ExplosiveRemarks{get;set;} 
        
    }
    
    //DPSLClass
    Public class DPSLClass{
        
        @AuraEnabled public String DPSLPartnersProprietorNo{get;set;} 
        @AuraEnabled public String DPSLPartnersProprietorFrmDate{get;set;} 
        @AuraEnabled public String DPSLPartnersProprietorTillDate{get;set;} 
        @AuraEnabled public String DPSLPartnersProprietorRemarks{get;set;} 
        
    }
    
    //WandMClass
    Public class WandMClass{
        
        @AuraEnabled public String WandMLicenseNumber{get;set;} 
        @AuraEnabled public String WandMFrmDate{get;set;} 
        @AuraEnabled public String WandMTillDate{get;set;} 
        @AuraEnabled public String WandMRemarks{get;set;} 
        
        
    }
    
    //AirGuaugeCalibrationClass
    Public class AirGuaugeCalibrationClass{
        
        @AuraEnabled public String AirGuaugeLicenseNumber{get;set;} 
        @AuraEnabled public String AirGuaugeFrmDate{get;set;} 
        @AuraEnabled public String AirGuaugeTillDate{get;set;} 
        @AuraEnabled public String AirGuaugeRemarks{get;set;} 
        
    }
    
    //TradeLicenseClass
    Public class TradeLicenseClass{
        
        @AuraEnabled public String TradeLicenseHolderName{get;set;} 
        @AuraEnabled public String TradeLicenseFrmDate{get;set;} 
        @AuraEnabled public String TradeLicenseTillDate{get;set;} 
        @AuraEnabled public String TradeLicenseRemarks{get;set;} 
        
    }
    
    //ALPLicenseClass
    Public class ALPLicenseClass{
        
        @AuraEnabled public String ALPLicenseNumber{get;set;} 
        @AuraEnabled public String ALPValidFrmDate{get;set;} 
        @AuraEnabled public String ALPValidToDate{get;set;} 
        @AuraEnabled public String ALPRemarks{get;set;} 
        
    }
    
    
    //CNGLicenseClass
    Public class CNGLicenseClass{
        
        @AuraEnabled public String CNGLicenseNumber{get;set;} 
        @AuraEnabled public String CNGLicenseValidFrmDate{get;set;} 
        @AuraEnabled public String CNGLicenseValidToDate{get;set;} 
        @AuraEnabled public String CNGRemarks{get;set;} 
        
    }
    
    //PANClass
    Public class PANClass{
        
        @AuraEnabled public String PANNo{get;set;} 
        @AuraEnabled public String PANValidFrmDate{get;set;} 
        @AuraEnabled public String PANValidTillDate{get;set;} 
        @AuraEnabled public String PANRemarks{get;set;} 
        
    }
    
    //GSTClass
    Public class GSTClass{
        
        @AuraEnabled public String GSTNumber{get;set;} 
        @AuraEnabled public String GSTValidFrmDate{get;set;} 
        @AuraEnabled public String GSTValidTillDate{get;set;} 
        @AuraEnabled public String GSTRemarks{get;set;} 
    }
    
    
    
}

 
SwethaSwetha (Salesforce Developers) 
HI Dolgoldy,

The code provided in question does not highlight the uncovered lines. Since this code is huge and requires an understanding of your implementation, it might not be possible to provide exact edit suggestions. However, the below articles give a good insight into how coverage can be improved
 
https://salesforce.stackexchange.com/questions/244794/how-do-i-increase-my-code-coverage-or-why-cant-i-cover-these-lines 
 
Code Coverage Best Practices
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_code_coverage_best_pract.htm
 
Checking Code Coverage
https://help.salesforce.com/articleView?id=code_dev_console_tests_coverage.htm&type=5
 
Deployment related code coverage issues
https://help.salesforce.com/articleView?id=000335222&type=1&mode=1

Thank you