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
salesforce sfdxsalesforce sfdx 

Hi team, as fresher in coding got a Sample program to write a test class please help me if you can

public class TaskAccountTriggerHandler {
    
    public void afterInsertOrUpdateMethod(List<Task> NewTasks){
        List<Case>  cList = new List<Case>(); //List collection with case is created to store the case records
        //values will pass from trigger to here 
        If(!NewTasks.isEmpty()){
            for (Task t : NewTasks) {
                string id = string.valueof(t.WhatId);
                   //condition for Account Related Task
                If(t.WhatId != null && id.startsWith('001')){
                    t.Account__C = t.WhatId;
                   //Condition for Case Related Task and startsWith 500 and completed as status.
                }else If(t.WhatId != null && id.startsWith('500')&&t.Status == 'Completed'){
                    Case c = new Case();
                    c.Id = t.whatId;
                    c.Comments='Completed a task: '+t.Subject;
                    cList.add(c); //adding to the list to update
                } 
            }
            
        }
     //it will check the list empty or not for update.
      if(!cList.isEmpty())
        update cList;
      }
    
}
trigger TaskAccountTrigger on Task (before insert , before update) {
    
    TaskAccountTriggerHandler TaskHandlr = New TaskAccountTriggerHandler();
    
   //Before insert and update
   if(Trigger.isbefore && Trigger.isinsert  ){
	  TaskHandlr.afterInsertOrUpdateMethod(Trigger.New);   
   }
    
    
    //Before insert and update
   if(Trigger.isbefore && Trigger.isupdate){
	  TaskHandlr.afterInsertOrUpdateMethod(Trigger.New);   
   }
}
Please provide your suggestions or links 
Thanks
Prathusha

 
Best Answer chosen by salesforce sfdx
Sai PraveenSai Praveen (Salesforce Developers) 
Hi Prathusha,

Can you try the below test class.
 
@istest
public class TaskAccountTriggerHandlerTest {
@isTest static void testtaskmethod() {
    Account acc= new Account();
    acc.name='sample Account';
    insert acc;
    Task ts= new Task();
    ts.WhatId=acc.id;
    ts.Subject='Call';
    ts.Priority='Low';
    insert ts;
    Task tsk=[select id,Account__c from Task];
    system.assertEquals(acc.id, tsk.Account__c);
    Case cs= new Case();
    cs.Origin='Web';
    cs.Status='new';
    insert cs;
    ts.WhatId= cs.id;
    ts.Status='Completed';
    update ts;
}
}

Let me know if you face any issues.

If this solution helps, Please mark it as best answer.

Thanks,

All Answers

Sai PraveenSai Praveen (Salesforce Developers) 
Hi Prathusha,

Did you try writing a test class by just creating task records and updating them or do you need entire test class?

Thanks,


 
salesforce sfdxsalesforce sfdx
hi praveen
iam a fresher just need to coverthe test class do you need entire test class
Thanks for your reply
Sai PraveenSai Praveen (Salesforce Developers) 
Hi Prathusha,

Can you try the below test class.
 
@istest
public class TaskAccountTriggerHandlerTest {
@isTest static void testtaskmethod() {
    Account acc= new Account();
    acc.name='sample Account';
    insert acc;
    Task ts= new Task();
    ts.WhatId=acc.id;
    ts.Subject='Call';
    ts.Priority='Low';
    insert ts;
    Task tsk=[select id,Account__c from Task];
    system.assertEquals(acc.id, tsk.Account__c);
    Case cs= new Case();
    cs.Origin='Web';
    cs.Status='new';
    insert cs;
    ts.WhatId= cs.id;
    ts.Status='Completed';
    update ts;
}
}

Let me know if you face any issues.

If this solution helps, Please mark it as best answer.

Thanks,
This was selected as the best answer
salesforce sfdxsalesforce sfdx
Thanks 
Praveen..its worked ..!