public void can_send_a_buffer_larger_than_the_internal_output_buffer()
{
using(var ctx = new TestContext())
using(var session = new ProxySession(0, ctx.Output))
{
var expected = new byte[(int)(ProxySession.OutputBufferSize * 2.3)];
for(int i = 0; i < expected.Length; ++i)
{
expected[i] = (byte)i;
}
session.SendAsync(new[] { expected });
int actualRead = 0;
var actual = new byte[expected.Length];
while(actualRead < actual.Length && ctx.Input.Poll(PollTimeout, SelectMode.SelectRead))
{
actualRead += ctx.Input.Receive(actual, actualRead, actual.Length - actualRead, SocketFlags.None);
}
Assert.Equal(expected.Length, actualRead);
Assert.Equal(expected, actual);
Assert.False(ctx.Input.Poll(PollTimeout, SelectMode.SelectRead));
}
}