public async Task TestCleanUp() { var f = new MyDataflow <int>(); await f.SignalAndWaitForCompletionAsync(); Assert.AreEqual(1, f.cleanUpSignal); }
public void TestPipeline() { var data = Enumerable.Range(0, 30).Select(x => new Message(x, x)).ToList(); var target = new MyDataflow(); target.PostData(data).Wait(); Assert.IsTrue(data.SequenceEqual(target.OutputMessages)); }
public async Task TestCleanUpOnFault() { var f = new MyDataflow <int>() { Name = "dataflow1" }; f.m_block2.RegisterChild(new BufferBlock <int>()); Task.Run( async() => { await Task.Delay(200); (f.m_block2.InputBlock).Fault(new InvalidOperationException()); }); var f2 = new Dataflow(DataflowOptions.Default) { Name = "dataflow2" }; f2.RegisterChild(f.m_block1); f2.RegisterChild(f.m_block2); var f3 = new Dataflow(DataflowOptions.Default) { Name = "dataflow3" }; f3.RegisterChild(f); f3.RegisterChild(f2); await this.AssertFlowError <InvalidOperationException>(f); Assert.AreEqual(-1, f.cleanUpSignal); await this.AssertFlowError <InvalidOperationException>(f2); await this.AssertFlowError <InvalidOperationException>(f3); }