private static async Task <byte[]> RunSendTest(Func <WebSocketConnection, Task> producer, WebSocketOptions options) { using (var factory = new ChannelFactory()) { var outbound = factory.CreateChannel(); var inbound = factory.CreateChannel(); Task executeTask; using (var connection = new WebSocketConnection(inbound, outbound, options)) { executeTask = connection.ExecuteAsync(f => { Assert.False(true, "Did not expect to receive any messages"); return(Task.CompletedTask); }); await producer(connection).OrTimeout(); inbound.CompleteWriter(); await executeTask.OrTimeout(); } var data = (await outbound.ReadToEndAsync()).ToArray(); inbound.CompleteReader(); CompleteChannels(outbound); return(data); } }