2 // TimerTest.cs - NUnit test cases for System.Threading.Timer
5 // Zoltan Varga (vargaz@freemail.hu)
7 // (C) 2004 Novell, Inc (http://www.novell.com)
10 using NUnit
.Framework
;
12 using System
.Threading
;
14 namespace MonoTests
.System
.Threading
{
17 public class TimerTest
: Assertion
{
21 private void Callback (object foo
) {
25 // Doesn't work when I do a full run #72535
26 [Category("NotWorking")]
27 public void TestDueTime ()
30 Timer t
= new Timer (new TimerCallback (Callback
), null, 200, Timeout
.Infinite
);
32 AssertEquals ("t0", 0, counter
);
34 AssertEquals ("t1", 1, counter
);
36 AssertEquals ("t2", 1, counter
);
40 Assert ("t3", counter
> 20);
44 public void TestChange ()
47 Timer t
= new Timer (new TimerCallback (Callback
), null, 1, 1);
50 Assert ("t1", c
> 20);
53 Assert ("t2", counter
<= c
+ 6);
57 public void TestZeroDueTime () {
60 Timer t
= new Timer (new TimerCallback (Callback
), null, 0, Timeout
.Infinite
);
62 AssertEquals (1, counter
);
63 t
.Change (0, Timeout
.Infinite
);
65 AssertEquals (2, counter
);
69 public void TestDispose ()
72 Timer t
= new Timer (new TimerCallback (CallbackTestDispose
), null, 10, 10);
79 AssertEquals (c
, counter
);
82 private void CallbackTestDispose (object foo
) {
87 public void TestDisposeOnCallback () {
89 t1
= new Timer (new TimerCallback (CallbackTestDisposeOnCallback
), null, 0, 10);
94 t1
= new Timer (new TimerCallback (CallbackTestDisposeOnCallback
), null, 50, 0);
99 private void CallbackTestDisposeOnCallback (object foo
)
101 if (++counter
== 3) {