2 // System.ComponentModel.EventHandlerList test cases
5 // Gonzalo Paniagua Javier (gonzalo@ximian.com)
7 // (c) 2002 Ximian, Inc. (http://www.ximian.com)
10 #define NUNIT // Comment out this one if you wanna play with the test without using NUnit
13 using NUnit.Framework;
15 using System.Reflection;
19 using System.ComponentModel;
21 namespace MonoTests.System.ComponentModel
24 public class EventHandlerListTests : TestCase
27 public class EventHandlerListTests
31 public static ITest Suite
34 return new TestSuite (typeof (EventHandlerListTests));
38 public EventHandlerListTests () :
39 base ("MonoTests.System.ComponentModel.EventHandlerListTests testcase") { }
41 public EventHandlerListTests (string name) : base (name) { }
43 protected override void SetUp ()
46 static EventHandlerListTests ()
53 void Deleg1 (object o, EventArgs e)
58 void Deleg2 (object o, EventArgs e)
63 public void TestAll ()
65 EventHandlerList list = new EventHandlerList ();
68 EventHandler one = new EventHandler (Deleg1);
69 EventHandler two = new EventHandler (Deleg2);
72 AssertEquals ("TestAll #01", null, list [i1]);
73 AssertEquals ("TestAll #02", null, list [i2]);
75 list.AddHandler (i1, one);
76 d = list [i1] as EventHandler;
77 Assert ("TestAll #03", d != null);
79 d (this, EventArgs.Empty);
80 AssertEquals ("TestAll #04", 1, calls);
82 list.AddHandler (i2, two);
83 d = list [i1] as EventHandler;
84 Assert ("TestAll #05", d != null);
86 d (this, EventArgs.Empty);
87 AssertEquals ("TestAll #06", 2, calls);
89 d = list [i2] as EventHandler;
90 Assert ("TestAll #07", d != null);
92 d (this, EventArgs.Empty);
93 AssertEquals ("TestAll #08", 4, calls);
95 list.AddHandler (i2, two);
96 d = list [i2] as EventHandler;
97 Assert ("TestAll #08", d != null);
99 d (this, EventArgs.Empty);
100 AssertEquals ("TestAll #09", 16, calls);
102 list.RemoveHandler (i1, one);
103 d = list [i1] as EventHandler;
104 Assert ("TestAll #10", d == null);
106 list.RemoveHandler (i2, two);
107 d = list [i2] as EventHandler;
108 Assert ("TestAll #11", d != null);
110 list.RemoveHandler (i2, two);
111 d = list [i2] as EventHandler;
112 Assert ("TestAll #12", d == null);
114 list.AddHandler (i1, one);
115 d = list [i1] as EventHandler;
116 Assert ("TestAll #13", d != null);
118 list.AddHandler (i2, two);
119 d = list [i2] as EventHandler;
120 Assert ("TestAll #14", d != null);
122 list.AddHandler (i1, null);
123 Assert ("TestAll #15", list [i1] != null);
125 list.AddHandler (i2, null);
126 Assert ("TestAll #16", list [i2] != null);
132 void Assert (string msg, bool result)
135 Console.WriteLine (msg);
138 void AssertEquals (string msg, object expected, object real)
140 if (expected == null && real == null)
143 if (expected != null && expected.Equals (real))
146 Console.WriteLine ("{0}: expected: '{1}', got: '{2}'", msg, expected, real);
149 void Fail (string msg)
151 Console.WriteLine ("Failed: {0}", msg);
156 EventHandlerListTests p = new EventHandlerListTests ();
157 Type t = p.GetType ();
158 MethodInfo [] methods = t.GetMethods ();
159 foreach (MethodInfo m in methods) {
160 if (m.Name.Substring (0, 4) == "Test") {