コード例 #1
0
        public void EndsWithSourceBlock_Throws()
        {
            // arrange
            var starting_block = new TransformBlock <string, string> (s => s);
            var final_block    = new TransformBlock <string, string> (s => s);

            starting_block.LinkWithCompletionPropagation(final_block);


            // act
            Action action = () => new Dataflow <string> (starting_block, final_block);


            // assert
            action.Should().Throw <ArgumentException> ();
        }
コード例 #2
0
        public async Task ActionThenTransformBlock_CorrectlyProceed()
        {
            // arrange
            var result = new ConcurrentQueue <string> ();

            var starting_block = new TransformBlock <string, string> (s => s);
            var final_block    = new ActionBlock <string> (s => result.Enqueue(s));

            starting_block.LinkWithCompletionPropagation(final_block);

            var sut = new Dataflow <string> (starting_block, final_block);


            // act
            await sut.ProcessAsync(new[] { "a", "b", "c" });


            // assert
            result.Should().BeEquivalentTo("a", "b", "c");
        }