+ Start a Discussion
sumit dsumit 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();
    }
   
}
SidPSidP
Sumit

Your code isn't in readable, can you repost it with code sample formatting?
=> Click on < > icon on the toolbar
=> Write your code in the popup box
=> Click Ok