2 // System.ComponentModel.EventHandlerList test cases
5 // Gonzalo Paniagua Javier (gonzalo@ximian.com)
6 // Martin Willemoes Hansen (mwh@sysrq.dk)
8 // (c) 2002 Ximian, Inc. (http://www.ximian.com)
9 // (c) 2003 Martin Willemoes Hansen
12 #define NUNIT // Comment out this one if you wanna play with the test without using NUnit
15 using NUnit
.Framework
;
17 using System
.Reflection
;
21 using System
.ComponentModel
;
23 namespace MonoTests
.System
.ComponentModel
27 public class EventHandlerListTests
30 public class EventHandlerListTests
35 public void GetReady ()
38 static EventHandlerListTests ()
45 void Deleg1 (object o
, EventArgs e
)
50 void Deleg2 (object o
, EventArgs e
)
58 EventHandlerList list
= new EventHandlerList ();
61 EventHandler one
= new EventHandler (Deleg1
);
62 EventHandler two
= new EventHandler (Deleg2
);
65 Assertion
.AssertEquals ("All #01", null, list
[i1
]);
66 Assertion
.AssertEquals ("All #02", null, list
[i2
]);
68 list
.AddHandler (i1
, one
);
69 d
= list
[i1
] as EventHandler
;
70 Assertion
.Assert ("All #03", d
!= null);
72 d (this, EventArgs
.Empty
);
73 Assertion
.AssertEquals ("All #04", 1, calls
);
75 list
.AddHandler (i2
, two
);
76 d
= list
[i1
] as EventHandler
;
77 Assertion
.Assert ("All #05", d
!= null);
79 d (this, EventArgs
.Empty
);
80 Assertion
.AssertEquals ("All #06", 2, calls
);
82 d
= list
[i2
] as EventHandler
;
83 Assertion
.Assert ("All #07", d
!= null);
85 d (this, EventArgs
.Empty
);
86 Assertion
.AssertEquals ("All #08", 4, calls
);
88 list
.AddHandler (i2
, two
);
89 d
= list
[i2
] as EventHandler
;
90 Assertion
.Assert ("All #08", d
!= null);
92 d (this, EventArgs
.Empty
);
93 Assertion
.AssertEquals ("All #09", 16, calls
);
95 list
.RemoveHandler (i1
, one
);
96 d
= list
[i1
] as EventHandler
;
97 Assertion
.Assert ("All #10", d
== null);
99 list
.RemoveHandler (i2
, two
);
100 d
= list
[i2
] as EventHandler
;
101 Assertion
.Assert ("All #11", d
!= null);
103 list
.RemoveHandler (i2
, two
);
104 d
= list
[i2
] as EventHandler
;
105 Assertion
.Assert ("All #12", d
== null);
107 list
.AddHandler (i1
, one
);
108 d
= list
[i1
] as EventHandler
;
109 Assertion
.Assert ("All #13", d
!= null);
111 list
.AddHandler (i2
, two
);
112 d
= list
[i2
] as EventHandler
;
113 Assertion
.Assert ("All #14", d
!= null);
115 list
.AddHandler (i1
, null);
116 Assertion
.Assert ("All #15", list
[i1
] != null);
118 list
.AddHandler (i2
, null);
119 Assertion
.Assert ("All #16", list
[i2
] != null);
125 void Assert (string msg
, bool result
)
128 Console
.WriteLine (msg
);
131 void AssertEquals (string msg
, object expected
, object real
)
133 if (expected
== null && real
== null)
136 if (expected
!= null && expected
.Equals (real
))
139 Console
.WriteLine ("{0}: expected: '{1}', got: '{2}'", msg
, expected
, real
);
142 void Fail (string msg
)
144 Console
.WriteLine ("Failed: {0}", msg
);
149 EventHandlerListTests p
= new EventHandlerListTests ();
150 Type t
= p
.GetType ();
151 MethodInfo
[] methods
= t
.GetMethods ();
152 foreach (MethodInfo m
in methods
) {
153 if (m
.Name
.Substring (0, 4) == "Test") {