-
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