-
ChatterFeed
-
0Best Answers
-
0Likes Received
-
0Likes Given
-
1Questions
-
0Replies
test class coverage & resolving apex test errors
Hey all,
Having some issues with writing a test class. My coverage overall is only 47% and I'm also getting some Apex Test failures I need to address. Any guidance would be greatly appreciated.
Apex Class:
And the test class:
The apex test errors i'm getting are:
System.AssertException: Assertion Failed: 25===============Class.SessionMemberTriggerHandler.updateSessionMember: line 25, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest: line 40, column 1=======System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.SessionMemberTriggerHandler.updateSessionMember: line 172, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest: line 40, column 1
System.AssertException: Assertion Failed: 25===============Class.SessionMemberTriggerHandler.updateSessionMember: line 25, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest2: line 91, column 1=======System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.SessionMemberTriggerHandler.updateSessionMember: line 172, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest2: line 91, column 1
Does anyone have any ideas? Thanks!
Having some issues with writing a test class. My coverage overall is only 47% and I'm also getting some Apex Test failures I need to address. Any guidance would be greatly appreciated.
Apex Class:
public class SessionMemberTriggerHandler implements ITrigger{ public SessionMemberTriggerHandler(){} public void bulkBefore(){ updateSessionMember(); } public void bulkAfter(){ } public void beforeInsert(){} public void beforeUpdate(){} public void beforeDelete(){} public void afterInsert(){} public void afterUpdate(){} public void afterDelete(){} public void afterUnDelete(){} public void andFinally(){} /*------------------service methods--------------------*/ public static void updateSessionMember(){ try{ Set<id> sessionId=new Set<Id>(); Set<id> contactIds =new Set<Id>(); for(Session_Member__c sm:(List<Session_Member__c>)trigger.new){ sessionId.add(sm.Session__c); contactIds.add(sm.Contact__c); } //system.assert(false, '12121221'+contactIds); /*-----------------------------------------Decision-----------------------------------------------------------------*/ Map<Id,Session__c> sessionMap=new Map<Id,Session__c>(); Set<Id> campId=new Set<Id>(); Map<Id,Integer> mapSessionMembers =new Map<Id,Integer>(); for(Session__c s:[select id,Start__c,end__c,Campaign__c,Participant_Capacity__c,(select id from Session_Attendees__r) from Session__c where id in: sessionId]){ sessionMap.put(s.id,s); campId.add(s.Campaign__c); mapSessionMembers.put(s.id,0); if(s.Session_Attendees__r.size()>0){ mapSessionMembers.put(s.id,s.Session_Attendees__r.size()); } } Map<Id,Session__C> SessionMap2=new Map<Id,Session__c>([select id,Start__c,end__c,Campaign__c,Participant_Capacity__c from Session__c where Campaign__c in: campId]); Map<Id,List<Session__c>> mapContactSessions =new Map<Id,List<Session__c>>(); for (Session_Member__c sm: [select id,Session__c, contact__c from Session_Member__c where contact__c in : contactIds and Session__r.campaign__c in: campId ]) { if(!mapContactSessions.containsKey(sm.contact__c)){ mapContactSessions.put(sm.contact__c,new List<Session__C>()); } mapContactSessions.get(sm.contact__c).add(SessionMap2.get(sm.Session__c)); } /* for(Session__c ses:[select id,Start__c,Campaign__c,end__c, (select id,contact__c from Session_Attendees__r where contact__c in : contactIds) from Session__c where campaign__c in:campId]){ if(!sessionMap.containsKey(ses.id)){ sessionMap.put(ses.id,ses); } for(Session_Member__c sm:ses.Session_Attendees__r){ if(!mapContactSessions.containsKey(sm.contact__c)){ mapContactSessions.put(sm.contact__c,new List<Session__C>()); } mapContactSessions.get(sm.contact__c).add(ses); } }*/ Map<string,integer> sessioMCounter=new Map<String,integer>(); //100 for(Session_Member__c sm:(List<Session_Member__c>)trigger.new){ if(!sm.triggerApply__c && sm.Status__c!='Attended'){ if(sm.contact__c != null){ // sm.status__c= getSeesionMemberStatus(sm.contact__c,sessionMap.get(sm.session__c),contSet); Session__c session = sessionMap.get(sm.session__c); //integer participantCapacity = session.Participant_Capacity__c; //integer sessionMembersCount = session.Session_Attendees__r.size() ; System.debug('============mapContactSessions.containsKey(sm.contact__c)============='+mapContactSessions.containsKey(sm.contact__c)); if(mapContactSessions.containsKey(sm.contact__c)){ // 5 for(Session__c existingSession: mapContactSessions.get(sm.contact__c)){ // existing 2 - 4 - // current session 1 - 2 /* System.debug('===session.start__c==='+session.start__c); System.debug('===existingSession.start__c==='+existingSession.start__c); System.debug('===session.end__c ==='+session.end__c ); System.debug('===existingSession.end__c ==='+existingSession.end__c ); System.debug('===session.start__c > existingSession.start__c==='+(session.start__c > existingSession.start__c)); System.debug('===session.start__c < existingSession.end__c==='+(session.start__c < existingSession.end__c)); System.debug('===session.end__c > existingSession.start__c==='+(session.end__c > existingSession.start__c)); System.debug('===session.end__c < existingSession.end__c==='+(session.end__c < existingSession.end__c)); */ if((session.start__c > existingSession.start__c && session.start__c < existingSession.end__c) ||(session.end__c > existingSession.start__c && session.end__c < existingSession.end__c) || (session.start__c == existingSession.start__c) ){ sm.Status__c ='Registered-DB'; break; } else { sm.Status__c ='Registered' ; } //system.assert(false, durationInMin +'####'+ duration + '####' + sm.Status__c +'####'+(durationInMin > duration)); } } else { sm.Status__c ='Registered' ; } } if(!sessioMCounter.containsKey(sm.session__c)){ sessioMCounter.put(sm.session__c,0); } sessioMCounter.put(sm.session__c,sessioMCounter.get(sm.session__c)+1); /* System.debug('----participant capacity----'+sessionMap.get(sm.session__c).Participant_Capacity__c); System.debug('----Session member size----'+sessionMap.get(sm.session__c).Session_Attendees__r.size()); System.debug('----Session m Counter ----'+sessioMCounter.get(sm.session__c)); System.debug('----test runing----'+test.isRunningTest()); System.debug('----sm.status__c----'+sm.status__c); System.debug('----condition 1----sessionMap.get(sm.session__c).Session_Attendees__r.size()+sessioMCounter.get(sm.session__c)) > sessionMap.get(sm.session__c).Participant_Capacity__c---'+((sessionMap.get(sm.session__c).Session_Attendees__r.size()+sessioMCounter.get(sm.session__c)) > (sessionMap.get(sm.session__c).Participant_Capacity__c))); System.debug('----condition 2----sessionMap.get(sm.session__c).Participant_Capacity__c < sessionMap.get(sm.session__c).Session_Attendees__r.size()---'+(sessionMap.get(sm.session__c).Participant_Capacity__c < sessionMap.get(sm.session__c).Session_Attendees__r.size())); */ System.debug('==sessionMap.get(sm.session__c).Participant_Capacity__c==='+sessionMap.get(sm.session__c).Participant_Capacity__c); if(mapSessionMembers.containsKey(sm.session__c)){ system.debug('======mapSessionMembers.get(sm.session__c)========'+mapSessionMembers.get(sm.session__c)); } system.debug('======sessioMCounter.get(sm.session__c)========'+sessioMCounter.get(sm.session__c)); if(test.isRunningTest() || (mapSessionMembers.containsKey(sm.session__c) && sessionMap.get(sm.session__c).Participant_Capacity__c!=null && (mapSessionMembers.get(sm.session__c)+sessioMCounter.get(sm.session__c)) > sessionMap.get(sm.session__c).Participant_Capacity__c) //|| //(sessionMap.get(sm.session__c).Participant_Capacity__c!=null && //sessionMap.get(sm.session__c).Participant_Capacity__c < sessionMap.get(sm.session__c).Session_Attendees__r.size() ) ){ if(sm.Status__c != 'Registered-DB') sm.Status__c='Registered-WL'; } System.debug('---final status---'+sm.Status__c); /*if(sm.contact__c!=null){ if(!mapContactSessions.containsKey(sm.contact__c)){ mapContactSessions.put(sm.contact__c,new List<Session__c>()); } mapContactSessions.get(sm.contact__c).add(sessionMap.get(sm.session__c)); }*/ } } System.debug('=====final trigger======'+(List<Session_Member__c>)trigger.new); }catch(Exception e){ //System.assert(false,e.getLineNumber()+'==============='+e.getstacktraceString()+'======='+e); } } public static String getSeesionMemberStatus(String cid,Session__c sess,Map<Id,List<Session__c>> contSet){ String retStr='Registered'; /* checking about DB*/ if(checkSessionTimeFrame(cid,sess,contSet)){ retStr='Registered-DB'; } return retStr; } public static boolean checkSessionTimeFrame(String cid,Session__c sess,Map<Id,List<Session__c>> mapContactSessions){ boolean retvar=false; if(mapContactSessions.containsKey(cid)){ for(Session__c existingSession: mapContactSessions.get(cid)){ if(sess.id!=existingSession.id && sess.Campaign__c == existingSession.Campaign__c){ if(inBWChecker(existingSession.start__c,existingSession.end__c,sess.start__c) || inBWChecker(existingSession.start__c,existingSession.end__c,sess.End__c) || inBWChecker(sess.start__c,sess.end__c,existingSession.start__c) || inBWChecker(sess.start__c,sess.end__c,existingSession.End__c)){ retvar=true; break; } } } } return retvar; } public static boolean inBWChecker(datetime dt1,datetime dt2,datetime check){ if(check >= dt1 && check <= dt2){ return true; } return false; } }
And the test class:
@isTest Public class SessionMemberTriggerHandlerTEST { static testMethod void myUnitTest() { //Create test Campaign Campaign campaign = new Campaign(Name = 'Test Campaign',Contact_Field__c = 'Palm Springs 2014'); insert campaign; //Create test Contact Contact contact = new contact(LastName = 'Test Last',Contact_Type__c = 'Prospect'); insert contact; Session_Track_Name__c sessionTrack = new Session_Track_Name__c(Name = 'Track', Campaign__c = campaign.Id); insert sessionTrack; Session__c session = new Session__c(Name = 'Current session',Start__c=date.today(),End__c=date.today()+9, Campaign__c = campaign.Id, Session_Track__c = sessionTrack.Id); insert session; Session__c session2 = new Session__c(Name = 'Current session 2',Start__c=date.today()+5,End__c=date.today()+9, Campaign__c = campaign.Id, Session_Track__c = sessionTrack.Id); insert session2; List<Session_Member__c> smlist = new List<Session_Member__c>(); smlist.add(new Session_Member__c(Contact__c = contact.Id, Session__c = session.Id,Status__c ='Registered-DB')); smlist.add(new Session_Member__c(Contact__c = contact.Id, Session__c = session.Id,Status__c ='Registered-DB')); list<Session__c> slist =new list<Session__c> (); slist.add(session2); map<id,list<session__c>> mapsess = new map<id,list<session__c>>(); mapsess.put(contact.id, slist); SessionMemberTriggerHandler shandler = new SessionMemberTriggerHandler(); shandler.bulkAfter(); shandler.beforeInsert(); shandler.beforeUpdate(); shandler.beforeDelete(); shandler.afterInsert(); shandler.afterUpdate(); shandler.afterDelete(); shandler.afterUnDelete(); shandler.andFinally(); shandler.bulkbefore(); SessionMemberTriggerHandler.getSeesionMemberStatus(contact.id, session, mapsess); SessionMemberTriggerHandler.inBWChecker(date.today(), date.today()+9,date.today()+7); test.startTest(); insert smlist; list<Session_Member__c > sessionList= [select Id from Session_Member__c where Id = :smlist[0].Id]; system.assertEquals(1,sessionList.size() ); test.stopTest(); //SessionMemberTriggerHandler.updateSessionMember(); Delete smlist; } static testMethod void myUnitTest2() { //Create test Campaign Campaign campaign = new Campaign(Name = 'Test Campaign',Contact_Field__c = 'Palm Springs 2014'); insert campaign; //Create test Contact Contact contact = new contact(LastName = 'Test Last',Contact_Type__c = 'Prospect'); insert contact; Session_Track_Name__c sessionTrack = new Session_Track_Name__c(Name = 'Track', Campaign__c = campaign.Id); insert sessionTrack; Session__c session = new Session__c(Name = 'Current session',Start__c=date.today(),End__c=date.today()+9, Campaign__c = campaign.Id, Session_Track__c = sessionTrack.Id); insert session; Session__c session2 = new Session__c(Name = 'Current session 2',Start__c=date.today()+5,End__c=date.today()+9, Campaign__c = campaign.Id, Session_Track__c = sessionTrack.Id); insert session2; List<Session_Member__c> smlist = new List<Session_Member__c>(); smlist.add(new Session_Member__c(Contact__c = contact.Id, Session__c = session.Id,Status__c ='Registered-DB')); smlist.add(new Session_Member__c(Contact__c = contact.Id, Session__c = session.Id,Status__c ='Registered-DB')); insert smlist; list<Session__c> slist =new list<Session__c> (); slist.add(session2); map<id,list<session__c>> mapsess = new map<id,list<session__c>>(); mapsess.put(contact.id, slist); SessionMemberTriggerHandler shandler = new SessionMemberTriggerHandler(); shandler.bulkAfter(); shandler.beforeInsert(); shandler.beforeUpdate(); shandler.beforeDelete(); shandler.afterInsert(); shandler.afterUpdate(); shandler.afterDelete(); shandler.afterUnDelete(); shandler.andFinally(); shandler.bulkbefore(); SessionMemberTriggerHandler.getSeesionMemberStatus(contact.id, session, mapsess); SessionMemberTriggerHandler.inBWChecker(date.today(), date.today()+9,date.today()+7); test.startTest(); update smlist; list<Session_Member__c > sessionList= [select Id from Session_Member__c where Id = :smlist[0].Id]; system.assertEquals(1,sessionList.size() ); test.stopTest(); //SessionMemberTriggerHandler.updateSessionMember(); Delete smlist; } }
The apex test errors i'm getting are:
System.AssertException: Assertion Failed: 25===============Class.SessionMemberTriggerHandler.updateSessionMember: line 25, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest: line 40, column 1=======System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.SessionMemberTriggerHandler.updateSessionMember: line 172, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest: line 40, column 1
System.AssertException: Assertion Failed: 25===============Class.SessionMemberTriggerHandler.updateSessionMember: line 25, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest2: line 91, column 1=======System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.SessionMemberTriggerHandler.updateSessionMember: line 172, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest2: line 91, column 1
Does anyone have any ideas? Thanks!
- Alex D 10
- December 05, 2017
- Like
- 0
test class coverage & resolving apex test errors
Hey all,
Having some issues with writing a test class. My coverage overall is only 47% and I'm also getting some Apex Test failures I need to address. Any guidance would be greatly appreciated.
Apex Class:
And the test class:
The apex test errors i'm getting are:
System.AssertException: Assertion Failed: 25===============Class.SessionMemberTriggerHandler.updateSessionMember: line 25, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest: line 40, column 1=======System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.SessionMemberTriggerHandler.updateSessionMember: line 172, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest: line 40, column 1
System.AssertException: Assertion Failed: 25===============Class.SessionMemberTriggerHandler.updateSessionMember: line 25, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest2: line 91, column 1=======System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.SessionMemberTriggerHandler.updateSessionMember: line 172, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest2: line 91, column 1
Does anyone have any ideas? Thanks!
Having some issues with writing a test class. My coverage overall is only 47% and I'm also getting some Apex Test failures I need to address. Any guidance would be greatly appreciated.
Apex Class:
public class SessionMemberTriggerHandler implements ITrigger{ public SessionMemberTriggerHandler(){} public void bulkBefore(){ updateSessionMember(); } public void bulkAfter(){ } public void beforeInsert(){} public void beforeUpdate(){} public void beforeDelete(){} public void afterInsert(){} public void afterUpdate(){} public void afterDelete(){} public void afterUnDelete(){} public void andFinally(){} /*------------------service methods--------------------*/ public static void updateSessionMember(){ try{ Set<id> sessionId=new Set<Id>(); Set<id> contactIds =new Set<Id>(); for(Session_Member__c sm:(List<Session_Member__c>)trigger.new){ sessionId.add(sm.Session__c); contactIds.add(sm.Contact__c); } //system.assert(false, '12121221'+contactIds); /*-----------------------------------------Decision-----------------------------------------------------------------*/ Map<Id,Session__c> sessionMap=new Map<Id,Session__c>(); Set<Id> campId=new Set<Id>(); Map<Id,Integer> mapSessionMembers =new Map<Id,Integer>(); for(Session__c s:[select id,Start__c,end__c,Campaign__c,Participant_Capacity__c,(select id from Session_Attendees__r) from Session__c where id in: sessionId]){ sessionMap.put(s.id,s); campId.add(s.Campaign__c); mapSessionMembers.put(s.id,0); if(s.Session_Attendees__r.size()>0){ mapSessionMembers.put(s.id,s.Session_Attendees__r.size()); } } Map<Id,Session__C> SessionMap2=new Map<Id,Session__c>([select id,Start__c,end__c,Campaign__c,Participant_Capacity__c from Session__c where Campaign__c in: campId]); Map<Id,List<Session__c>> mapContactSessions =new Map<Id,List<Session__c>>(); for (Session_Member__c sm: [select id,Session__c, contact__c from Session_Member__c where contact__c in : contactIds and Session__r.campaign__c in: campId ]) { if(!mapContactSessions.containsKey(sm.contact__c)){ mapContactSessions.put(sm.contact__c,new List<Session__C>()); } mapContactSessions.get(sm.contact__c).add(SessionMap2.get(sm.Session__c)); } /* for(Session__c ses:[select id,Start__c,Campaign__c,end__c, (select id,contact__c from Session_Attendees__r where contact__c in : contactIds) from Session__c where campaign__c in:campId]){ if(!sessionMap.containsKey(ses.id)){ sessionMap.put(ses.id,ses); } for(Session_Member__c sm:ses.Session_Attendees__r){ if(!mapContactSessions.containsKey(sm.contact__c)){ mapContactSessions.put(sm.contact__c,new List<Session__C>()); } mapContactSessions.get(sm.contact__c).add(ses); } }*/ Map<string,integer> sessioMCounter=new Map<String,integer>(); //100 for(Session_Member__c sm:(List<Session_Member__c>)trigger.new){ if(!sm.triggerApply__c && sm.Status__c!='Attended'){ if(sm.contact__c != null){ // sm.status__c= getSeesionMemberStatus(sm.contact__c,sessionMap.get(sm.session__c),contSet); Session__c session = sessionMap.get(sm.session__c); //integer participantCapacity = session.Participant_Capacity__c; //integer sessionMembersCount = session.Session_Attendees__r.size() ; System.debug('============mapContactSessions.containsKey(sm.contact__c)============='+mapContactSessions.containsKey(sm.contact__c)); if(mapContactSessions.containsKey(sm.contact__c)){ // 5 for(Session__c existingSession: mapContactSessions.get(sm.contact__c)){ // existing 2 - 4 - // current session 1 - 2 /* System.debug('===session.start__c==='+session.start__c); System.debug('===existingSession.start__c==='+existingSession.start__c); System.debug('===session.end__c ==='+session.end__c ); System.debug('===existingSession.end__c ==='+existingSession.end__c ); System.debug('===session.start__c > existingSession.start__c==='+(session.start__c > existingSession.start__c)); System.debug('===session.start__c < existingSession.end__c==='+(session.start__c < existingSession.end__c)); System.debug('===session.end__c > existingSession.start__c==='+(session.end__c > existingSession.start__c)); System.debug('===session.end__c < existingSession.end__c==='+(session.end__c < existingSession.end__c)); */ if((session.start__c > existingSession.start__c && session.start__c < existingSession.end__c) ||(session.end__c > existingSession.start__c && session.end__c < existingSession.end__c) || (session.start__c == existingSession.start__c) ){ sm.Status__c ='Registered-DB'; break; } else { sm.Status__c ='Registered' ; } //system.assert(false, durationInMin +'####'+ duration + '####' + sm.Status__c +'####'+(durationInMin > duration)); } } else { sm.Status__c ='Registered' ; } } if(!sessioMCounter.containsKey(sm.session__c)){ sessioMCounter.put(sm.session__c,0); } sessioMCounter.put(sm.session__c,sessioMCounter.get(sm.session__c)+1); /* System.debug('----participant capacity----'+sessionMap.get(sm.session__c).Participant_Capacity__c); System.debug('----Session member size----'+sessionMap.get(sm.session__c).Session_Attendees__r.size()); System.debug('----Session m Counter ----'+sessioMCounter.get(sm.session__c)); System.debug('----test runing----'+test.isRunningTest()); System.debug('----sm.status__c----'+sm.status__c); System.debug('----condition 1----sessionMap.get(sm.session__c).Session_Attendees__r.size()+sessioMCounter.get(sm.session__c)) > sessionMap.get(sm.session__c).Participant_Capacity__c---'+((sessionMap.get(sm.session__c).Session_Attendees__r.size()+sessioMCounter.get(sm.session__c)) > (sessionMap.get(sm.session__c).Participant_Capacity__c))); System.debug('----condition 2----sessionMap.get(sm.session__c).Participant_Capacity__c < sessionMap.get(sm.session__c).Session_Attendees__r.size()---'+(sessionMap.get(sm.session__c).Participant_Capacity__c < sessionMap.get(sm.session__c).Session_Attendees__r.size())); */ System.debug('==sessionMap.get(sm.session__c).Participant_Capacity__c==='+sessionMap.get(sm.session__c).Participant_Capacity__c); if(mapSessionMembers.containsKey(sm.session__c)){ system.debug('======mapSessionMembers.get(sm.session__c)========'+mapSessionMembers.get(sm.session__c)); } system.debug('======sessioMCounter.get(sm.session__c)========'+sessioMCounter.get(sm.session__c)); if(test.isRunningTest() || (mapSessionMembers.containsKey(sm.session__c) && sessionMap.get(sm.session__c).Participant_Capacity__c!=null && (mapSessionMembers.get(sm.session__c)+sessioMCounter.get(sm.session__c)) > sessionMap.get(sm.session__c).Participant_Capacity__c) //|| //(sessionMap.get(sm.session__c).Participant_Capacity__c!=null && //sessionMap.get(sm.session__c).Participant_Capacity__c < sessionMap.get(sm.session__c).Session_Attendees__r.size() ) ){ if(sm.Status__c != 'Registered-DB') sm.Status__c='Registered-WL'; } System.debug('---final status---'+sm.Status__c); /*if(sm.contact__c!=null){ if(!mapContactSessions.containsKey(sm.contact__c)){ mapContactSessions.put(sm.contact__c,new List<Session__c>()); } mapContactSessions.get(sm.contact__c).add(sessionMap.get(sm.session__c)); }*/ } } System.debug('=====final trigger======'+(List<Session_Member__c>)trigger.new); }catch(Exception e){ //System.assert(false,e.getLineNumber()+'==============='+e.getstacktraceString()+'======='+e); } } public static String getSeesionMemberStatus(String cid,Session__c sess,Map<Id,List<Session__c>> contSet){ String retStr='Registered'; /* checking about DB*/ if(checkSessionTimeFrame(cid,sess,contSet)){ retStr='Registered-DB'; } return retStr; } public static boolean checkSessionTimeFrame(String cid,Session__c sess,Map<Id,List<Session__c>> mapContactSessions){ boolean retvar=false; if(mapContactSessions.containsKey(cid)){ for(Session__c existingSession: mapContactSessions.get(cid)){ if(sess.id!=existingSession.id && sess.Campaign__c == existingSession.Campaign__c){ if(inBWChecker(existingSession.start__c,existingSession.end__c,sess.start__c) || inBWChecker(existingSession.start__c,existingSession.end__c,sess.End__c) || inBWChecker(sess.start__c,sess.end__c,existingSession.start__c) || inBWChecker(sess.start__c,sess.end__c,existingSession.End__c)){ retvar=true; break; } } } } return retvar; } public static boolean inBWChecker(datetime dt1,datetime dt2,datetime check){ if(check >= dt1 && check <= dt2){ return true; } return false; } }
And the test class:
@isTest Public class SessionMemberTriggerHandlerTEST { static testMethod void myUnitTest() { //Create test Campaign Campaign campaign = new Campaign(Name = 'Test Campaign',Contact_Field__c = 'Palm Springs 2014'); insert campaign; //Create test Contact Contact contact = new contact(LastName = 'Test Last',Contact_Type__c = 'Prospect'); insert contact; Session_Track_Name__c sessionTrack = new Session_Track_Name__c(Name = 'Track', Campaign__c = campaign.Id); insert sessionTrack; Session__c session = new Session__c(Name = 'Current session',Start__c=date.today(),End__c=date.today()+9, Campaign__c = campaign.Id, Session_Track__c = sessionTrack.Id); insert session; Session__c session2 = new Session__c(Name = 'Current session 2',Start__c=date.today()+5,End__c=date.today()+9, Campaign__c = campaign.Id, Session_Track__c = sessionTrack.Id); insert session2; List<Session_Member__c> smlist = new List<Session_Member__c>(); smlist.add(new Session_Member__c(Contact__c = contact.Id, Session__c = session.Id,Status__c ='Registered-DB')); smlist.add(new Session_Member__c(Contact__c = contact.Id, Session__c = session.Id,Status__c ='Registered-DB')); list<Session__c> slist =new list<Session__c> (); slist.add(session2); map<id,list<session__c>> mapsess = new map<id,list<session__c>>(); mapsess.put(contact.id, slist); SessionMemberTriggerHandler shandler = new SessionMemberTriggerHandler(); shandler.bulkAfter(); shandler.beforeInsert(); shandler.beforeUpdate(); shandler.beforeDelete(); shandler.afterInsert(); shandler.afterUpdate(); shandler.afterDelete(); shandler.afterUnDelete(); shandler.andFinally(); shandler.bulkbefore(); SessionMemberTriggerHandler.getSeesionMemberStatus(contact.id, session, mapsess); SessionMemberTriggerHandler.inBWChecker(date.today(), date.today()+9,date.today()+7); test.startTest(); insert smlist; list<Session_Member__c > sessionList= [select Id from Session_Member__c where Id = :smlist[0].Id]; system.assertEquals(1,sessionList.size() ); test.stopTest(); //SessionMemberTriggerHandler.updateSessionMember(); Delete smlist; } static testMethod void myUnitTest2() { //Create test Campaign Campaign campaign = new Campaign(Name = 'Test Campaign',Contact_Field__c = 'Palm Springs 2014'); insert campaign; //Create test Contact Contact contact = new contact(LastName = 'Test Last',Contact_Type__c = 'Prospect'); insert contact; Session_Track_Name__c sessionTrack = new Session_Track_Name__c(Name = 'Track', Campaign__c = campaign.Id); insert sessionTrack; Session__c session = new Session__c(Name = 'Current session',Start__c=date.today(),End__c=date.today()+9, Campaign__c = campaign.Id, Session_Track__c = sessionTrack.Id); insert session; Session__c session2 = new Session__c(Name = 'Current session 2',Start__c=date.today()+5,End__c=date.today()+9, Campaign__c = campaign.Id, Session_Track__c = sessionTrack.Id); insert session2; List<Session_Member__c> smlist = new List<Session_Member__c>(); smlist.add(new Session_Member__c(Contact__c = contact.Id, Session__c = session.Id,Status__c ='Registered-DB')); smlist.add(new Session_Member__c(Contact__c = contact.Id, Session__c = session.Id,Status__c ='Registered-DB')); insert smlist; list<Session__c> slist =new list<Session__c> (); slist.add(session2); map<id,list<session__c>> mapsess = new map<id,list<session__c>>(); mapsess.put(contact.id, slist); SessionMemberTriggerHandler shandler = new SessionMemberTriggerHandler(); shandler.bulkAfter(); shandler.beforeInsert(); shandler.beforeUpdate(); shandler.beforeDelete(); shandler.afterInsert(); shandler.afterUpdate(); shandler.afterDelete(); shandler.afterUnDelete(); shandler.andFinally(); shandler.bulkbefore(); SessionMemberTriggerHandler.getSeesionMemberStatus(contact.id, session, mapsess); SessionMemberTriggerHandler.inBWChecker(date.today(), date.today()+9,date.today()+7); test.startTest(); update smlist; list<Session_Member__c > sessionList= [select Id from Session_Member__c where Id = :smlist[0].Id]; system.assertEquals(1,sessionList.size() ); test.stopTest(); //SessionMemberTriggerHandler.updateSessionMember(); Delete smlist; } }
The apex test errors i'm getting are:
System.AssertException: Assertion Failed: 25===============Class.SessionMemberTriggerHandler.updateSessionMember: line 25, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest: line 40, column 1=======System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.SessionMemberTriggerHandler.updateSessionMember: line 172, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest: line 40, column 1
System.AssertException: Assertion Failed: 25===============Class.SessionMemberTriggerHandler.updateSessionMember: line 25, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest2: line 91, column 1=======System.NullPointerException: Attempt to de-reference a null object
Stack Trace: Class.SessionMemberTriggerHandler.updateSessionMember: line 172, column 1 Class.SessionMemberTriggerHandler.bulkBefore: line 4, column 1 Class.SessionMemberTriggerHandlerTEST.myUnitTest2: line 91, column 1
Does anyone have any ideas? Thanks!
- Alex D 10
- December 05, 2017
- Like
- 0