public WhenSendingAPing()
            {
                _clientFactory = new Mock <IClientFactory>();
                _client        = new Mock <IClient>();
                _client.SetReturnsDefault(Task.FromResult <IRedisType>(new RedisString("PONG")));
                _clientFactory.SetReturnsDefault(Task.FromResult(_client.Object));

                var connection = new BasicConnection(new IPEndPoint(IPAddress.Loopback, 6379), _clientFactory.Object);

                connection.OpenAsync(CancellationToken.None).Wait();

                _client.ResetCalls();

                connection.PingAsync(CancellationToken.None).Wait();
            }
            public WhenAnErrorOccursWhenSendingAPing()
            {
                var clientFactory = new Mock <IClientFactory>();

                _client = new Mock <IClient>();
                _client
                .Setup(c => c.SendAsync(It.IsAny <IRedisType>(), It.IsAny <CancellationToken>()))
                .ReturnsAsync(new RedisString("PONG"));
                clientFactory.SetReturnsDefault(Task.FromResult(_client.Object));

                _connection = new BasicConnection(new IPEndPoint(IPAddress.Loopback, 6379), clientFactory.Object);

                _connection.OpenAsync(CancellationToken.None).Wait();

                _client.Reset();
                _client
                .Setup(c => c.SendAsync(It.IsAny <IRedisType>(), It.IsAny <CancellationToken>()))
                .ThrowsAsync(new SocketException());

                _ex = Assert.ThrowsAsync <ConnectionException>(() => _connection.PingAsync(CancellationToken.None)).Result;
            }