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
Srinivas Bandi 4Srinivas Bandi 4 

how to cover test class for below code

Class:    
 public static void CountOpentask(list<BMCServiceDesk__Task__c> tsklist)
      {
         if( !isexecutedInc){
         List<BMCServiceDesk__Incident__c> listIncidents = new List<BMCServiceDesk__Incident__c>();
   
         Set<Id> setIncidentIds = new Set<Id>();
        // Set<Id> setIncidentIds1 = new Set<Id>();
         Set<Id> tskIncidentIds = new Set<Id>(); 
         Set<Id> tskIncidentIds1 = new Set<Id>(); 
         for(BMCServiceDesk__Task__c  Inctsk:tsklist) {
            if(Inctsk.BMCServiceDesk__FKIncident__c != null){ 
            setIncidentIds.add(Inctsk.BMCServiceDesk__FKIncident__c);   
            }
          }
   
         AggregateResult[] groupedResults = [SELECT COUNT(Id), BMCServiceDesk__FKIncident__c FROM BMCServiceDesk__Task__c  where ((BMCServiceDesk__FKIncident__c IN :setIncidentIds) AND (BMCServiceDesk__FKStatus__r.name != 'CLOSED'AND BMCServiceDesk__FKStatus__r.name != 'RESOLVED')) GROUP BY BMCServiceDesk__FKIncident__c ];
         
         AggregateResult[] groupedResults1 = [SELECT COUNT(Id), SUM(BMCServiceDesk__Total_Duration__c), BMCServiceDesk__FKIncident__c FROM BMCServiceDesk__Task__c  where ((BMCServiceDesk__FKIncident__c IN :setIncidentIds))  GROUP BY BMCServiceDesk__FKIncident__c ];
         
         
         map<id,BMCServiceDesk__Incident__c > incmap= new map<id,BMCServiceDesk__Incident__c >();
         
         if(groupedResults.size() >0){
         for(AggregateResult ar:groupedResults) {
     
         Id custid = (ID)ar.get('BMCServiceDesk__FKIncident__c');
         System.debug('$$$$$$$$$$$$$$$$$$$$$ custid :' + custid);
         Integer count = (INTEGER)ar.get('expr0');
         tskIncidentIds.add(custid);
         System.debug('$$$$$ :'+ count);
       
         BMCServiceDesk__Incident__c incident = new BMCServiceDesk__Incident__c(Id=custid);
         incident.Open_task__c = count;
         incmap.put(custid,incident);
           }
         }
                  
             
        for(id incId:setIncidentIds){
        if(!tskIncidentIds.contains(incId)){
        BMCServiceDesk__Incident__c incident = new BMCServiceDesk__Incident__c(Id=incId);
        incident.Open_task__c = 0;
        incmap.put(incid ,incident);
       
         }
        }
        
        
         if(groupedResults1.size() >0){
         for(AggregateResult ar:groupedResults1) {
     
         Id custid = (ID)ar.get('BMCServiceDesk__FKIncident__c');
         System.debug('$$$$$$$$$$$$$$$$$$$$$ custid :' + custid);
         Integer count = (INTEGER)ar.get('expr0');
         Decimal sumofmin= (Decimal )ar.get('expr1');
         tskIncidentIds1.add(custid);
         if(incmap.containskey(custid)){
         BMCServiceDesk__Incident__c incident = incmap.get(custId);
         incident.Linked_Tasks__c=count;
         incident.Tasks_Duration_Minutes__c = sumofmin;
         incmap.put(custid,incident);
         }else{
         
         BMCServiceDesk__Incident__c incident = new BMCServiceDesk__Incident__c(Id=custid);
         incident.Tasks_Duration_Minutes__c = sumofmin;
         incident.Linked_Tasks__c=count;
         incmap.put(custid,incident);
         }
         
      
           }
         }
        
         for(id incId:setIncidentIds){
        if(!tskIncidentIds1.contains(incId)){
        if(incmap.containskey(incId)){
        BMCServiceDesk__Incident__c incident = incmap.get(incId);
         incident.Linked_Tasks__c=0;
         incident.Tasks_Duration_Minutes__c=0;
         incmap.put(incid ,incident);
         }
         else{
        BMCServiceDesk__Incident__c incident = new BMCServiceDesk__Incident__c(Id=incId);
        incident.Linked_Tasks__c= 0;
        incident.Tasks_Duration_Minutes__c=0;
        incmap.put(incid ,incident);
        }
         }
        }
        
        
        
        
        isexecutedInc =true;
       
       update incmap.values();
       }

Test Class
static testmethod void Taskcounttest(){
    Test.startTest();
        Profile prof = [SELECT Id FROM Profile WHERE Name='System Administrator']; 
        User usr = new User(Alias = 'testuser1', Email='testuser1@test.com', 
                   EmailEncodingKey='UTF-8', LastName='TestName1', LanguageLocaleKey='en_US', LocaleSidKey='en_US', ProfileId = prof.Id,TimeZoneSidKey='America/Los_Angeles', UserName='testuser1@testuser.com');
                
                   DisableCustomTriggers__c cust = new DisableCustomTriggers__c();
                   cust.name ='CountTasksForIncident';
                   cust.DisableTrigger__c = TRUE;
                   insert cust;
 
 
                  BMCServiceDesk__Category__c catg= new BMCServiceDesk__Category__c(Name = 'Test Emails'+ system.now(),BMCServiceDesk__AvailableForIncidents__c =true,BMCServiceDesk__Inactive__c=false,BMCServiceDesk__UnAvailableForTasks__c= false,BMCServiceDesk__AvailableForServiceCatalog__c=true,BMCServiceDesk__Display_In_SelfService__c=true);
                  insert catg;
                  system.debug('catg' + catg);

                  BMCServiceDesk__BMC_BaseElement__c serv = new BMCServiceDesk__BMC_BaseElement__c();
                  serv.Name ='Fraedom';
                  serv.BMCServiceDesk__Name__c='Fraedom';
                  insert serv;
                  system.debug('serv' + serv);
 

                  BMCServiceDesk__Impact__c impct = new BMCServiceDesk__Impact__c();
                  impct.Name='low';
                  insert impct;
                  system.debug('impct' + impct);
                  
                  BMCServiceDesk__Urgency__c urgc= new BMCServiceDesk__Urgency__c();
                  urgc.Name='low';
                  insert urgc;
                  system.debug('urgc' + urgc);

                  BMCServiceDesk__Status__c stat= new BMCServiceDesk__Status__c(Name='OPENED'+System.now().getTime(),BMCServiceDesk__state__c= true,BMCServiceDesk__defaultStatus__c = true,BMCServiceDesk__appliesToIncident__c = TRUE,BMCServiceDesk__appliesToTask__c = true);
                  insert stat;
                  system.debug('stat' + stat);
 
                  BMCServiceDesk__Status__c stat1= new BMCServiceDesk__Status__c(Name='CLOSED'+System.now().getTime(),BMCServiceDesk__state__c= false,BMCServiceDesk__defaultStatus__c = false,BMCServiceDesk__appliesToIncident__c = TRUE,BMCServiceDesk__appliesToTask__c = true);
                  insert stat1;
                  system.debug('stat1' + stat1);    
 
 
                Account acct = new Account();
                acct.Name='Test Account';
                insert acct;
                system.debug('acct' + acct);
 
                BMCServiceDesk__Incident__c inc = new BMCServiceDesk__Incident__c();
                inc.BMCServiceDesk__FKAccount__c =acct.id;
 
 
               inc.BMCServiceDesk__FKBusinessService__c=serv.id;
               system.debug('categoryId ' +'spmBMCTestforCatId ' + catg.id);
               inc.BMCServiceDesk__FKCategory__c= catg.id;
               inc.BMCServiceDesk__FKImpact__c=impct.id;
               inc.BMCServiceDesk__FKUrgency__c=urgc.id;
               system.debug('STATUS ' +'spmBMCTestforSTATUS ' + stat.id);
               inc.BMCServiceDesk__FKStatus__c=stat.id;
              
               insert inc;
                
               inc.Tasks_Duration_Minutes__c =20;
               inc.Open_task__c =1;
               inc.Linked_Tasks__c=2;
               update inc;
       Test.stopTest();
           }
 
 
 
 
 
 
    
 static testmethod void Taskcounttest2(){
    Test.startTest();
        Profile prof = [SELECT Id FROM Profile WHERE Name='System Administrator']; 
        User usr = new User(Alias = 'testuser1', Email='testuser1@test.com', 
                   EmailEncodingKey='UTF-8', LastName='TestName1', LanguageLocaleKey='en_US', LocaleSidKey='en_US', ProfileId = prof.Id,TimeZoneSidKey='America/Los_Angeles', UserName='testuser1@testuser.com');
   
          DisableCustomTriggers__c cust = new DisableCustomTriggers__c();
          cust.name ='CountTasksForIncident';
          cust.DisableTrigger__c = TRUE;
          insert cust;
         
                  BMCServiceDesk__Category__c catg= new BMCServiceDesk__Category__c(Name = 'Test Emails'+ system.now(),BMCServiceDesk__AvailableForIncidents__c =true,BMCServiceDesk__Inactive__c=false,BMCServiceDesk__UnAvailableForTasks__c= false,BMCServiceDesk__AvailableForServiceCatalog__c=true,BMCServiceDesk__Display_In_SelfService__c=true);
                  insert catg;
                  system.debug('catg' + catg);
                  
                  
 
                  BMCServiceDesk__BMC_BaseElement__c serv = new BMCServiceDesk__BMC_BaseElement__c();
                  serv.Name ='Fraedom';
                  serv.BMCServiceDesk__Name__c='Fraedom';
                  insert serv;
                  system.debug('serv' + serv);
 

                  BMCServiceDesk__Impact__c impct = new BMCServiceDesk__Impact__c();
                  impct.Name='low';
                  insert impct;
                  system.debug('impct' + impct);
                  
                  BMCServiceDesk__Urgency__c urgc= new BMCServiceDesk__Urgency__c();
                  urgc.Name='low';
                  insert urgc;
                  system.debug('urgc' + urgc);
 
                  BMCServiceDesk__Status__c stat= new BMCServiceDesk__Status__c(Name='OPENED'+System.now().getTime(),BMCServiceDesk__state__c= true,BMCServiceDesk__defaultStatus__c = true,BMCServiceDesk__appliesToIncident__c = TRUE,BMCServiceDesk__appliesToTask__c = true);
                  insert stat;
                  system.debug('stat' + stat);
 
                  BMCServiceDesk__Status__c stat1= new BMCServiceDesk__Status__c(Name='CLOSED'+System.now().getTime(),BMCServiceDesk__state__c= false,BMCServiceDesk__defaultStatus__c = false,BMCServiceDesk__appliesToIncident__c = TRUE,BMCServiceDesk__appliesToTask__c = true);
                  insert stat1;
                  system.debug('stat1' + stat1);    
 
 
                Account acct = new Account();
                acct.Name='Test Account';
                insert acct;
                system.debug('acct' + acct);
 
                BMCServiceDesk__Incident__c inc = new BMCServiceDesk__Incident__c();
                inc.BMCServiceDesk__FKAccount__c =acct.id;
 
 
               inc.BMCServiceDesk__FKBusinessService__c=serv.id;
               system.debug('categoryId ' +'spmBMCTestforCatId ' + catg.id);
                inc.BMCServiceDesk__FKCategory__c= catg.id;
               inc.BMCServiceDesk__FKImpact__c=impct.id;
               system.debug('STATUS ' +'spmBMCTestforSTATUS ' + stat.id);
               inc.BMCServiceDesk__FKStatus__c=stat.id;
               inc.BMCServiceDesk__FKUrgency__c=urgc.id;
              // inc.Tasks_Duration_Minutes__c =20;
              // inc.Open_task__c =1;
              // inc.Linked_Tasks__c=2;
               insert inc;
              
               
               
                 List<BMCServiceDesk__Task__c > lstTsk = new List<BMCServiceDesk__Task__c>(); 
                 BMCServiceDesk__Task__c tsk2 = new BMCServiceDesk__Task__c();
                 tsk2.BMCServiceDesk__FKClient__c =usr.id;
                 tsk2.BMCServiceDesk__FKCategory__c=catg.id;
                 tsk2.BMCServiceDesk__FKIncident__c =inc.id;
                 tsk2.BMCServiceDesk__FKStatus__c = stat.id;
                 tsk2.BMCServiceDesk__FKUrgency__c= urgc.id;
                 tsk2.BMCServiceDesk__FKImpact__c= impct.id;
                 inc.Linked_Tasks__c=tsk2.BMCServiceDesk__Total_Duration__c;
                 lstTsk.add(tsk2);
 
                 insert lstTsk;
                 tsk2.BMCServiceDesk__FKStatus__c = stat1.id;
                 update tsk2;
                 delete tsk2;
  Test.stopTest();
      }

User-added image