public void TestEventIdsAndTypes()
 {
     Assert.AreNotEqual(OneSimpleEventArgs.TheEventId, AnotherSimpleEventArgs.TheEventId);
     Assert.IsTrue(EventIdToTypeMap.HasEventId(OneSimpleEventArgs.TheEventId));
     Assert.IsTrue(EventIdToTypeMap.HasEventId(AnotherSimpleEventArgs.TheEventId));
     Assert.IsTrue(EventIdToTypeMap.HasEventType <OneSimpleEventArgs>());
     Assert.IsTrue(EventIdToTypeMap.HasEventType <AnotherSimpleEventArgs>());
     Assert.IsFalse(EventIdToTypeMap.HasEventId(10000000));
     Assert.IsFalse(EventIdToTypeMap.HasEventType <NoIdEventArgs>());
 }
        private bool DrawListenersOfOneEventId(int eventId)
        {
            var listenerCount = m_Listeners.ContainsKey(eventId) ? m_Listeners[eventId].Count : 0;

            if (!m_ShowNoListenerEvents && listenerCount <= 0)
            {
                return(false);
            }

            var eventType   = EventIdToTypeMap.GetEventType(eventId);
            var displayName = m_SortingOrder == SortingOrder.EventTypeFullName ? eventType.FullName : eventType.Name;
            var foldout     = EditorGUILayout.Foldout(eventId == m_FoldoutEventId,
                                                      Core.Utility.Text.Format("[{0}] {1} ({2} listener(s))", eventId, displayName, listenerCount));

            if (eventId == m_FoldoutEventId && !foldout)
            {
                m_FoldoutEventId = 0;
            }

            if (foldout)
            {
                m_FoldoutEventId = eventId;
            }

            if (!foldout || listenerCount <= 0)
            {
                return(true);
            }

            EditorGUILayout.BeginHorizontal();
            {
                GUILayout.Space(FoldoutIndent);
                EditorGUILayout.BeginVertical();
                {
                    foreach (var listener in m_Listeners[eventId])
                    {
                        var targetName = listener.Target == null ? "<null>" : listener.Target.ToString();
                        var methodName = listener.Method.Name;
                        EditorGUILayout.LabelField(Core.Utility.Text.Format("Target: '{0}', Method: '{1}'",
                                                                            targetName, methodName));
                    }
                }
                EditorGUILayout.EndVertical();
            }
            EditorGUILayout.EndHorizontal();
            return(true);
        }
 public void TestGenerateEventIdError()
 {
     Assert.Throws <ArgumentException>(() => EventIdToTypeMap.Generate <AbstractEventArgs>());
 }