public void AddEventHandler_RemoveEventHandler(EventInfo eventInfo, EI_Class target, Delegate handler, int expectedStaticVariable) { // Add and make sure we bound the event. eventInfo.AddEventHandler(target, handler); target?.InvokeAllEvents(); EI_Class.InvokeStaticEvent(); Assert.Equal(expectedStaticVariable, EI_Class.AddEventHandler_RemoveEventHandler_Test_TrackingVariable); EI_Class.AddEventHandler_RemoveEventHandler_Test_TrackingVariable = 0; // Reset // Remove and make sure we unbound the event. eventInfo.RemoveEventHandler(target, handler); target?.InvokeAllEvents(); EI_Class.InvokeStaticEvent(); Assert.Equal(0, EI_Class.AddEventHandler_RemoveEventHandler_Test_TrackingVariable); }