public async Task SendMultipleProduce()
        {
            var mockProducer = new Mock <IKafkaProducer>();

            mockProducer.Setup(x => x.ProduceAsync("topic", It.IsNotNull <KafkaEventData>()))
            .Returns(Task.CompletedTask);

            var collector = new KafkaAsyncCollector("topic", mockProducer.Object);


            await collector.AddAsync(new KafkaEventData()
            {
                Key   = 123,
                Value = "hello world"
            });

            await collector.AddAsync(new KafkaEventData()
            {
                Key   = 1234,
                Value = "hello world 2"
            });

            await collector.FlushAsync();

            mockProducer.Verify(x => x.ProduceAsync("topic", It.IsNotNull <KafkaEventData>()), Times.Exactly(2));
            mockProducer.Verify(x => x.ProduceAsync("topic", It.Is <KafkaEventData>(k => k.Value.ToString() == "hello world")), Times.Once);
            mockProducer.Verify(x => x.ProduceAsync("topic", It.Is <KafkaEventData>(k => k.Value.ToString() == "hello world 2")), Times.Once);
        }
        public async Task CantSendNullEvent()
        {
            var mockProducer = new Mock <IKafkaProducer>();
            var collector    = new KafkaAsyncCollector("topic", mockProducer.Object);

            await Assert.ThrowsAsync <ArgumentNullException>(async() =>
            {
                await collector.AddAsync(null);
            });
        }