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
Zane Prater 15Zane Prater 15 

Need test coverage for SOQL being used for get case sobj to set the id and return that value

//Can not get coverage for lines 9 and 18

public class C_R_Item_List {
    
    public String Case_Id {get; set;}
    public List<C_R_Item__c> items;
    public static Map<Id, Case> CaseMap = new Map<Id, Case>();
    
    public Case cse{
        get{
            cse = [SELECT Id From Case where id = : Case_Id];
            return cse;
        }
        set;
    }
    
    public List<C_R_Item__c> getitems(){
        
        if(String.isBlank(Case_Id) == false){
            Case caseid = [SELECT Id From Case where id = : Case_Id];
            CaseMap.put(caseid.id,caseid);
        }
        
        System.debug('@@@ Case Map : '+CaseMap);
        
        items = [SELECT Code__c, Manufacturer__c, Item_Number__c, Quantity__c, UOM__c, PO_Number__c, Reship__c, Invoice_Number__c, Ship_Date__c 
                 FROM C_R_Item__c WHERE Case__r.id IN : CaseMap.keyset() AND Case__r.id =:Case_Id];
        System.debug('@@@ items '+items);
        return items; 
        
    }
}

//excerpt from test class

        test.startTest(); 

        Map<Id, Case> CaseMap = new Map<Id, Case>();
        string csstring;

        For(Case cse:[Select id From Case Where id =:cse1.id]) {
            C_R_Item_List cs  = new C_R_Item_List();
            csstring = cse.Id;
            cs.Case_Id = csstring;
            cs.cse = cse;
            CaseMap.put(cse.Id,cse);
        
        }

        For(C_R_Item__c cs1: [Select id, Case__r.id from C_R_Item__c where Case__r.id IN : CaseMap.keyset() AND Case__r.id =: csstring]) {

            C_R_Item_List cr2 = new C_R_Item_List();
            cr2.getitems();

           system.debug('value of csstring'+csstring);
           system.debug('value of cr_item'+cs1.Case__r.id); 

      }    

 test.stopTest();

 
Best Answer chosen by Zane Prater 15
ravi soniravi soni
HI Zane,
find your test class with 100% code coverage.
@istest
public class C_R_Item_ListTest {
    @istest static void test_unit(){
        //Insert Case
         Case oCase = new Case(Status ='New', Priority = 'Medium', Origin = 'Email'); 
          insert oCase;
       
        //Insert C_R_Item__c
        C_R_Item__c crItem= new C_R_Item__c();
        crItem.Ship_Date__c=date.today();
        crItem.Code__c=12541;
        crItem.case__c=oCase.Id;
        crItem.PO_Number__c='12345';
        crItem.Quantity__c = 1;
        //Fill all the field that mentioned in C_R_Item__c query.
        insert crItem;
        
        test.startTest();
        C_R_Item_List oCrItemObj= new C_R_Item_List();
        oCrItemObj.Case_Id=oCase.Id;
        case c=oCrItemObj.oCase;
        oCrItemObj.getitems();
        test.stopTest();
    }
}
let me know it it helps you by marking it as best answer.
Thank you
 

All Answers

Suraj Tripathi 47Suraj Tripathi 47
Hi Zane,
You can take reference from this below test class and this test class coverage is 100%.
@istest
public class C_R_Item_ListTest {
    @istest static void testMethodData(){
        case cas= new case();
        cas.SuppliedEmail='test@gmail.com';
        insert cas;
        
        C_R_Item__c crItem= new C_R_Item__c();
        crItem.Ship_Date__c=date.today();
        crItem.Code__c=54321;
        crItem.case__c=cas.Id;
        crItem.PO_Number__c='99999999';
        //Fill all the field as your requirement.
        insert crItem;
        
        test.startTest();
        C_R_Item_List crItemObj= new C_R_Item_List();
        crItemObj.Case_Id=cas.Id;
        case c=crItemObj.cse;
        crItemObj.getitems();
        test.stopTest();
    }
}

In case you find any other issue please mention. 
If you find your Solution then mark this as the best answer. 
ravi soniravi soni
HI Zane,
find your test class with 100% code coverage.
@istest
public class C_R_Item_ListTest {
    @istest static void test_unit(){
        //Insert Case
         Case oCase = new Case(Status ='New', Priority = 'Medium', Origin = 'Email'); 
          insert oCase;
       
        //Insert C_R_Item__c
        C_R_Item__c crItem= new C_R_Item__c();
        crItem.Ship_Date__c=date.today();
        crItem.Code__c=12541;
        crItem.case__c=oCase.Id;
        crItem.PO_Number__c='12345';
        crItem.Quantity__c = 1;
        //Fill all the field that mentioned in C_R_Item__c query.
        insert crItem;
        
        test.startTest();
        C_R_Item_List oCrItemObj= new C_R_Item_List();
        oCrItemObj.Case_Id=oCase.Id;
        case c=oCrItemObj.oCase;
        oCrItemObj.getitems();
        test.stopTest();
    }
}
let me know it it helps you by marking it as best answer.
Thank you
 
This was selected as the best answer
Zane Prater 15Zane Prater 15
Suraj, thanks for the response.  I was trying to set the getter/setter for case to a string rather than using the sobj variable.  That resolved it.