public void TestSimple()
{
try
{
new DedicatedTaskRunner(null);
Assert.Fail("Should throw a NullReferenceException");
}
catch
{
}
SimpleCountingTask simpleTask = new SimpleCountingTask();
Assert.IsTrue( simpleTask.Count == 0 );
DedicatedTaskRunner simpleTaskRunner = new DedicatedTaskRunner(simpleTask);
simpleTaskRunner.Wakeup();
Thread.Sleep( 500 );
Assert.IsTrue( simpleTask.Count >= 1 );
simpleTaskRunner.Wakeup();
Thread.Sleep( 500 );
Assert.IsTrue( simpleTask.Count >= 2 );
InfiniteCountingTask infiniteTask = new InfiniteCountingTask();
Assert.IsTrue( infiniteTask.Count == 0 );
DedicatedTaskRunner infiniteTaskRunner = new DedicatedTaskRunner(infiniteTask);
Thread.Sleep( 500 );
Assert.IsTrue( infiniteTask.Count != 0 );
infiniteTaskRunner.Shutdown();
uint count = infiniteTask.Count;
Thread.Sleep( 500 );
Assert.IsTrue( infiniteTask.Count == count );
}