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
Anjana Sharma 9Anjana Sharma 9 

how to write test class for this trigger for bulk data?

public static void createContactsv1 (List<Account> listOfAccounts, Map<Id, Account> mapoldAccount){
    
    Set<Id> setOfIds = new Set<Id>();
    Map<Id, List<String>> mapOfAccountIdAndString = new  Map<Id, List<String>>();
   
    List<Account> accountToUpdate = new List<Account>();
    for(Account account : listOfAccounts){
        
        if(String.isNotBlank(account.Move_To_Account__c) && String.isNotBlank(account.Move_To_Contacts__c) && (mapoldAccount == null 
                                               || mapoldAccount.get(account.Id).Move_To_Account__c != account.Move_To_Account__c
                                               || mapoldAccount.get(account.Id).Move_To_Contacts__c != account.Move_To_Contacts__c))
            
        {
             
             List<String> listOfContacts = account.Contacts__c.split('\n');
             List<String> listOfMoveToContacts = account.Move_To_Contacts__c.split('\n');
            
            
            if(listOfContacts.size()>0)
            {
                String moveToContact = '';
                for(String contact : listOfMoveToContacts)
                {
                    if(listOfMoveToContacts.size()>0 && listOfContacts.contains(contact))  {
                        
                        if(!mapOfAccountIdAndString.containsKey(account.Move_To_Account__c)) //false
                            mapOfAccountIdAndString.put(account.Move_To_Account__c, new List<String>());
                        
                        mapOfAccountIdAndString.get(account.Move_To_Account__c).add(contact); //st/ st2 //st3
                        setOfIds.add(account.Id);
                        moveToContact = '\n';//if move to contact value is contains in contact__c value 
                    }
                    else{
                         moveToContact = moveToContact+contact+'\n'; //if not contains then add contact to movettocontact
                    }
                   
                }
                moveToContact = String.isNotBlank(moveToContact)?moveToContact:moveToContact.replaceAll('\\s', '');
                accountToUpdate.add(new Account(Id = account.Id, Move_To_Contacts__c = moveToContact));
            }
            
        }
    }
    
    if(mapOfAccountIdAndString.size() > 0)
    {    
        for(Id accountId : mapOfAccountIdAndString.keySet()) 
        {
            String contactValue = '';
            for(String contact : mapOfAccountIdAndString.get(accountId))
            {
                contactValue = contactValue+contact+'\n';
            }
            accountToUpdate.add(new Account(Id = accountId, Contacts__c = contactValue));
        }
        
        if(accountToUpdate.size()>0) update accountToUpdate; 
    }
    
    if(setOfIds.size()>0)
    {
        
        List<Contact> contacts = [SELECT Id, Email, FirstName, LastName, Account.Move_To_Account__c, AccountId FROM Contact WHERE AccountId  IN :setOfIds];
        
        list<Contact> contactsTomoved = new List<Contact>();
        if(contacts.size()>0)
        {
            for(Contact contact : contacts)
            {
                for(String contString : mapOfAccountIdAndString.get(contact.Account.Move_To_Account__c))
                { 
                    
                    if(contact.FirstName == contString.substringAfter('FirstName=').substringBefore(',')
                       && contact.LastName == contString.substringAfter('LastName=').substringBefore(',')
                       && contact.Email == contString.substringAfter('Email=').substringBefore(','))
                    {
                        contact.AccountId = contact.Account.Move_To_Account__c;
                        contactsTomoved.add(contact);
                    }
                }
                
            }
        }
        
        if(contactsTomoved.size() > 0)
update contactsTomoved;  
    }
 }
}
PriyaPriya (Salesforce Developers) 

Hi Anjana,

The developer community recommends providing any attempts/code you've started, any errors you're getting, or where exactly you're struggling in achieving this while posting a question.

Regards,

Priya Ranjan

Anjana Sharma 9Anjana Sharma 9
No ...I can't attempt any please help me regarding this