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_completion() { var called = false; var bodyStream = new BodyStream((data) => false, null, null, CancellationToken.None); bodyStream.Start(() => { }, null); var bytes = new ArraySegment<byte>(Encoding.UTF8.GetBytes("dada")); bodyStream.SendBytes(bytes, null, () => { called = true; }); Assert.That(called, Is.True); }
public void BodyStream_calls_on_data_delegate() { var called = false; Func<ArraySegment<byte>, bool> next = (data) => { called = true; return false; }; var bodyStream = new BodyStream(next, null, null, CancellationToken.None); bodyStream.Start(() => { }, null); var bytes = new ArraySegment<byte>(Encoding.UTF8.GetBytes("dada")); bodyStream.SendBytes(bytes, null, null); Assert.That(called, Is.True); }
public void BodyStream_does_not_send_bytes_while_paused() { var called = false; Func<ArraySegment<byte>, bool> next = (data) => { called = true; return false; }; var bodyStream = new BodyStream(next, null, null, CancellationToken.None); bodyStream.Start(() => { }, null); bodyStream.Pause(); var bytes = new ArraySegment<byte>(Encoding.UTF8.GetBytes("dada")); bodyStream.SendBytes(bytes, null, null); Assert.That(called, Is.False); }
public void BodyStream_does_not_send_bytes_while_stopped() { var called = false; Func<ArraySegment<byte>, Action, bool> write = (data, callback) => { called = true; return false; }; var bodyStream = new BodyStream(write, null, CancellationToken.None); bodyStream.Start(() => { }, null); bodyStream.Stop(); var bytes = new ArraySegment<byte>(Encoding.UTF8.GetBytes("dada")); bodyStream.SendBytes(bytes, null, null); Assert.That(called, Is.False); }