Skip to content

Commit 102fdea

Browse files
committed
Disconnect only when there's a @connection
1 parent 5334cd5 commit 102fdea

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

lib/kafka/broker.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@ def to_s
2424

2525
# @return [nil]
2626
def disconnect
27-
connection.close
27+
connection.close if connected?
28+
end
29+
30+
# @return [Boolean]
31+
def connected?
32+
!@connection.nil?
2833
end
2934

3035
# Fetches cluster metadata from the broker.

spec/broker_spec.rb

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ def mock_response(response)
3131
def send_request(request)
3232
@mocked_response
3333
end
34+
35+
def close
36+
end
3437
end
3538

3639
describe "#address_match?" do
@@ -112,4 +115,21 @@ def send_request(request)
112115
expect(actual_response.topics).to eq []
113116
end
114117
end
118+
119+
describe "#disconnect" do
120+
it "doesn't close a connection if it's not connected yet " do
121+
expect(connection).not_to receive(:close)
122+
broker.disconnect
123+
end
124+
125+
it "closes a connection if the connection is present" do
126+
expect(connection).to receive(:close)
127+
128+
broker.fetch_messages(
129+
max_wait_time: 0, min_bytes: 0, max_bytes: 10 * 1024, topics: {}
130+
)
131+
132+
broker.disconnect
133+
end
134+
end
115135
end

0 commit comments

Comments
 (0)