public async Task when_sending_packet_then_stream_receives_successfully()
        {
            var configuration = new MqttConfiguration();
            var stream        = new PrivateStream(configuration);
            var channel       = new PrivateChannel(stream, EndpointIdentifier.Client, configuration);

            var packetsReceived = 0;

            stream
            .Receive(EndpointIdentifier.Client)
            .Subscribe(packet => {
                packetsReceived++;
            });

            await channel.SendAsync(new byte[255]);

            await channel.SendAsync(new byte[10]);

            await channel.SendAsync(new byte[34]);

            await channel.SendAsync(new byte[100]);

            await channel.SendAsync(new byte[50]);

            await Task.Delay(TimeSpan.FromMilliseconds(1000));

            Assert.Equal(5, packetsReceived);
        }