You need to sign in to do that
Don't have an account?
megan.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); } }