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
A AnanthiA Ananthi 

Hi .... Can anyone help me to write test class for the following apex class

Hi .... Can anyone help me to write test  class for the following apex class....
public class ObjectPermissionClass {
      @AuraEnabled(Cacheable=true)
    
    public static List<ObjectPermissions> objectPermission(){
        List<ObjectPermissions> obj = new List<ObjectPermissions>();
        obj = [SELECT Parent.label,Parent.Profile.Name, ParentId,Parent.Name,SObjectType,PermissionsRead,PermissionsCreate,PermissionsEdit,PermissionsDelete,PermissionsViewAllRecords,PermissionsModifyAllRecords  FROM ObjectPermissions where parentId !=null and SObjectType = 'Account'];
        System.debug('obj>>'+obj);
        return obj;
        
  
    }
  public class wrapper{
        @AuraEnabled
        public String profilename{get;set;}
         @AuraEnabled
        public String parentname{get;set;}
        @AuraEnabled
        public String objecttype{get;set;}
        @AuraEnabled
        public Boolean read{get;set;}
        @AuraEnabled
        public Boolean create{get;set;}
        @AuraEnabled
        public Boolean edit{get;set;}
        @AuraEnabled
        public Boolean deleterec{get;set;}
        @AuraEnabled
        public Boolean viewall{get;set;}
        @AuraEnabled
        public Boolean modifyall{get;set;}
        @AuraEnabled
        public String objAccessId{get;set;}
        @AuraEnabled
        public String fieldId{get;set;}
        @AuraEnabled
        public String objfields{get;set;}
         @AuraEnabled
        public String profileId{get;set;}
         @AuraEnabled
        public String parentIds{get;set;}
        @AuraEnabled
        public String types{get;set;}
        @AuraEnabled
        public String parentnames{get;set;}
        
    }

   public class fieldwrapper{
       
        @AuraEnabled
        public String objecttype{get;set;}
        @AuraEnabled
        public Boolean read{get;set;}
        
        @AuraEnabled
        public Boolean edit{get;set;}
        
        @AuraEnabled
        public String parentIds{get;set;}
        @AuraEnabled
        public String fieldId{get;set;}
        @AuraEnabled
        public String objfields{get;set;}
        
    }

@AuraEnabled(Cacheable=true)
    public static List<wrapper> getprofilerecordRead(String objectType,String selectedbyType,String profileName,boolean readPermission,boolean createPermission,boolean editPermission,boolean deletePermission,boolean viewPermission,boolean modifyPermission){
       system.debug('@@@@type'+objectType);
       system.debug('@@@@profiletype'+profileName);
         system.debug('@@@@type'+selectedbyType);
        system.debug('@@@@read'+readPermission);
        system.debug('@@@@create'+createPermission);
        system.debug('@@@@edit'+editPermission);
        system.debug('@@@@delete'+deletePermission);
        system.debug('@@@@view'+viewPermission);
        system.debug('@@@@modify'+modifyPermission);
        List<wrapper>  wraplist3= new List<wrapper>();
        String query ='SELECT Id,Parent.Name,Parent.ProfileId,Parent.Profile.Name,ParentId, PermissionsRead,PermissionsCreate,SObjectType,PermissionsEdit,PermissionsDelete,PermissionsViewAllRecords,PermissionsModifyAllRecords from ObjectPermissions ';
      String appendQuery = '';
   if(objectType != 'None' && profileName!= 'None' )
        {

        query=query+'Where SObjectType=:objectType AND  Parent.Profile.Name=:profileName AND Parent.Name!=null ';  
      

        }
    
        else if(profileName != 'None')
        {
            query=query+'WHERE Parent.Profile.Name=:profileName ';  
           
        }
        else if(objectType !='None' &&  profileName == 'None' && selectedbyType == 'Profile')
        {
            query=query+'Where SObjectType=:objectType And Parent.ProfileId != null  ';  
           
        }
         if(readPermission != null && readPermission ==true ){
             appendQuery=appendQuery+'AND PermissionsRead=:readPermission ';

        }
         if(createPermission != null && createPermission ==true){
              appendQuery=appendQuery+'AND PermissionsCreate=:createPermission ';

        }
         if(editPermission != null && editPermission ==true ){
             appendQuery=appendQuery+'AND PermissionsEdit=:editPermission ';

        }
          if(deletePermission != null && deletePermission ==true ){
             appendQuery=appendQuery+'AND PermissionsDelete=:deletePermission ';

        }
            if(viewPermission != null && viewPermission ==true ){
             appendQuery=appendQuery+'AND PermissionsViewAllRecords=:viewPermission ';

        }

    if(modifyPermission != null && modifyPermission ==true ){
             appendQuery=appendQuery+'AND PermissionsModifyAllRecords=:modifyPermission ';

        }



        query=query+appendQuery;
         System.debug('@@query1'+query);
   if(objectType != 'None' && profileName!= 'None' )
        {

  
        query=query+' Order By parent.profile.Name, SobjectType ';

        }
        else if(objectType !='None' &&  profileName == 'None' && selectedbyType == 'Profile' )
        {
 
            query=query+' Order By parent.profile.Name';

        } 
        else if(profileName != 'None')
        {

            query=query+' Order By SObjectType ';
        }
        System.debug('@@query2'+query);


        for(ObjectPermissions per:Database.query(query)){
            wrapper wra=New wrapper();
            wra.profilename=per.Parent.Profile.Name;
            wra.profileId=per.Parent.ProfileId;
            wra.parentname=per.Parent.Name;
            wra.parentIds=per.ParentId;
            wra.objecttype=per.SObjectType;
            wra.read=per.PermissionsRead;
            wra.create=per.PermissionsCreate;
            wra.edit=per.PermissionsEdit;
            wra.deleterec=per.PermissionsDelete;
            wra.viewall=per.PermissionsViewAllRecords;
            wra.modifyall=per.PermissionsModifyAllRecords;
            wra.objAccessId =per.Id;
            wraplist3.add(wra);
           
        } 
         System.debug('wraplist'+wraplist3);
        return  wraplist3;
    }

//Query to get object name and permission name and readcheck,createcheck,editcheck,deletecheck,viewcheck,modifycheck

@AuraEnabled(Cacheable=true)
// public static List<wrapper> getprofilerecordRead(boolean readPermission){
    public static List<wrapper> getpermissionrecordRead(String objectType,String selectedbyType,String permissionName,boolean readPermission,boolean createPermission,boolean editPermission,boolean deletePermission,boolean viewPermission,boolean modifyPermission){
       system.debug('@@@@type'+objectType);
       system.debug('@@@@permissiontype'+permissionName);
       system.debug('@@@@selectedbyType'+selectedbyType);
        system.debug('@@@@read'+readPermission);
        system.debug('@@@@create'+createPermission);
        system.debug('@@@@edit'+editPermission);
        system.debug('@@@@delete'+deletePermission);
        system.debug('@@@@view'+viewPermission);
        system.debug('@@@@modify'+modifyPermission);
        List<wrapper>  wraplist4= new List<wrapper>();
        String query ='SELECT Id,Parent.Name,Parent.ProfileId,Parent.Profile.Name,ParentId, PermissionsRead,PermissionsCreate,SObjectType,PermissionsEdit,PermissionsDelete,PermissionsViewAllRecords,PermissionsModifyAllRecords from ObjectPermissions ';
      String appendQuery = '';
   if(objectType != 'None' && permissionName!= 'None' )
        {

        query=query+'Where SObjectType=:objectType AND  ParentId=:permissionName AND Parent.Name!=null ';  
      

        }
          else if(objectType !='None')
        {
            query=query+'Where SObjectType=:objectType AND Parent.Name!=null And Parent.ProfileId = null ';  
           

        } 
        else if(permissionName != 'None')
        {
            query=query+'WHERE ParentId=:permissionName AND Parent.Name!=null ';  
           
        }
        //   else if(objectType !='None' &&  permissionName == 'None' &&  selectedbyType == 'PermissionSet')
           
         if(readPermission != null && readPermission ==true ){
             appendQuery=appendQuery+'AND PermissionsRead=:readPermission ';

        }
         if(createPermission != null && createPermission ==true){
              appendQuery=appendQuery+'AND PermissionsCreate=:createPermission ';

        }
         if(editPermission != null && editPermission ==true ){
             appendQuery=appendQuery+'AND PermissionsEdit=:editPermission ';

        }
          if(deletePermission != null && deletePermission ==true ){
             appendQuery=appendQuery+'AND PermissionsDelete=:deletePermission ';

        }
            if(viewPermission != null && viewPermission ==true ){
             appendQuery=appendQuery+'AND PermissionsViewAllRecords=:viewPermission ';

        }

    if(modifyPermission != null && modifyPermission ==true ){
             appendQuery=appendQuery+'AND PermissionsModifyAllRecords=:modifyPermission ';

        }



        query=query+appendQuery;
         System.debug('@@query1'+query);


        for(ObjectPermissions per:Database.query(query)){
            System.debug('@@query2'+query);

            wrapper wra=New wrapper();
            wra.profilename=per.Parent.Profile.Name;
            wra.profileId=per.Parent.ProfileId;
            wra.parentname=per.Parent.Name;
            wra.parentIds=per.ParentId;
            wra.objecttype=per.SObjectType;
            wra.read=per.PermissionsRead;
            wra.create=per.PermissionsCreate;
            wra.edit=per.PermissionsEdit;
            wra.deleterec=per.PermissionsDelete;
            wra.viewall=per.PermissionsViewAllRecords;
            wra.modifyall=per.PermissionsModifyAllRecords;
            wra.objAccessId =per.Id;
            wraplist4.add(wra);
            System.debug('wraplist'+wraplist4);
        } 
        return  wraplist4;
    }

    @AuraEnabled()
    public static void  createObjectPermissions1(Wrapper objper) {
        system.debug('ObjectPermissions'+objper);
        ObjectPermissions obj = new ObjectPermissions();
        obj.Id= objper.objAccessId;
        obj.PermissionsRead=objper.read;
        obj.PermissionsCreate= objper.create;
        obj.PermissionsEdit=objper.edit;
        obj.PermissionsDelete=objper.deleterec;
        obj.PermissionsViewAllRecords=  objper.viewall;
        obj.PermissionsModifyAllRecords=objper.modifyall;

     
        update obj;
        system.debug('saved'+objper);
        // return objper;
    }
      @AuraEnabled
    public static ObjectPermissions createObjectPermissions(ObjectPermissions objper) {
        system.debug('objper'+objper);
        insert objper;
        return objper;
    }

    //To save/update a record
    @AuraEnabled()
    public static void  updateObjectPermissions(String objper,String objprofilename,boolean objread,boolean objcreate,boolean objedit,boolean objdelete,boolean objview,boolean objmodify) {
        system.debug('ObjectPermissions'+objper);
         system.debug('objprofilename'+objprofilename);
      

        ObjectPermissions obj = new ObjectPermissions();
        obj.Id= objper;
       
        obj.PermissionsRead=objread;
        obj.PermissionsCreate= objcreate;
        obj.PermissionsEdit=objedit;
        obj.PermissionsDelete=objdelete;
        obj.PermissionsViewAllRecords= objview;
        obj.PermissionsModifyAllRecords=objmodify;

       
        update obj;
        system.debug('saved'+obj);
        system.debug('saved'+objper);
    }
  
   

    @AuraEnabled()
    public static void  updateFieldPermissions1(String objFieldsId,boolean fieldRead,boolean fieldEdit) {
        system.debug('FieldPermissions'+objFieldsId);
      

        FieldPermissions fields = new FieldPermissions();
        fields.Id= objFieldsId;
       
        fields.PermissionsRead=fieldRead;
       
        fields.PermissionsEdit=fieldEdit;
    
       
        update fields;
        system.debug('saved'+fields);
    }
    
   

    @AuraEnabled()
    public static void  updateFieldPermissions(String objFieldsId) {
        system.debug('FieldPermissions'+objFieldsId);
  List<fieldwrapper>  wrapperList = (List<fieldwrapper>)JSON.deserialize(objFieldsId, List<fieldwrapper>.class);
       // fieldwrapper wrapper=(fieldwrapper)JSON.deserialize(objFieldsId,fieldwrapper.class);
        
      system.debug('wrapper:'+wrapperList);
      List<FieldPermissions> fieldPermList = new List<FieldPermissions>();
        if(wrapperList!=null)
        {
        for(fieldwrapper wrp :wrapperList )
        {
            FieldPermissions fields = new FieldPermissions();
            fields.Id= wrp.fieldId;
            fields.PermissionsRead=wrp.read;
            fields.PermissionsEdit=wrp.edit;
            fieldPermList.add(fields);
        }
            update fieldPermList;
        system.debug('saved'+fieldPermList);
        }
        
        }
    
    


@AuraEnabled(Cacheable=true)
    public static List<fieldwrapper> getfieldsrecord(String objectType,String getParentId){
        system.debug('@@@@type'+objectType);
         system.debug('@@@@parentIdtype'+getParentId);
        List<fieldwrapper>  wraplist5= new List<fieldwrapper>();



        String query ='Select Id,SobjectType,Parent.Name,ParentId,Field, PermissionsEdit, PermissionsRead From FieldPermissions ';
        {

        query=query+'where SObjectType=:objectType AND ParentId=:getParentId ';  
     
        
        System.debug('@@query'+query);
       


        for(FieldPermissions per:Database.query(query)){
            fieldwrapper wra=New fieldwrapper();
            wra.fieldId = per.Id;
            wra.objecttype=per.SObjectType;
            wra.objfields=per.Field;
            wra.read=per.PermissionsRead;
            wra.edit=per.PermissionsEdit;
            wra.parentIds=per.ParentId;
            
          
         
            wraplist5.add(wra);
            System.debug('wraplist'+wraplist5);
        } 
        
     return  wraplist5;
    }



    @AuraEnabled(Cacheable=true)
    public static List<wrapper> getfieldsrecord1(String objectType,String getParentId){
        system.debug('@@@@type'+objectType);
         system.debug('@@@@parentIdtype'+getParentId);
        List<wrapper>  wraplist5= new List<wrapper>();
 List<wrapper>  fieldList= new List<wrapper>();
  List<wrapper>  stdFieldList= new List<wrapper>();
 
        Map<String,String> fieldAccessStdFldMapComp = new Map<String,String>();  
         Map<String,String> fieldAccessCusFldMapComp = new Map<String,String>();
        for(Schema.SObjectField  fl:  Schema.getGlobalDescribe().get(objectType).getDescribe().fields.getMap().values())  
        {
            Schema.DescribeFieldResult f = fl.getDescribe();
            if(f.isPermissionable() && f.isCustom())
            {              
                if(!fieldAccessCusFldMapComp.containsKey(f.getName()))
                {
                    if(f.isCalculated() || f.isAutoNumber())
                    {
                        fieldAccessCusFldMapComp.put(objectType+'.'+f.getName(),'readonly' );  
                    }
                    else
                    {
                        fieldAccessCusFldMapComp.put(objectType+'.'+f.getName(),'both' );  
                    }                                                          
                }                            
            } 
            if(f.isPermissionable() && !f.isCustom())
            {              
                if(!fieldAccessStdFldMapComp.containsKey(f.getName()))
                {
                    if(f.isCalculated() || f.isAutoNumber())
                    {
                        fieldAccessStdFldMapComp.put(objectType+'.'+f.getName(),'readonly' );  
                    }
                    else
                    {
                        fieldAccessStdFldMapComp.put(objectType+'.'+f.getName(),'both' );  
                    }                                                          
                }                            
            } 
        }
        system.debug('@@@@@fieldAccessMapComp'+fieldAccessStdFldMapComp);  

        String query ='Select Id,SobjectType,Parent.Name,ParentId,Field, PermissionsEdit, PermissionsRead From FieldPermissions ';
        // if(objectType != 'None' )
        // {

        query=query+'where SObjectType=:objectType AND ParentId=:getParentId ';  
     
        
        System.debug('@@query'+query);
       


        for(FieldPermissions per:Database.query(query)){
            wrapper wra=New wrapper();
            wra.fieldId = per.Id;
            wra.objecttype=per.SObjectType;
            wra.objfields=per.Field;
            wra.read=per.PermissionsRead;
            wra.edit=per.PermissionsEdit;
            wra.parentIds=per.ParentId;
            
          
         
            wraplist5.add(wra);
            System.debug('wraplist'+wraplist5);
        } 
        
    return  wraplist5;
    }
    
}
PriyaPriya (Salesforce Developers) 
Hi Ananthi,
 

The below articles give a good insight into how to get started with writing test classes

 https://salesforce.stackexchange.com/questions/244788/how-do-i-write-an-apex-unit-test

https://salesforce.stackexchange.com/questions/244794/how-do-i-increase-my-code-coverage-or-why-cant-i-cover-these-lines 

 

Hope this helps! Thanks