A mock of the producer interface you can use for testing code that uses Kafka.

By default this mock will synchronously complete each send call successfully. However it can be configured to allow
the user to control the completion of the call and supply an optional error for the producer to throw.

autoComplete - If true automatically complete all requests successfully and execute the callback. Otherwise
the user must call completeNext() or errorNext(RuntimeException) after
send() to complete the call and unblock the @{link
java.util.concurrent.Future Future<RecordMetadata>} that is returned.