public void Start(Func<ArraySegment<byte>, Action<Exception>, TempEnum> write, Action<Exception> end, CancellationToken cancellationToken) { bodyStream = new BodyStream(write, end, cancellationToken); Action start = () => { try { if (bodyStream.CanSend()) { var bytes = encoding.GetBytes(text); var segment = new ArraySegment<byte>(bytes); // Not buffered. bodyStream.SendBytes(segment, null, null); bodyStream.Finish(); } } catch (Exception ex) { bodyStream.End(ex); } }; bodyStream.Start(start, null); }
public void BodyStream_calls_dispose_action_when_it_finishes() { var called = false; var bodyStream = new BodyStream((data) => false, null, _=> { }, CancellationToken.None); bodyStream.Start(() => { }, () => { called = true; }); bodyStream.Finish(); Assert.That(called, Is.True); }