コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }