• @23
  • NEWBIE
  • 0 Points
  • Member since 2023

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 2
    Questions
  • 0
    Replies
Issue with apex test class coverage
Trying to get code coverage for below class but even after trying several options, not achieving code coverage. After debugging the code, test data is created.

public class TaskBeforeDeleteController implements TriggerAction.BeforeDelete{
    public static void beforeDelete(List<Task> task) {        
        task = [SELECT Id, Activity_ID__c, WhatId FROM Task WHERE Id In : Trigger.old];
        //system.debug('task'+task);
        
        List<Activity__c> pAct = [SELECT Id, Activity_Id__c, Contract_File__c FROM Activity__c]; 
        //system.debug('pAct'+pAct);
        
        for(Task t : task) {
            Task actualRecord = (Task)Trigger.oldMap.get(t.Id);
            for(Activity__c pa : pAct) {
               if(t.Activity_ID__c != null && t.Activity_ID__c == pa.Activity_Id__c) {
                   //system.debug('inside IF');
                    actualRecord.adderror('Cannot delete Task record since Provision Activity is present');
                } 
            }
            
        }
    }
}

 

Test class

@isTest
public with sharing class TaskBeforeDeleteTest {
    @TestSetup
    public static void TestDataSetup() {
       //required test data is created
    }
static testmethod void testTaskBeforeDeleteController1() {
        //Test.startTest();
        Contract__c con = [SELECT Id FROM Contract__c];
        Activity__c act = [SELECT Id, Name, Activity_Id__c FROM Activity__c WHERE Contract_File__c =: con.Id LIMIT 1];
        List<Activity__c> proActList = [SELECT Id, Name, Activity_Id__c FROM Activity__c WHERE Description__c = 'Provision'];
        Task task = [SELECT Id, Activity_ID__c FROM Task WHERE Activity_ID__c =: act.Activity_Id__c LIMIT 1];
        List<Task> taskList = [SELECT Id, Activity_ID__c FROM Task WHERE Subject = 'Provision' AND Activity_ID__c != null];
        system.debug('con'+con);
        system.debug('act'+act);
        system.debug('proActList'+proActList);
        system.debug('task'+task);
        system.debug('taskList'+taskList);
        try {
            Test.startTest();        
            TaskBeforeDeleteController.beforeDelete(taskList);
            for(Task t : taskList) {
                TaskBeforeDeleteController.beforeDelete(taskList);
                for(Activity__c proA : proActList) {
                    if(t.Activity_ID__c != null && t.Activity_ID__c == proA.Activity_Id__c) {                        
                        System.assertNotEquals(task.Activity_ID__c != null, null, 'Task Activity ID is not null');
                        System.assertEquals(task.Activity_ID__c, act.Activity_Id__c, 'Task Activity and Provision Activity ID are same');
                    }
                }           
            }
        }
        catch(Exception e){
            Boolean message =  e.getMessage().contains('Script-thrown exception') ? true : false;
            System.assertEquals(message, false);
        }
        //System.assertNotEquals(task.Activity_ID__c != null, null, 'Task Activity ID is not null');
        Test.stopTest();
    }
}
  • October 17, 2023
  • Like
  • 0
A multi-picklist field is already setup with some values. This field is referred in LWC as lightning-input-field which supports multi-picklist fields. Hence no controller or other custom component is used to retrieve the picklist values. But after adding some values to this same multi-plickist field and making them available at record type level for editing, the values are not getting displayed on the custom component page. Can someone assist?
  • January 27, 2023
  • Like
  • 0