code: func GetAsyncProducerMock(t mocks.ErrorReporter) (*AsyncProducer, *mocks.AsyncProducer) {
  	saramaCfg := sarama.NewConfig()
  	saramaCfg.Producer.Return.Successes = true
  	mock := mocks.NewAsyncProducer(t, saramaCfg)
  
  	cfg := NewConfig(logrus.DefaultLogger())
  	cfg.SetSendSuccess(true)
  	cfg.SetSuccessChan(make(chan *ProducerMessage, 1))
  	ap := AsyncProducer{Logger: logrus.DefaultLogger(), Config: cfg, Producer: mock, closeChannel: make(chan struct{}), Client: &saramaClientMock{}}
  	go ap.successHandler(mock.Successes())
  
  	return &ap, mock
  }
docs: // GetAsyncProducerMock returns mocked implementation of async producer that doesn't
  // need connection to Kafka broker and can be used for testing purposes.