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 public void TestDueTime ()
28 Timer t = new Timer (new TimerCallback (Callback), null, 200, Timeout.Infinite);
30 AssertEquals ("t0", 0, counter);
32 AssertEquals ("t1", 1, counter);
34 AssertEquals ("t2", 1, counter);
38 Assert ("t3", counter > 20);
42 public void TestChange ()
45 Timer t = new Timer (new TimerCallback (Callback), null, 1, 1);
48 Assert ("t1", c > 20);
51 Assert ("t2", counter <= c + 6);
55 public void TestZeroDueTime () {
58 Timer t = new Timer (new TimerCallback (Callback), null, 0, Timeout.Infinite);
60 AssertEquals (1, counter);
61 t.Change (0, Timeout.Infinite);
63 AssertEquals (2, counter);
67 public void TestDispose ()
70 Timer t = new Timer (new TimerCallback (CallbackTestDispose), null, 10, 10);
77 AssertEquals (c, counter);
80 private void CallbackTestDispose (object foo) {
85 public void TestDisposeOnCallback () {
87 t1 = new Timer (new TimerCallback (CallbackTestDisposeOnCallback), null, 0, 10);
92 t1 = new Timer (new TimerCallback (CallbackTestDisposeOnCallback), null, 50, 0);
97 private void CallbackTestDisposeOnCallback (object foo)