public async Task KafkaTcpSocketShouldDisposeEvenWhilePollingToReconnect()
{
int connectionAttempt = 0;
using (var test = new KafkaTcpSocket(_log, _fakeServerUrl, _maxRetry))
{
test.OnReconnectionAttempt += i => connectionAttempt = i;
var taskResult = test.ReadAsync(4);
await TaskTest.WaitFor(() => connectionAttempt > 1);
test.Dispose();
await Task.WhenAny(taskResult, Task.Delay(1000)).ConfigureAwait(false);
Assert.That(taskResult.IsFaulted, Is.True);
Assert.That(taskResult.Exception.InnerException, Is.TypeOf<ObjectDisposedException>());
}
}