public void Call_the_fault_action_if_supplied() { var faultCalled = false; Action operation = () => { throw new Exception("fun!"); }; Action<Exception> fault = (e) => faultCalled = true; Action completed = () => { var one = 1; }; var item = new WorkItem(new List<Action> {operation}, fault, completed); item.ProcessOperations(); item.Complete(); Assert.That(faultCalled, Is.True); }
public void Ignore_subsequent_attempts_to_process() { var processedCount = 0; Action operation = () => { processedCount += 1; }; Action completed = () => { var one = 1; }; var item = new WorkItem(new List<Action> { operation }, null, completed); item.ProcessOperations(); item.ProcessOperations(); Assert.That(processedCount, Is.EqualTo(1)); }
public void Do_not_call_the_completed_action() { var processed = false; Action operation = () => { var one = 1; }; Action completed = () => { processed = true; }; var item = new WorkItem(new List<Action> { operation }, null, completed); // user forgot to call this: item.ProcessOperations(); item.Complete(); Assert.That(processed, Is.False); }
public void Rethrow_the_exception_if_there_is_no_fault_action() { Action operation = () => { throw new Exception("fun!"); }; Action completed = () => { var one = 1; }; try { var item = new WorkItem(new List<Action> {operation}, null, completed); item.ProcessOperations(); item.Complete(); } catch (Exception ex) { Assert.That(ex.Message, Is.EqualTo("fun!")); return; } Assert.Fail(); }
public void Enqueue(WorkItem item) { lock (_queueLock) _queue.Enqueue(item); StartOrContinueProcessing(); }
public void Call_the_completed_action() { var processed = false; Action operation = () => { var one = 1; }; Action completed = () => { processed = true; }; var item = new WorkItem(new List<Action> { operation }, null, completed); item.ProcessOperations(); item.Complete(); Assert.That(processed, Is.True); }