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
r_wick007r_wick007 

Need Help with test class for this ?

// Assigning Contact as MMM
public class CaseHandler {
public void populateCaseContactOnInsertFromQuickAction(list<Case> newCaseList) {
  try{
    User userObject = [SELECT id, contact__c FROM user WHERE id=: Userinfo.getUserId() limit 1];
     
    if (userObject.contact__c!='' || userObject.Contact__c!=null) {
      for (Case caseVar : newCaseList) {
        if (caseVar.CaseFromMMMQuickAction__c == true) {
          caseVar.ContactId = userObject.contact__c;
        }
      }
    }
    }catch(Exception e){System.debug('Contact Id exception '+e.getMessage());}
  }
}


Here is the test class :

    @isTest
    private static void populateCaseContactOnInsertFromQuickActionTest()
    {
        try{
            Test.startTest();
            //User user = new User();
            User userObject = [SELECT id, contact__c FROM user WHERE id=: Userinfo.getUserId() limit 1];
            
            Contact con = new Contact();
            con.firstName = 'Test006';
            con.lastName= 'RSN';
            INSERT con;
            
            List<case> newCaseList = new List<Case>();
            Case caseObj = new Case(
                Status = 'Working',
                Origin = 'Phone',
               ContactId = userObject.contact__c);
            
            newCaseList.add(caseObj);
            insert newCaseList;
            
          
            
            if (userObject.contact__c!='' || userObject.Contact__c!=null) {
                for (Case caseVar : newCaseList) {
                    if (caseVar.CaseFromMDMQuickAction__c == true) {
                        caseVar.ContactId = userObject.contact__c;
                    }
                }
            }
            
          //  caseObj = [select id, casenumber from case where id = : caseObj.id];
          //  System.debug('case number' + caseObj.casenumber);
            
            CaseHandler caller = new CaseHandler();
            caller.populateCaseContactOnInsertFromQuickAction(newCaseList);
            
            Test.stopTest(); 
        }Catch(Exception exceptionObject){
            System.debug('Exception occurred : CaseTriggerTest2-->' + exceptionObject.getMessage()+' Stack trace=' + exceptionObject.getStackTraceString()); 
        }   
        
    }


IT is not covering these lines  from class:

caseVar.ContactId = userObject.contact__c;
     
    catch(Exception e){System.debug('Contact Id exception '+e.getMessage());}

  // END

sreenath reddy 21sreenath reddy 21
Hi rahul
 User userObject = [SELECT id, contact__c FROM user WHERE id=: Userinfo.getUserId() limit 1];
put system.debug('userObject '+userObject );
I think you will get null because there is no data available.
Try to create 1 user from test class and insert user.
 
Suraj Tripathi 47Suraj Tripathi 47

Hi,
Please find the solution.

public testMethod static void populateCaseContactOnInsertFromQuickActionTest(){
Profile p = [SELECT Id FROM Profile WHERE Name='System Administrator']; 
User u = new User(Alias = 'test', Email='TestData@testorg.com', 
		EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US', 
		LocaleSidKey='en_US', ProfileId = p.Id, 
		TimeZoneSidKey='America/Los_Angeles', UserName='TestData@testorg.com');
		insert u;
		
		 
 Account ac=new Account();
 ac.Name='Test Account';
 insert ac;

Contact con=new Contact();
		con.LastName='Test Data'
		con.contact__c=u.id;
		insert con;


//create case
    Case c = new Case();
	c.CaseFromMMMQuickAction__c =true;
    c.AccountId = ac.Id;
    c.ContactId = con.id;
    c.Status = 'Working';
    c.Origin = 'Phone';
   
    insert c;
	
	List<Case> caseList=new List<Case>();
	caseList.add(c);
	

Test.startTest();
             aseHandler caller = new CaseHandler();
            caller.populateCaseContactOnInsertFromQuickAction(caseList);
            
Test.stopTest();

}
Please mark it as the Best Answer if your queries are solved.
Thank you