spec/spec_helper.rb in rdkafka-0.1.9 vs spec/spec_helper.rb in rdkafka-0.1.10
- old
+ new
@@ -4,14 +4,39 @@
def rdkafka_config
config = {
:"bootstrap.servers" => "localhost:9092",
:"group.id" => "ruby_test",
+ :"client.id" => "test",
+ :"auto.offset.reset" => "earliest",
:"enable.partition.eof" => false
}
if ENV["DEBUG_PRODUCER"]
config[:debug] = "broker,topic,msg"
elsif ENV["DEBUG_CONSUMER"]
config[:debug] = "cgrp,topic,fetch"
end
Rdkafka::Config.new(config)
+end
+
+def native_client
+ config = rdkafka_config
+ config.send(:native_kafka, config.send(:native_config), :rd_kafka_producer)
+end
+
+def wait_for_message(topic:, delivery_report:, timeout_in_seconds: 30)
+ offset = delivery_report.offset - 1
+ consumer = rdkafka_config.consumer
+ consumer.subscribe(topic)
+ timeout = Time.now.to_i + timeout_in_seconds
+ loop do
+ if timeout <= Time.now.to_i
+ raise "Timeout of #{timeout_in_seconds} seconds reached in wait_for_message"
+ end
+ message = consumer.poll(100)
+ if message && message.offset == offset
+ return message
+ end
+ end
+ensure
+ consumer.close
end