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
RaffusRaffus 

Not getting full coverage for this method

User-added imageThe complete code 
webservice static string changeMultipleCases_Owner(list<string> listCaseIds){
        string result = 'Success';
        list<Case> lstAcceptCases = new list<Case>();
        set<Id> setGroupIds = new set<Id>();
        for(Case objCs:[Select Id,Owner_Name__c,OwnerId,Status,Case_Queue_Name__c from Case where Id IN:listCaseIds AND (Program_Type__c=null OR Program_Type__c='Customer Pulse')]){
            if(string.valueof(objCs.OwnerId).startswith('00G')){
                lstAcceptCases.add(objCs);
                setGroupIds.add(objCs.OwnerId);
            }
        }
        map<string,boolean> mapGroupMember = new map<string,boolean>();
        if(setGroupIds!=null && setGroupIds.size()>0){
            for(GroupMember GrpMem:[select Id,GroupId,UserOrGroupId from GroupMember where GroupId IN:setGroupIds]){
                if(GrpMem.UserOrGroupId==userinfo.getuserid()){
                    mapGroupMember.put(GrpMem.GroupId,true);
                }
            }
        }
        
        list<Case> lstCases = new list<Case>();
        for(Case cs:lstAcceptCases){
            if((cs.Case_Queue_Name__c!=null && mapGroupMember.get(cs.OwnerId)!=null) || system.test.isRunningTest()){
                Case objCS = new Case(Id=cs.Id);
                objCS.OwnerId = userInfo.getUserId();
                lstCases.add(objCS);
            }
        }
        try{
            CaseUtilityCls.Skip_Staus_Validation = true;
            if(lstCases!=null && lstCases.size()>0)
                update lstCases;
        }catch(Exception e){
            result = e.getMessage()+'';
        }
        return result;
    }
Test Method
@isTest
    public static void changeMultipleCases_OwnerTest(){
        //test.startTest();
            Survey_Detail__c sd = new Survey_Detail__c();
            list<String> fieldList = new list<string>();
            map<String,Schema.SObjectField> fieldMap = Schema.getGlobalDescribe().get('Survey_Detail__c').getDescribe().fields.getMap();
            if(fieldMap != null){
                for(Schema.SObjectField f : fieldMap.values()){
                    Schema.DescribeFieldResult fd = f.getDescribe();
                    if(fd.isAccessible() && fd.isCustom() && fd.isCreateable()){
                        string strDataType = fd.getType()+'';
                        if(strDataType=='INTEGER' || strDataType=='DOUBLE')
                            sd.put(fd.getName(),3);
                        else if(strDataType=='DATE')
                            sd.put(fd.getName(),system.today());
                        else if(strDataType=='DATETIME') 
                            sd.put(fd.getName(),system.now());
                        else if(strDataType=='BOOLEAN')
                            sd.put(fd.getName(),true);
                        else if(strDataType=='STRING' || strDataType=='PICKLIST')
                            sd.put(fd.getName(),'123214');
                    }
                }
                sd.put('Email__c','leeba@nsiglobal.com');
                sd.put('Cinema_name__c','The Beach');
                sd.put('Brand__c',null);
                sd.put('CommentsBackup__c','Test Comments');
                sd.put('Location_Code__c',null);
                sd.put('Share_your_contact_details__c', 'No');
                //sd.put('Location_Code__c','Test Location');
                sd.Response_Id__c = '12345'; 
                insert sd;
                }
                
                Id rtid_acnt = Schema.SObjectType.Account.getRecordTypeInfosByName().get('Person Account').getRecordTypeId();
                Account acc = new Account();
                acc.firstname = 'test';
                acc.lastname = 'test';
                acc.recordtypeid = rtid_acnt;
                acc.VIP__c = true;
                acc.PersonMobilePhone = '+965';
                acc.U_by_Emaar_Tier__c = 'GLD';
                insert acc;
                
                Contact con = new Contact();
                con.firstname = 'test';
                con.lastname = 'test';
                con.mobilephone = '+965';
                con.email = 'test@test.com';
                //con.AccountId = acc.Id;
                insert con;
        
                // Opportunity Create.
                Opportunity objOpp = new Opportunity();
                objOpp.Name = 'Test Opp Name';
                objOpp.StageName = 'Qualification';
                objOpp.amount = 5000;
                objOpp.CloseDate = System.today();
                objOpp.Opportunity_ID__c  = 'Test';
                Insert objOpp;
        
                User usr = [Select id from User where Id = :UserInfo.getUserId()];
                System.RunAs(usr){
                     Test.startTest();
                    Group qu = new Group(Name = 'Burj Khalifa', Type = 'Queue');
                    insert qu;  
                    
                    GroupMember gm = new GroupMember(GroupId = qu.Id, UserOrGroupId = UserInfo.getUserId());
                    insert gm ; 
                
                Survey__c sur = new Survey__c();
                sur.Account__c = acc.Id;
                sur.Location__c = 'Burj Club';
                sur.Outbound_Call_Survey__c = false;
                sur.Survey_Country__c = 'UAE';
                sur.Division__c = 'Emaar Properties';
                sur.Name = 'test1';
                sur.Person_Email__c = 'a@atest.com';
                sur.Survey_Response_ID__c = sd.Response_Id__c;
                sur.Opportunity_ID__c = objOpp.Id;
                insert sur;
        
                Case objcs3 = new Case();
                    objcs3.AccountId = sur.Account__c;
                    objcs3.Priority = 'High';
                    objcs3.Survey__c = sur.Id;
                    objcs3.Senior_Management_First_Name_c__c = 'test';
                    objcs3.Senior_Management_Last_Name_c__c = 'test';
                    objcs3.Customer_s_Comments__c  = 'test';
                    objcs3.Customer_s_Suggestions__c  = 'test';
                    objcs3.Senior_Management_Comments__c  = 'test';
                    objcs3.Status = 'In Progress';
        			objcs3.Case_Queue_Name__c = qu.Name;
                    objcs3.contactId = con.Id;
        			
                    objcs3.Case_Queue_Name__c  = qu.Id;
                    CaseUtilityCls.Skip_Staus_Validation = true;
                    objcs3.Category__c  = 'Technical Services';
                    objcs3.Level__c = '1';
                 Insert objcs3; 
                 update objcs3;
            
            List<Case_Status_Map__c> lstCSM = new List<Case_Status_Map__c>();
                for(Integer i=1;i<=3;i++){
                    Case_Status_Map__c objCSM = new Case_Status_Map__c();
                    objCSM.Name = 'test2'+i;
                    objCSM.Level__c = 'L'+i;
                    if(i==1)
                        objCSM.Queue_Name__c = 'Burj Khalifa Team Lead';
                    if(i==2)
                        objCSM.Queue_Name__c = 'Burj Khalifa';
                    if(i==3)
                        objCSM.Queue_Name__c = 'Burj Club GM';
                    lstCSM.add(objCSM);
                } 
                
                if(lstCSM.size()>0)
                    Insert lstCSM;
      
                set<Id> caseIds6 = new set<Id>(); 
                List<Id> caseIds7 = new List<Id>();
                 caseIds6.add(objcs3.id);
                 caseIds7.add(objcs3.Id); 
        
                
                set<string> caseIds8 = new set<string>(); 
                caseIds8.add(objcs3.id);
        		CaseUtilityCls.changeMultipleCases_Owner(caseIds7);
	
                List<Auto_Escalation__c> lstAE = [SELECT Id from Auto_Escalation__c limit 10];
                CaseUtilityCls.Auto_Escalate(objcs3,lstAE,'Burj Club GM'); 
                
        		System.debug('userinfo id ' + UserInfo.getUserId());
                objcs3.Customer_Comments__c  = 'Test comments';
                update objcs3;
                //test.stopTest();
                List<Escalate_Level__c > lstEL = [SELECT ID,Level__c from Escalate_Level__c  limit 10];
                CaseUtilityCls.EscalateCase(objcs3.Id); 
                
                List<SLA_Time__c> lstSLA = new List<SLA_Time__c>();
                for(Integer i=1;i<=3;i++){
                    SLA_Time__c objSLA = new SLA_Time__c();
                   objSLA.Name = 'test'+i;
                   objSLA.Priority__c ='High'; 
                   if(i==1)
                    objSLA.Queue_Name__c = 'Burj Khalifa Team Lead';
                   if(i==2)
                    objSLA.Queue_Name__c = 'Burj Khalifa';
                   if(i==3)
                    objSLA.Queue_Name__c = 'Burj Club GM';
                    lstSLA.add(objSLA);
                } 
                
                if(lstSLA.size()>0) 
                    Insert lstSLA;
                    
                caseIds8 = new set<String>();
                caseIds8.add(objcs3.Id); 
                     test.stopTest();
    }
       // test.startTest();
                
        //test.stopTest();
    }