public void TestInputCount() { foreach (bool sync in DataflowTestHelpers.BooleanValues) { Barrier barrier1 = new Barrier(2), barrier2 = new Barrier(2); Func <int, IEnumerable <int> > body = item => { barrier1.SignalAndWait(); // will test InputCount here barrier2.SignalAndWait(); return(new[] { item }); }; TransformManyBlock <int, int> tb = sync ? new TransformManyBlock <int, int>(body) : new TransformManyBlock <int, int>(i => Task.Run(() => body(i))); for (int iter = 0; iter < 2; iter++) { tb.PostItems(1, 2); for (int i = 1; i >= 0; i--) { barrier1.SignalAndWait(); Assert.Equal(expected: i, actual: tb.InputCount); barrier2.SignalAndWait(); } } } }