BatchFlow.UnitTests.Helpers.GetFilter C# (CSharp) Метод

GetFilter() статический приватный Метод

static private GetFilter ( ) : string>.TaskNode
Результат string>.TaskNode
        internal static TaskNode<int, string> GetFilter()
        {
            TaskNode<int, string> filter = new TaskNode<int, string>(
                (int i, IWritableQueue<string> word) =>
                {
                    if (i % 3 != 0) return;
                    string formattedNumber = i.ToString("###.00", CultureInfo.InvariantCulture);
                    if (formattedNumber.Contains("2")) return;
                    if (i == 3) Thread.Sleep(100);
                    word.Send(formattedNumber);
                }

                );

            return filter;
        }

Usage Example

Пример #1
0
        public void ThreeStepWithFilter()
        {
            List <string>    results = new List <string>();
            StartPoint <int> s       = Helpers.GetStartpointCounter(1, 100);
            // pass only numbers divisible by three with no 2 in them
            // Output in
            TaskNode <int, string> filter = Helpers.GetFilter();

            filter.ItemProcessed += new EventHandler <TaskNode.ItemEventArgs>(EndItemProcessed);

            EndPoint <string> n = Helpers.GetEndpoint(results);

            Flow flow = Helpers.ConnectStartFilterEnd(s, filter, n);

            flow.Start();
            flow.RunToCompletion();

            Assert.Contains(flow.Status, new List <RunStatus>()
            {
                RunStatus.Stopped, RunStatus.Stopping
            });

            Assert.AreEqual(27, results.Count);
            Assert.AreEqual(results.Count, n.ItemsProcessed);
            Assert.AreEqual(1, s.ItemsProcessed);
            Console.WriteLine(flow.GetStateSnapshot());
            Assert.Greater(s.TotalSecondsProcessing, 0);
            Assert.Greater(filter.TotalSecondsProcessing, 0);
            Assert.Greater(filter.TotalSecondsBlocked, 0);

            // Each node works with one thread, so order is maintained, so:
            Assert.AreEqual('3', results[0][0]);
        }
All Usage Examples Of BatchFlow.UnitTests.Helpers::GetFilter