public void TestAddWorkListToDisposedWorker() { WaitAndContinueWorker work = new WaitAndContinueWorker(); work.Complete(false, 100); work.Dispose(); WaitAndContinueList list = new WaitAndContinueList(); list.AddWork(new SampleWork()); work.AddWork(list); }
public void TestAddWorkToDisposedWorker() { WaitAndContinueWorker work = new WaitAndContinueWorker(); work.Complete(false, 100); work.Dispose(); SampleWork item = new SampleWork(); work.AddWork(item); }
public void TestWorkerException() { using (WaitAndContinueWorker work = new WaitAndContinueWorker()) { SampleWork item = new SampleWork(); item.WorkThrows = true; work.AddWork(item); ManualResetEvent mreError = new ManualResetEvent(false); Exception error = null; work.OnError += delegate(object o, ErrorEventArgs e) { error = e.GetException(); mreError.Set(); }; item.Ready.Set(); Assert.IsTrue(mreError.WaitOne(1000, false)); Assert.IsTrue(error is ArgumentOutOfRangeException); Assert.IsTrue(((ArgumentOutOfRangeException)error).ParamName == "WorkThrows"); } }
public void TestHardAbort() { using (WaitAndContinueWorker work = new WaitAndContinueWorker()) { work.OnError += delegate(object o, ErrorEventArgs e) { throw new Exception("Failed.", e.GetException()); }; SampleWork item = new SampleWork(); item.SleepForever = true; work.AddWork(item); item.Ready.Set(); Assert.IsTrue(item.Sleeping.WaitOne(1000, false)); work.Abort(); Assert.IsFalse(item.Completed); Assert.IsTrue(item.Disposed); } }
public void TestAbortWork() { using (WaitAndContinueWorker work = new WaitAndContinueWorker()) { work.OnError += delegate(object o, ErrorEventArgs e) { throw new Exception("Failed.", e.GetException()); }; SampleWork item = new SampleWork(); work.AddWork(item); Assert.IsFalse(work.IsEmpty); work.Abort(); Assert.IsFalse(item.Completed); Assert.IsTrue(item.Disposed); } }
public void TestWaitAndContinueWorker() { WaitAndContinueWorker work; using (work = new WaitAndContinueWorker()) { work.OnError += delegate(object o, ErrorEventArgs e) { throw new Exception("Failed.", e.GetException()); }; SampleWork item = new SampleWork(); work.AddWork(item); Assert.IsFalse(work.IsEmpty); item.Ready.Set(); Assert.IsTrue(item.CompletedEvent.WaitOne(100, false)); Assert.IsTrue(item.Completed); Assert.IsFalse(item.Cancelled); while (!item.Disposed) Thread.Sleep(0); Assert.IsTrue(item.Disposed); Assert.IsTrue(work.IsEmpty); } Assert.IsTrue(work.IsEmpty); }