public void CancellationCancelsWriteTasks()
        {
            var sut   = new BufferedChannel <int>(0);
            var task1 = sut.TryWriteSafeAsync(1);
            var task2 = sut.TryWriteSafeAsync(1);

            sut.Terminate();
            task1.Result.ShouldBeFalse();
            task2.Result.ShouldBeFalse();
        }
        public void FailCancelsWriteTasks()
        {
            var sut   = new BufferedChannel <int>(0);
            var task1 = sut.TryWriteSafeAsync(1);
            var task2 = sut.TryWriteSafeAsync(1);

            sut.Terminate(new InvalidOperationException());
            task1.Result.ShouldBeFalse();
            task2.Result.ShouldBeFalse();
        }
        public void ResetCancelsWriteTasks()
        {
            var sut        = new BufferedChannel <int>(0);
            var writeTask1 = sut.TryWriteSafeAsync(1);
            var writeTask2 = sut.TryWriteSafeAsync(2);

            sut.Reset();
            writeTask1.Result.ShouldBeFalse();
            writeTask2.Result.ShouldBeFalse();
        }