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
kittu9kittu9 

Test Class code Coverage for Batch class

global with sharing class PopulateBatch implements Database.Batchable<sObject>{

global String Query;

public List<Corporate_Account_List_Assignment__c> calist { set; get; }


//given a AccountId and List<AccountTeamMember >, it returns the record having AccountId=AccoundId
public List<AccountTeamMember> findAccountTeamMember(Id accountId, Map<Id,List<AccountTeamMember>> acc_tmListMap, String teamMemberRole){
if(acc_tmListMap== null || acc_tmListMap.size() == 0 || accountId==null ){
return null;
}

integer count = 0;
List<AccountTeamMember> atmList = acc_tmListMap.get(accountId);
List<AccountTeamMember> atmRetList = new List<AccountTeamMember>();

if(atmList != null){
for(AccountTeamMember am: atmList){
if(am.TeamMemberRole == teamMemberRole){
atmRetList.add(am);
count++;
}
}
}
if(count > 0){
return atmRetList;
}else{
return null;
}
}
public Account findAccount(Id account_name,List<Account> accList ){
if(accList == null || accList.size() == 0 || account_name==null ){
return null;
}
for(Account am: accList){
if(am.Id == account_name){
return am;
}
}
return null;
}

global Populate_Corp_List_Assignments_Batch(String q){
Query=q;
}

global Database.QueryLocator start(Database.BatchableContext BC){

return Database.getQueryLocator(query);
}

global void execute(Database.BatchableContext BC, List<Corporate_Account_List_Assignment__c> scope){


//calist = [SELECT Account_Name__c,Corporate_Partnership_Director_1__c,Corporate_Partnership_Director_2__c,Corporate_Partnership_Director_3__c,Corporate_Partnership_Director_4__c,Corporate_Partnership_Director_5__c,Marketing_Solutions_1__c, Marketing_Solutions_2__c, Marketing_Solutions_3__c, Media_Services_1__c, Media_Services_2__c, Media_Services_3__c, Digital_Manager_1__c,Digital_Manager_2__c,Digital_Manager_3__c,Digital_Manager_4__c,Digital_Manager_5__c, Id,Name,Ultimate_Parent_Name__c FROM Corporate_Account_List_Assignment__c];
//calist = [SELECT Account_Name__c,Corporate_Partnership_Director_1__c,Corporate_Partnership_Director_2__c,Corporate_Partnership_Director_3__c,Corporate_Partnership_Director_4__c,Corporate_Partnership_Director_5__c,Marketing_Solutions_1__c, Marketing_Solutions_2__c, Marketing_Solutions_3__c, Media_Services_1__c, Media_Services_2__c, Media_Services_3__c,Digital_Manager_1__c,Digital_Manager_2__c,Digital_Manager_3__c,Digital_Manager_4__c,Digital_Manager_5__c, Id,Name,Ultimate_Parent_Name__c FROM Corporate_Account_List_Assignment__c];
//prepare a map of ids and account_name__c
Map<Id,Id> ca_acc_map = new Map<Id,Id>();

for(Corporate_Account_List_Assignment__c ca : scope){

ca_acc_map.put(ca.Id,ca.Account_Name__c);

}


Map<Id,Account> ac2 = new Map<Id,Account>([SELECT Name,ParentId,Id FROM Account where Id in :ca_acc_map.values()]);
List<AccountTeamMember> atmcpd2 =[ SELECT Id,TeamMemberRole,UserId, IsDeleted,AccountId FROM AccountTeamMember WHERE AccountId in :ac2.keyset() AND Isdeleted = FALSE ];

Map<Id,List<AccountTeamMember>> acc_tmListMap = new Map<Id,List<AccountTeamMember>>();
for(AccountTeamMember atm: atmcpd2){
List<AccountTeamMember> atmlist;
if(acc_tmListMap.get(atm.AccountId) == null ){
atmlist = new List<AccountTeamMember>();

}else{
atmlist = acc_tmListMap.get(atm.AccountId);


}

atmList.add(atm);
acc_tmListMap.put(atm.AccountId,atmList);

}

for (Corporate_Account_List_Assignment__c ca : scope)
{
ca.Corporate_Partnership_Director_1__c = null;
ca.Corporate_Partnership_Director_2__c = null;
ca.Corporate_Partnership_Director_3__c = null;
ca.Corporate_Partnership_Director_4__c = null;
ca.Corporate_Partnership_Director_5__c = null;

ca.Digital_Manager_1__c = null;
ca.Digital_Manager_2__c = null;
ca.Digital_Manager_3__c = null;
ca.Digital_Manager_4__c = null;
ca.Digital_Manager_5__c = null;

ca.Marketing_Solutions_1__c = null;
ca.Marketing_Solutions_2__c = null;
ca.Marketing_Solutions_3__c = null;

ca.Media_Services_1__c = null;
ca.Media_Services_2__c = null;
ca.Media_Services_3__c = null;
System.debug('******ID********'+ca.Id);


//find atmcpd
Account accX = ac2.get(ca.Account_Name__c);
List<AccountTeamMember> atmcpd = findAccountTeamMember(accX.Id,acc_tmListMap,'Corporate Partnership Director' );
List<AccountTeamMember> atmMS = findAccountTeamMember(accX.Id,acc_tmListMap,'IMS');
List<AccountTeamMember> atmMDS = findAccountTeamMember(accX.Id,acc_tmListMap,'Media Services');
List<AccountTeamMember> atmDM = findAccountTeamMember(accX.Id,acc_tmListMap,'Digital Manager');


if(atmcpd!= null && atmcpd.size() > 0 )
{
if(atmcpd.size() > 0)
ca.Corporate_Partnership_Director_1__c = atmcpd.get(0).UserId;

if(atmcpd.size()>1)
ca.Corporate_Partnership_Director_2__c = atmcpd.get(1).UserId;

if(atmcpd.size()>2)
ca.Corporate_Partnership_Director_3__c = atmcpd.get(2).UserId;

if(atmcpd.size()>3)
ca.Corporate_Partnership_Director_4__c = atmcpd.get(3).UserId;

if(atmcpd.size()>4)
ca.Corporate_Partnership_Director_5__c = atmcpd.get(4).UserId;
}

if(atmms != null && atmms.size() > 0)
{
if(atmms.size() > 0)
ca.Marketing_Solutions_1__c = atmms.get(0).UserId;

if(atmms.size() > 1)
ca.Marketing_Solutions_2__c = atmms.get(1).UserId;

if(atmms.size() > 2)
ca.Marketing_Solutions_3__c = atmms.get(2).UserId;

}


if(atmmds != null && atmmds.size() > 0)
{
if(atmmds.size() > 0)
ca.Media_Services_1__c = atmmds.get(0).UserId;

if(atmmds.size() > 1)
ca.Media_Services_2__c = atmmds.get(1).UserId;

if(atmmds.size() > 2)
ca.Media_Services_3__c = atmmds.get(2).UserId;

}
if(atmdm != null && atmdm.size() > 0)
{
if(atmdm.size() > 0)
ca.Digital_Manager_1__c = atmdm.get(0).UserId;

if(atmdm.size() > 1)
ca.Digital_Manager_2__c = atmdm.get(1).UserId;

if(atmdm.size() > 2)
ca.Digital_Manager_3__c = atmdm.get(2).UserId;

if(atmdm.size() > 3)
ca.Digital_Manager_4__c = atmdm.get(3).UserId;

if(atmdm.size() > 4)
ca.Digital_Manager_5__c = atmdm.get(4).UserId;
}
}
update scope;

}

global void finish(Database.BatchableContext BC)
{

}
}

 

-------------------------

 

static testMethod void myUnitTest1()
{

Account a = new Account();
a.Name = 'Test';
a.Status__c = 'Prospect';
insert a;

Corporate_Account_List_Assignment__c caList = new Corporate_Account_List_Assignment__c();
caList.Account_Name__c = a.Id;
insert caList;


string query = 'SELECT Account_Name__c,Corporate_Partnership_Director_1__c,Corporate_Partnership_Director_2__c,Corporate_Partnership_Director_3__c,Corporate_Partnership_Director_4__c,Corporate_Partnership_Director_5__c,Marketing_Solutions_1__c, Marketing_Solutions_2__c, Marketing_Solutions_3__c, Media_Services_1__c, Media_Services_2__c, Media_Services_3__c,Digital_Manager_1__c,Digital_Manager_2__c,Digital_Manager_3__c,Digital_Manager_4__c,Digital_Manager_5__c, Id,Name,Ultimate_Parent_Name__c FROM Corporate_Account_List_Assignment__c';

Test.StartTest();


PopulateBatch   pcab = new  PopulateBatch (query);


ID batchprocessid = Database.executeBatch(pcab);


Test.StopTest();
}

 

Code coverage 44% can any one help me out to get 75%. thanks in advance.