public void Process_CommandIsPendingWitWithOnePassingFilter_CommandNotFiltered() { var command = new TestCommand(CommandState.Pending); FilterManager filterManager = new FilterManager(); var filter = new GenericFilter(c => true); filterManager.AddFilter(filter); var result = filterManager.Process(command); Assert.IsTrue(result); }
public void Process_NonPassingFilterAddedDuringCommandProcessing_CommandIsFiltered() { var command = new TestCommand(CommandState.Pending); FilterManager filterManager = new FilterManager(); ManualResetEventSlim evt = new ManualResetEventSlim(false); var filter = new GenericFilter(c => { evt.Wait(); return true; }); filterManager.AddFilter(filter); Task<bool> result = Task.Factory.StartNew(() => filterManager.Process(command)); filterManager.AddFilter(new GenericFilter(c => false)); evt.Set(); Assert.IsFalse(result.Result); }