Allow consuming message batches

Fixes #3
This commit is contained in:
Matias Fontanini
2017-07-17 19:17:49 -07:00
parent 2340046544
commit 1582f6156d
3 changed files with 65 additions and 0 deletions

View File

@@ -210,3 +210,30 @@ TEST_F(ConsumerTest, Throttle) {
EXPECT_EQ(3, callback_executed_count);
}
TEST_F(ConsumerTest, ConsumeBatch) {
int partition = 0;
// Create a consumer and subscribe to the topic
Configuration config = make_consumer_config("test");
Consumer consumer(config);
consumer.assign({ { KAFKA_TOPIC, 0 } });
{
ConsumerRunner runner(consumer, 0, 1);
runner.try_join();
}
// Produce a message just so we stop the consumer
BufferedProducer<string> producer(make_producer_config());
string payload = "Hello world!";
// Produce it twice
producer.produce(MessageBuilder(KAFKA_TOPIC).partition(partition).payload(payload));
producer.produce(MessageBuilder(KAFKA_TOPIC).partition(partition).payload(payload));
producer.flush();
vector<Message> messages = consumer.poll_batch(2);
ASSERT_EQ(2, messages.size());
EXPECT_EQ(payload, messages[0].get_payload());
EXPECT_EQ(payload, messages[1].get_payload());
}