You need to sign in to do that
Don't have an account?
sumit d
test class coverage in trigger helper
Hi All,
i have a test class for trigger helper but its giving me error:-Null Pointer Exception
My helper class is given below:-
/**
* Helper Class For Trigger: Trigger_Log
*/
public without sharing class LogTriggerHelper{
public static List<rie__Log__c> newLogs;
public static List<rie__Log__c> oldLogs;
public static Map<Id, rie__Log__c> newMapLogs;
public static Map<Id, rie__Log__c> oldMapLogs;
public static boolean runTrigger = TRUE;
public static Map<Id, rie__Registration__c> mapParentRegisTrationsToUpdate = new Map<Id, rie__Registration__c>();
public static Map<Id, rie__Registration__c> mapParentAttendeesToUpdate = new Map<Id, rie__Registration__c>();
public static Map<Id, rie__Registration__c> mapParentSpeakersToUpdate = new Map<Id, rie__Registration__c>();
public static Map<Id, rie__Registration__c> mapParentRegToUpdateForSessions = new Map<Id, rie__Registration__c>();
public static void rollupForSpeaker(){
Set<Id> parentSpeakerIds = new Set<Id>();
for( rie__Log__c logObj : newLogs ){
if( logObj.rie__Speaker__c != Null ){
parentSpeakerIds.add( logObj.rie__Speaker__c );
}
}
Map<Id, rie__Speaker__c> mapIdToSpeaker = new Map<Id, rie__Speaker__c>();
for( rie__Speaker__c spkrObj : [ SELECT Id, rie__Registration__c
FROM rie__Speaker__c
WHERE Id IN: parentSpeakerIds ] ){
mapIdToSpeaker.put( spkrObj.Id, spkrObj );
}
Set<Id> parentRegistrationIds = new Set<Id>();
if( Trigger.isInsert || Trigger.isUpdate || Trigger.isUndelete ){
for( rie__Log__c logObj : newLogs ){
if( logObj.rie__Speaker__c != Null && mapIdToSpeaker.containsKey( logObj.rie__Speaker__c ) ){
Id parentSpeakerId = mapIdToSpeaker.get( logObj.rie__Speaker__c ).rie__Registration__c;
if( parentSpeakerId != Null ){
parentRegistrationIds.add( parentSpeakerId );
}
}
}
}
else if( Trigger.isDelete ) {
for( rie__Log__c logObj : oldLogs ){
if( logObj.rie__Speaker__c != Null && mapIdToSpeaker.containsKey( logObj.rie__Speaker__c ) ){
Id parentSpeakerId = mapIdToSpeaker.get( logObj.rie__Speaker__c ).rie__Registration__c;
if( parentSpeakerId != Null ){
parentRegistrationIds.add( parentSpeakerId );
}
}
}
}
if( parentRegistrationIds.size() > 0 ){
for( Id registrationId : parentRegistrationIds ) {
rie__Registration__c parentSpeaker = new rie__Registration__c( Id = registrationId );
parentSpeaker.rie__Speaker_Counter__c = 0;
parentSpeaker.rie__Speaker_Chat_Counter__c = 0;
parentSpeaker.rie__Speaker_Connect_Counter__c = 0;
mapParentSpeakersToUpdate.put( parentSpeaker.Id, parentSpeaker );
}
List<AggregateResult> aggrList = [ SELECT rie__Speaker__r.rie__Registration__c parentSpeaker,
COUNT(Id) speaker
FROM rie__Log__c
WHERE rie__Speaker__r.rie__Registration__c IN: parentRegistrationIds
GROUP BY rie__Speaker__r.rie__Registration__c ];
for( AggregateResult ag : aggrList ){
Id parentSpeakerId = (String)ag.get('parentSpeaker');
rie__Registration__c parentSpeaker = mapParentSpeakersToUpdate.get( parentSpeakerId );
parentSpeaker.rie__Speaker_Counter__c = (Decimal)ag.get( 'speaker' );
mapParentSpeakersToUpdate.put( parentSpeaker.Id, parentSpeaker );
}
List<AggregateResult> aggrListChat = [ SELECT rie__Speaker__r.rie__Registration__c parentSpeaker,
COUNT(Id) speaker
FROM rie__Log__c
WHERE rie__Speaker__r.rie__Registration__c IN: parentRegistrationIds
AND rie__Speaker_Chat__c = TRUE
GROUP BY rie__Speaker__r.rie__Registration__c ];
for( AggregateResult ag : aggrListChat ){
Id parentSpeakerId = (String)ag.get('parentSpeaker');
rie__Registration__c parentSpeaker = mapParentSpeakersToUpdate.get( parentSpeakerId );
parentSpeaker.rie__Speaker_Chat_Counter__c = (Decimal)ag.get( 'speaker' );
mapParentSpeakersToUpdate.put( parentSpeaker.Id, parentSpeaker );
}
List<AggregateResult> aggrListChatConnect = [ SELECT rie__Speaker__r.rie__Registration__c parentSpeaker,
COUNT(Id) speaker
FROM rie__Log__c
WHERE rie__Speaker__r.rie__Registration__c IN: parentRegistrationIds
AND rie__Speaker_Connect__c = TRUE
GROUP BY rie__Speaker__r.rie__Registration__c ];
for( AggregateResult ag : aggrListChatConnect ){
Id parentSpeakerId = (String)ag.get('parentSpeaker');
rie__Registration__c parentSpeaker = mapParentSpeakersToUpdate.get( parentSpeakerId );
parentSpeaker.rie__Speaker_Connect_Counter__c = (Decimal)ag.get( 'speaker' );
mapParentSpeakersToUpdate.put( parentSpeaker.Id, parentSpeaker );
}
}
}
public static void rollupForSession(){
Set<Id> parentSessionIds = new Set<Id>();
if( Trigger.isInsert || Trigger.isUpdate || Trigger.isUndelete ){
for( rie__Log__c logObj : newLogs ){
if( logObj.rie__Session__c != Null ){
parentSessionIds.add( logObj.rie__Session__c );
}
}
}
else if( Trigger.isDelete ) {
for( rie__Log__c logObj : oldLogs ){
if( logObj.rie__Session__c != Null ){
parentSessionIds.add( logObj.rie__Session__c );
}
}
}
if( parentSessionIds.size() > 0 ) {
Map<Id, List<rie__Registered_Session__c>> mapSessionIdToRegSessions = new Map<Id, List<rie__Registered_Session__c>>();
Set<Id> allSessionIds = new Set<Id>();
Set<Id> parentRegistrationIds = new Set<Id>();
for( rie__Registered_Session__c regSessionObj : [ SELECT Id, rie__Registration__c, rie__Session__c
FROM rie__Registered_Session__c
WHERE rie__Session__c IN: parentSessionIds ] ){
allSessionIds.add( regSessionObj.rie__Session__c );
parentRegistrationIds.add( regSessionObj.rie__Registration__c );
List<rie__Registered_Session__c> regSessions = new List<rie__Registered_Session__c>();
if( mapSessionIdToRegSessions.containsKey( regSessionObj.rie__Session__c )) {
regSessions = mapSessionIdToRegSessions.get( regSessionObj.rie__Session__c );
}
regSessions.add( regSessionObj );
mapSessionIdToRegSessions.put( regSessionObj.rie__Registration__c, regSessions );
}
if( parentRegistrationIds.size() > 0 ){
for( Id registrationId : parentRegistrationIds ) {
rie__Registration__c regObj = new rie__Registration__c( Id = registrationId );
regObj.rie__Session_Counter__c = 0;
mapParentRegToUpdateForSessions.put( regObj.Id, regObj );
}
List<AggregateResult> aggrList = [ SELECT rie__Session__c sessionId,
COUNT(Id) cnt
FROM rie__Log__c
WHERE rie__Session__c IN :allSessionIds
GROUP BY rie__Session__c ];
for( AggregateResult ag : aggrList ){
Id parentSessionId = (String)ag.get('sessionId');
// get all related registered sessions
List<rie__Registered_Session__c> regSessions = mapSessionIdToRegSessions.get( parentSessionId );
system.debug('regSessions'+regSessions);
for( rie__Registered_Session__c regSessionObj : regSessions ) {
rie__Registration__c reg = new rie__Registration__c( Id = regSessionObj.Registration__c );
rie__Registration__c registrationObjToUpdate = mapParentRegToUpdateForSessions.get( reg.Id );
if( registrationObjToUpdate == null ) {
registrationObjToUpdate = reg;
}
registrationObjToUpdate.rie__Session_Counter__c = registrationObjToUpdate.rie__Session_Counter__c == null ? 0 : registrationObjToUpdate.rie__Session_Counter__c;
registrationObjToUpdate.rie__Session_Counter__c =+ (Decimal)ag.get( 'cnt' );
mapParentRegToUpdateForSessions.put( registrationObjToUpdate.Id, registrationObjToUpdate );
}
}
}
}
}
}
My test class is given below:-
@istest
private class Trigger_LogTest {
static testmethod void rollupForSessionTest(){
Test.setMock(HttpCalloutMock.class, new Mock());
string requestBody = 'test';
String requestEndpoint =ZoomJWTAuthentication.getZoomCredentials().rie__Zoom_URL__c + 'users/' +'/meetings';
String requestMethod = 'POST';
httpResponse res = ZoomCalloutService.postCallout(requestMethod, requestEndpoint, requestBody);
CreateWebinarJSONParser cwp = CreateWebinarJSONParser.parse(res.getBody());
rie__Zoom_User__c z = new rie__Zoom_User__c();
z.rie__Email_Id__c = 'real@gmail.com';
z.rie__FirstName__c = 'Real';
z.rie__LastName__c = 'Int';
z.rie__User_Id__c = cwp.host_id;
z.rie__User_Type__c ='Licensed';
insert z;
Contact c = new Contact();
c.LastName = 'steven';
c.rie__Zoom_User__c = z.id;
insert c;
rie__Event__c evt = new rie__Event__c();
evt.rie__Event_Time_Zone__c = '(GMT-07:00) Pacific Daylight Time (America/Los_Angeles)';
insert evt;
rie__Session__c s = new rie__Session__c();
s.rie__Session_Status__c = 'Ready to Publish';
s.rie__Date_Time__c = System.today();
s.rie__Session_Organizer__c = c.id;
s.rie__Session_End_Time__c = System.today();
s.rie__Meeting_ID__c = '86023030645' ;
s.rie__Meeting_Password__c = '53b347b2a5';
s.rie__Event__c = evt.id;
insert s;
Session__c st = [select rie__Zoom_URL__c,Name,rie__Meeting_Password__c,
rie__Allow_Auto_Recording__c, rie__Zoom_User__c,
rie__Webinar_Creation_Allowed__c,rie__Session_End_Time__c,
rie__Date_Time__c,rie__Event_Time_Zone__c,rie__ZoomUserId__c
from rie__Session__c
where id =: s.id];
system.debug('st'+st);
rie__Speaker__c spkr = new rie__Speaker__c();
spkr.rie__Event__c = evt.id;
insert spkr;
system.debug('spkr'+spkr);
rie__Registration__c attendee = new rie__Registration__c();
attendee.rie__Event__c = evt.id;
insert attendee;
system.debug('attendee'+attendee);
rie__Registered_Session__c regSessionObj = new rie__Registered_Session__c();
regSessionObj.rie__Session__c = s.id;
regSessionObj.rie__Registration__c = attendee.id;
insert regSessionObj;
system.debug('regSessionObj'+regSessionObj);
rie__Log__c logs = new rie__Log__c();
logs.rie__Event__c = evt.id;
logs.rie__Session__c = st.id;
logs.rie__Speaker__c = spkr.id;
logs.rie__Attendee__c = attendee.id;
insert logs;
system.debug('log'+logs);
test.startTest();
delete logs;
test.stopTest();
}
}
i have a test class for trigger helper but its giving me error:-Null Pointer Exception
My helper class is given below:-
/**
* Helper Class For Trigger: Trigger_Log
*/
public without sharing class LogTriggerHelper{
public static List<rie__Log__c> newLogs;
public static List<rie__Log__c> oldLogs;
public static Map<Id, rie__Log__c> newMapLogs;
public static Map<Id, rie__Log__c> oldMapLogs;
public static boolean runTrigger = TRUE;
public static Map<Id, rie__Registration__c> mapParentRegisTrationsToUpdate = new Map<Id, rie__Registration__c>();
public static Map<Id, rie__Registration__c> mapParentAttendeesToUpdate = new Map<Id, rie__Registration__c>();
public static Map<Id, rie__Registration__c> mapParentSpeakersToUpdate = new Map<Id, rie__Registration__c>();
public static Map<Id, rie__Registration__c> mapParentRegToUpdateForSessions = new Map<Id, rie__Registration__c>();
public static void rollupForSpeaker(){
Set<Id> parentSpeakerIds = new Set<Id>();
for( rie__Log__c logObj : newLogs ){
if( logObj.rie__Speaker__c != Null ){
parentSpeakerIds.add( logObj.rie__Speaker__c );
}
}
Map<Id, rie__Speaker__c> mapIdToSpeaker = new Map<Id, rie__Speaker__c>();
for( rie__Speaker__c spkrObj : [ SELECT Id, rie__Registration__c
FROM rie__Speaker__c
WHERE Id IN: parentSpeakerIds ] ){
mapIdToSpeaker.put( spkrObj.Id, spkrObj );
}
Set<Id> parentRegistrationIds = new Set<Id>();
if( Trigger.isInsert || Trigger.isUpdate || Trigger.isUndelete ){
for( rie__Log__c logObj : newLogs ){
if( logObj.rie__Speaker__c != Null && mapIdToSpeaker.containsKey( logObj.rie__Speaker__c ) ){
Id parentSpeakerId = mapIdToSpeaker.get( logObj.rie__Speaker__c ).rie__Registration__c;
if( parentSpeakerId != Null ){
parentRegistrationIds.add( parentSpeakerId );
}
}
}
}
else if( Trigger.isDelete ) {
for( rie__Log__c logObj : oldLogs ){
if( logObj.rie__Speaker__c != Null && mapIdToSpeaker.containsKey( logObj.rie__Speaker__c ) ){
Id parentSpeakerId = mapIdToSpeaker.get( logObj.rie__Speaker__c ).rie__Registration__c;
if( parentSpeakerId != Null ){
parentRegistrationIds.add( parentSpeakerId );
}
}
}
}
if( parentRegistrationIds.size() > 0 ){
for( Id registrationId : parentRegistrationIds ) {
rie__Registration__c parentSpeaker = new rie__Registration__c( Id = registrationId );
parentSpeaker.rie__Speaker_Counter__c = 0;
parentSpeaker.rie__Speaker_Chat_Counter__c = 0;
parentSpeaker.rie__Speaker_Connect_Counter__c = 0;
mapParentSpeakersToUpdate.put( parentSpeaker.Id, parentSpeaker );
}
List<AggregateResult> aggrList = [ SELECT rie__Speaker__r.rie__Registration__c parentSpeaker,
COUNT(Id) speaker
FROM rie__Log__c
WHERE rie__Speaker__r.rie__Registration__c IN: parentRegistrationIds
GROUP BY rie__Speaker__r.rie__Registration__c ];
for( AggregateResult ag : aggrList ){
Id parentSpeakerId = (String)ag.get('parentSpeaker');
rie__Registration__c parentSpeaker = mapParentSpeakersToUpdate.get( parentSpeakerId );
parentSpeaker.rie__Speaker_Counter__c = (Decimal)ag.get( 'speaker' );
mapParentSpeakersToUpdate.put( parentSpeaker.Id, parentSpeaker );
}
List<AggregateResult> aggrListChat = [ SELECT rie__Speaker__r.rie__Registration__c parentSpeaker,
COUNT(Id) speaker
FROM rie__Log__c
WHERE rie__Speaker__r.rie__Registration__c IN: parentRegistrationIds
AND rie__Speaker_Chat__c = TRUE
GROUP BY rie__Speaker__r.rie__Registration__c ];
for( AggregateResult ag : aggrListChat ){
Id parentSpeakerId = (String)ag.get('parentSpeaker');
rie__Registration__c parentSpeaker = mapParentSpeakersToUpdate.get( parentSpeakerId );
parentSpeaker.rie__Speaker_Chat_Counter__c = (Decimal)ag.get( 'speaker' );
mapParentSpeakersToUpdate.put( parentSpeaker.Id, parentSpeaker );
}
List<AggregateResult> aggrListChatConnect = [ SELECT rie__Speaker__r.rie__Registration__c parentSpeaker,
COUNT(Id) speaker
FROM rie__Log__c
WHERE rie__Speaker__r.rie__Registration__c IN: parentRegistrationIds
AND rie__Speaker_Connect__c = TRUE
GROUP BY rie__Speaker__r.rie__Registration__c ];
for( AggregateResult ag : aggrListChatConnect ){
Id parentSpeakerId = (String)ag.get('parentSpeaker');
rie__Registration__c parentSpeaker = mapParentSpeakersToUpdate.get( parentSpeakerId );
parentSpeaker.rie__Speaker_Connect_Counter__c = (Decimal)ag.get( 'speaker' );
mapParentSpeakersToUpdate.put( parentSpeaker.Id, parentSpeaker );
}
}
}
public static void rollupForSession(){
Set<Id> parentSessionIds = new Set<Id>();
if( Trigger.isInsert || Trigger.isUpdate || Trigger.isUndelete ){
for( rie__Log__c logObj : newLogs ){
if( logObj.rie__Session__c != Null ){
parentSessionIds.add( logObj.rie__Session__c );
}
}
}
else if( Trigger.isDelete ) {
for( rie__Log__c logObj : oldLogs ){
if( logObj.rie__Session__c != Null ){
parentSessionIds.add( logObj.rie__Session__c );
}
}
}
if( parentSessionIds.size() > 0 ) {
Map<Id, List<rie__Registered_Session__c>> mapSessionIdToRegSessions = new Map<Id, List<rie__Registered_Session__c>>();
Set<Id> allSessionIds = new Set<Id>();
Set<Id> parentRegistrationIds = new Set<Id>();
for( rie__Registered_Session__c regSessionObj : [ SELECT Id, rie__Registration__c, rie__Session__c
FROM rie__Registered_Session__c
WHERE rie__Session__c IN: parentSessionIds ] ){
allSessionIds.add( regSessionObj.rie__Session__c );
parentRegistrationIds.add( regSessionObj.rie__Registration__c );
List<rie__Registered_Session__c> regSessions = new List<rie__Registered_Session__c>();
if( mapSessionIdToRegSessions.containsKey( regSessionObj.rie__Session__c )) {
regSessions = mapSessionIdToRegSessions.get( regSessionObj.rie__Session__c );
}
regSessions.add( regSessionObj );
mapSessionIdToRegSessions.put( regSessionObj.rie__Registration__c, regSessions );
}
if( parentRegistrationIds.size() > 0 ){
for( Id registrationId : parentRegistrationIds ) {
rie__Registration__c regObj = new rie__Registration__c( Id = registrationId );
regObj.rie__Session_Counter__c = 0;
mapParentRegToUpdateForSessions.put( regObj.Id, regObj );
}
List<AggregateResult> aggrList = [ SELECT rie__Session__c sessionId,
COUNT(Id) cnt
FROM rie__Log__c
WHERE rie__Session__c IN :allSessionIds
GROUP BY rie__Session__c ];
for( AggregateResult ag : aggrList ){
Id parentSessionId = (String)ag.get('sessionId');
// get all related registered sessions
List<rie__Registered_Session__c> regSessions = mapSessionIdToRegSessions.get( parentSessionId );
system.debug('regSessions'+regSessions);
for( rie__Registered_Session__c regSessionObj : regSessions ) {
rie__Registration__c reg = new rie__Registration__c( Id = regSessionObj.Registration__c );
rie__Registration__c registrationObjToUpdate = mapParentRegToUpdateForSessions.get( reg.Id );
if( registrationObjToUpdate == null ) {
registrationObjToUpdate = reg;
}
registrationObjToUpdate.rie__Session_Counter__c = registrationObjToUpdate.rie__Session_Counter__c == null ? 0 : registrationObjToUpdate.rie__Session_Counter__c;
registrationObjToUpdate.rie__Session_Counter__c =+ (Decimal)ag.get( 'cnt' );
mapParentRegToUpdateForSessions.put( registrationObjToUpdate.Id, registrationObjToUpdate );
}
}
}
}
}
}
My test class is given below:-
@istest
private class Trigger_LogTest {
static testmethod void rollupForSessionTest(){
Test.setMock(HttpCalloutMock.class, new Mock());
string requestBody = 'test';
String requestEndpoint =ZoomJWTAuthentication.getZoomCredentials().rie__Zoom_URL__c + 'users/' +'/meetings';
String requestMethod = 'POST';
httpResponse res = ZoomCalloutService.postCallout(requestMethod, requestEndpoint, requestBody);
CreateWebinarJSONParser cwp = CreateWebinarJSONParser.parse(res.getBody());
rie__Zoom_User__c z = new rie__Zoom_User__c();
z.rie__Email_Id__c = 'real@gmail.com';
z.rie__FirstName__c = 'Real';
z.rie__LastName__c = 'Int';
z.rie__User_Id__c = cwp.host_id;
z.rie__User_Type__c ='Licensed';
insert z;
Contact c = new Contact();
c.LastName = 'steven';
c.rie__Zoom_User__c = z.id;
insert c;
rie__Event__c evt = new rie__Event__c();
evt.rie__Event_Time_Zone__c = '(GMT-07:00) Pacific Daylight Time (America/Los_Angeles)';
insert evt;
rie__Session__c s = new rie__Session__c();
s.rie__Session_Status__c = 'Ready to Publish';
s.rie__Date_Time__c = System.today();
s.rie__Session_Organizer__c = c.id;
s.rie__Session_End_Time__c = System.today();
s.rie__Meeting_ID__c = '86023030645' ;
s.rie__Meeting_Password__c = '53b347b2a5';
s.rie__Event__c = evt.id;
insert s;
Session__c st = [select rie__Zoom_URL__c,Name,rie__Meeting_Password__c,
rie__Allow_Auto_Recording__c, rie__Zoom_User__c,
rie__Webinar_Creation_Allowed__c,rie__Session_End_Time__c,
rie__Date_Time__c,rie__Event_Time_Zone__c,rie__ZoomUserId__c
from rie__Session__c
where id =: s.id];
system.debug('st'+st);
rie__Speaker__c spkr = new rie__Speaker__c();
spkr.rie__Event__c = evt.id;
insert spkr;
system.debug('spkr'+spkr);
rie__Registration__c attendee = new rie__Registration__c();
attendee.rie__Event__c = evt.id;
insert attendee;
system.debug('attendee'+attendee);
rie__Registered_Session__c regSessionObj = new rie__Registered_Session__c();
regSessionObj.rie__Session__c = s.id;
regSessionObj.rie__Registration__c = attendee.id;
insert regSessionObj;
system.debug('regSessionObj'+regSessionObj);
rie__Log__c logs = new rie__Log__c();
logs.rie__Event__c = evt.id;
logs.rie__Session__c = st.id;
logs.rie__Speaker__c = spkr.id;
logs.rie__Attendee__c = attendee.id;
insert logs;
system.debug('log'+logs);
test.startTest();
delete logs;
test.stopTest();
}
}
Your code isn't in readable, can you repost it with code sample formatting?