@@ -25,6 +25,24 @@ describe Kafka::Consumer do
2525 consumer.subscribe(" foo" , " foo" )
2626 end
2727 end
28+
29+ it " raises an exception when called after the consumer is closed" do
30+ consumer = Kafka ::Consumer .new({" bootstrap.servers" => " localhost:9094" , " group.id" => " foo" , " broker.address.family" => " v4" })
31+ consumer.close
32+ expect_raises(Kafka ::ConsumerException , " librdkafka error - Consumer closed" ) do
33+ consumer.subscribe(" foo" )
34+ end
35+ end
36+ end
37+
38+ describe " #poll" do
39+ it " raises an exception when called after the consumer is closed" do
40+ consumer = Kafka ::Consumer .new({" bootstrap.servers" => " localhost:9094" , " group.id" => " foo" , " broker.address.family" => " v4" })
41+ consumer.close
42+ expect_raises(Kafka ::ConsumerException , " librdkafka error - Consumer closed" ) do
43+ consumer.poll(250 )
44+ end
45+ end
2846 end
2947
3048 describe " #each" do
@@ -42,5 +60,33 @@ describe Kafka::Consumer do
4260 consumer.each(timeout: 10 ) { }
4361 end
4462 end
63+
64+ it " raises an exception when called after the consumer is closed" do
65+ consumer = Kafka ::Consumer .new({" bootstrap.servers" => " localhost:9094" , " group.id" => " foo" , " broker.address.family" => " v4" })
66+ consumer.close
67+ expect_raises(Kafka ::ConsumerException , " librdkafka error - Consumer closed" ) do
68+ consumer.each { }
69+ end
70+ end
71+ end
72+
73+ describe " #open?" do
74+ it " returns true after creation" do
75+ consumer = Kafka ::Consumer .new({" bootstrap.servers" => " localhost:9094" , " group.id" => " foo" , " broker.address.family" => " v4" })
76+ consumer.open?.should be_true
77+ end
78+
79+ it " returns false after closing" do
80+ consumer = Kafka ::Consumer .new({" bootstrap.servers" => " localhost:9094" , " group.id" => " foo" , " broker.address.family" => " v4" })
81+ consumer.close
82+ consumer.open?.should be_false
83+ end
84+ end
85+
86+ describe " #close" do
87+ it " does not raise an exception when called multiple times" do
88+ consumer = Kafka ::Consumer .new({" bootstrap.servers" => " localhost:9094" , " group.id" => " foo" , " broker.address.family" => " v4" })
89+ 2 .times { consumer.close }
90+ end
4591 end
4692end
0 commit comments