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
megan.burchmegan.burch 

Help with Test Class Coverage

Hi, 

 

I have a trigger which takes an array of fields off one object and populates them to another object based on some logic. The trigger works great but I'm having problems getting the last part covered by my class. Any suggestions would be great. 

 

trigger RMRequestsTrigger on RM_Requests__c (before insert, before update)
{
    //Iterate through all RM requests passed to trigger   
    RM_Requests__c[] requests = trigger.new;
    
    for (RM_Requests__c r :requests)
    {
        //trigger if account is not null and record type is SIP Exclusive
        if (r.account__c != null && r.recordtypeid == '01260000000JAaN')
        {
            //create a list of accounts
            List<Account> accounts = [select Owner.id, id, name, GeoJunction__r.Market_Assignments__c, GeoJunction__r.Market_Assignments__r.Market_Manager_Shared1__c,
            GeoJunction__r.Market_Assignments__r.Market_Manager_Shared2__c, GeoJunction__r.Market_Assignments__r.Market_Manager_Shared_3__c, GeoJunction__r.Market_Assignments__r.Market_Manager__c
            from Account where id = :r.Account__c];
            
            for (Account a : accounts)
            {
                if (trigger.isinsert || (trigger.isupdate && trigger.oldmap.get(r.id).account__c != r.account__c))
                {
                r.Account_Owner_Time_of_Creation__c = a.owner.id;
                }
                
                //Set RM Request Owner to be the same as account owner if MM Override is false, current stage submitted to RM and Account owner Time of Creation is not null
                if(r.Account_Owner_Time_of_Creation__c != null)
                {
                   //If status is not null or in process by GHS Team set RM request owner to be the same as the account owner and blank out shared mms
                   if(r.Current_Stage__C != null && r.current_stage__c !='In Progress by GHS Team' && r.Market_Manager_Overide__c == false)
                    {
                        r.ownerid = r.Account_Owner_Time_of_Creation__c ;
                    }
                }
                
                if (trigger.isinsert || (trigger.isupdate && trigger.oldmap.get(r.id).ownerid != r.ownerid))
                {
                    r.market_manager_shared1__c = null;
                    r.market_manager_shared2__c = null;
                    r.market_manager_shared3__c = null;
                    
                    if (a.geojunction__c !=null)
                    {
                        //Set Shared MMs based off market assignement and request owner
     
                        if (r.ownerid == a.GeoJunction__r.Market_Assignments__r.Market_Manager__c)
                        {
                            r.market_manager_shared1__c = a.GeoJunction__r.Market_Assignments__r.Market_Manager_shared1__c;
                            r.market_manager_shared2__c = a.GeoJunction__r.Market_Assignments__r.Market_Manager_shared2__c;
                            r.market_manager_shared3__c = a.GeoJunction__r.Market_Assignments__r.Market_Manager_shared_3__c;
                        }
                        else if (r.ownerid == a.GeoJunction__r.Market_Assignments__r.Market_Manager_Shared1__c)
                        {
                            r.market_manager_shared1__c = a.GeoJunction__r.Market_Assignments__r.Market_Manager__c;
                            r.market_manager_shared2__c = a.GeoJunction__r.Market_Assignments__r.Market_Manager_shared2__c;
                            r.market_manager_shared3__c = a.GeoJunction__r.Market_Assignments__r.Market_Manager_shared_3__c;
                        }
                        else if (r.ownerid == a.GeoJunction__r.Market_Assignments__r.Market_Manager_Shared2__c)
                        {
                            r.market_manager_shared1__c = a.GeoJunction__r.Market_Assignments__r.Market_Manager__c;
                            r.market_manager_shared2__c = a.GeoJunction__r.Market_Assignments__r.Market_Manager_shared1__c;
                            r.market_manager_shared3__c = a.GeoJunction__r.Market_Assignments__r.Market_Manager_shared_3__c;
                        }
                        else if (r.ownerid == a.GeoJunction__r.Market_Assignments__r.Market_Manager_Shared_3__c)
                        {
                            r.market_manager_shared1__c = a.GeoJunction__r.Market_Assignments__r.Market_Manager__c;
                            r.market_manager_shared2__c = a.GeoJunction__r.Market_Assignments__r.Market_Manager_shared1__c;
                            r.market_manager_shared3__c = a.GeoJunction__r.Market_Assignments__r.Market_Manager_shared2__c;
                        }
                    }
                }
            }
        }
    }
}

 

@istest public class RMReqeustsTriggerTest{
    static testmethod void RMReqeustsTriggerTest(){
        
Geo_Codes__c geo = new geo_codes__c ();
        geo.name = 'test';
        insert geo;

Market_Assignments__c m1 = new Market_Assignments__c ();
        
         m1.Name = 'Market Assignment';

         insert m1;
        
        m1 = [select id, market_manager__c, market_manager_shared1__c, market_manager_shared2__c, market_manager_shared_3__c from market_assignments__c where id = :m1.id];
         system.debug ('M1 Shared =' + m1.Market_Manager_Shared1__c);
         
GeoJunction__c g1  = new GeoJunction__c();
      g1.shared_market__c = true;
      g1.geo_codes__c = geo.id;
      g1.market_assignments__c = m1.id;
      insert g1;
 
        g1 = [select id, name, geo_codes__c, market_assignments__c, market_assignments__r.market_manager__c, market_assignments__r.market_manager_shared1__c from geojunction__c where id = :g1.id];

Account a1 = new Account();

        a1.Name = 'Test Account';
        a1.geojunction__c = g1.id;
            insert a1;

        a1 = [select Owner.id, id, name, GeoJunction__r.Market_Assignments__c, GeoJunction__r.Market_Assignments__r.Market_Manager_Shared1__c,
              GeoJunction__r.Market_Assignments__r.Market_Manager_Shared2__c, GeoJunction__r.Market_Assignments__r.Market_Manager_Shared_3__c, GeoJunction__r.Market_Assignments__r.Market_Manager__c
              from Account where Id = :a1.id];

        
          m1.Name = 'Market Assignment';
          m1.market_manager__c = a1.ownerid;

          update m1;
          m1 = [select id, market_manager__c, market_manager_shared1__c, market_manager_shared2__c, market_manager_shared_3__c from market_assignments__c where id =:m1.id];          

        
     RM_Requests__c rmReq = new RM_Requests__c();
       
         rmReq.Account_Owner_Time_of_Creation__c = a1.OwnerId;
         rmReq.name = 'test';
         rmReq.Market_Manager_Overide__c = False;
         rmreq.account__c = a1.id;
         rmreq.current_stage__c = 'Submitted to RM Team';
         rmreq.recordtypeid = '01260000000JAaN';

            insert rmReq;
     system.debug ('shared 1 =' + rmreq.market_manager_shared1__c);
       
     rmreq = [select id, Account_Owner_Time_of_Creation__c, account__c, ownerid, shared_market_account__c, Market_Manager_Shared2__c, Market_Manager_Shared3__c, Market_Manager_Shared1__c from rm_requests__c where id = :rmreq.id];
            
            
    system.assertequals (rmReq.Account_Owner_Time_of_Creation__c, a1.OwnerId);
    system.assertequals (rmReq.ownerid, a1.ownerid);
    if (rmreq.ownerid == a1.GeoJunction__r.Market_Assignments__r.Market_Manager__c)
        {system.assertequals (rmreq.market_manager_shared1__c, m1.market_manager_shared1__c);
        system.assertequals (rmreq.market_manager_shared2__c, m1.market_manager_shared2__c);
        system.assertequals (rmreq.market_manager_shared3__c, m1.market_manager_shared_3__c);}


          rmReq.Market_Manager_Overide__c= True;
          rmReq.Account_Owner_Time_of_Creation__c = a1.OwnerId;
          rmreq.account__c = a1.id;
         
          update rmReq;
      
          system.assertequals(a1.OwnerId,rmReq.Account_Owner_Time_of_Creation__c);
   }
}