public void CanExecutePipeline() { var parameters = new Dictionary<string, object>(); parameters.Add("FilterOrder", string.Empty); var step = new Step("13", "12", "Manager Approve", "Request Promotion", "Approve", DateTime.Now, "Spock", "Spock;Kirk", parameters); step.CanProcess = true; string filterNames = "ValidParticipantFilter;SaveDataFilter;FetchDataFilter;"; string reverseOrderFilterNames = "FetchDataFilter;SaveDataFilter;ValidParticipantFilter;"; var filterRegistry = new FilterRegistry<Step>(); var pipeline = new Pipeline<Step>(); pipeline.RegisterFromList(filterNames, filterRegistry) .Execute(step); Assert.IsTrue((bool)step.Parameters["ValidFired"]); Assert.IsTrue((bool)step.Parameters["SaveDataFired"]); Assert.IsTrue((bool)step.Parameters["FetchDataFired"]); Assert.AreEqual(filterNames, step.Parameters["FilterOrder"].ToString()); // Change up order step.Parameters.Clear(); step.Parameters.Add("FilterOrder", string.Empty); var revPipeline = new Pipeline<Step>(); revPipeline.RegisterFromList(reverseOrderFilterNames, filterRegistry) .Execute(step); Assert.IsTrue((bool)step.Parameters["ValidFired"]); Assert.IsTrue((bool)step.Parameters["SaveDataFired"]); Assert.IsTrue((bool)step.Parameters["FetchDataFired"]); Assert.AreEqual(reverseOrderFilterNames, step.Parameters["FilterOrder"].ToString()); }
public void CanRegisterFiltersWithRegistry() { string filterNames = "ValidParticipantFilter;SaveDataFilter;TriggerStateFilter"; var filterRegistry = new FilterRegistry<Step>(); var pipeline = new Pipeline<Step>(); pipeline.RegisterFromList(filterNames, filterRegistry); Assert.AreEqual(3, pipeline.GetCount()); Console.WriteLine(pipeline.GetNames()); }