public void UnityEvent_EditMode_InvokeDoesNotCallRuntimeListener()
    {
        var _event = new UnityEvent();

        UnityEventTools.AddPersistentListener(_event, new UnityAction(Counter.Add));
        Assert.AreEqual(UnityEventCallState.RuntimeOnly, _event.GetPersistentListenerState(0));
        Assert.False(Application.isPlaying);

        _event.Invoke();

        Assert.AreEqual(0, Counter.m_Count, "Expected Event to not be called when not in play mode and event is marked as Runtime only");

        for (int i = 1; i < 5; ++i)
        {
            UnityEventTools.AddIntPersistentListener(_event, new UnityAction <int>(Counter.NoOp), i);
        }

        _event.Invoke();

        Assert.AreEqual(0, Counter.m_Count, "Expected Event to not be called when not in play mode and event is marked as Runtime only");
    }