Skip to content

Commit ebcd69d

Browse files
committed
✅ Add tests for #add_response_handler
There weren't any response_handler tests at all, prior to this!
1 parent a6b803b commit ebcd69d

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# frozen_string_literal: true
2+
3+
require "net/imap"
4+
require "test/unit"
5+
require_relative "fake_server"
6+
7+
class IMAPResponseHandlersTest < Test::Unit::TestCase
8+
include Net::IMAP::FakeServer::TestHelper
9+
10+
def setup
11+
Net::IMAP.config.reset
12+
@do_not_reverse_lookup = Socket.do_not_reverse_lookup
13+
Socket.do_not_reverse_lookup = true
14+
@threads = []
15+
end
16+
17+
def teardown
18+
if !@threads.empty?
19+
assert_join_threads(@threads)
20+
end
21+
ensure
22+
Socket.do_not_reverse_lookup = @do_not_reverse_lookup
23+
end
24+
25+
test "#add_response_handlers" do
26+
responses = []
27+
with_fake_server do |server, imap|
28+
server.on("NOOP") do |resp|
29+
3.times do resp.untagged("#{_1 + 1} EXPUNGE") end
30+
resp.done_ok
31+
end
32+
33+
assert_equal 0, imap.response_handlers.length
34+
imap.add_response_handler do responses << [:block, _1] end
35+
assert_equal 1, imap.response_handlers.length
36+
imap.add_response_handler(->{ responses << [:proc, _1] })
37+
assert_equal 2, imap.response_handlers.length
38+
39+
imap.noop
40+
assert_pattern do
41+
responses => [
42+
[:block, Net::IMAP::UntaggedResponse[name: "EXPUNGE", data: 1]],
43+
[:proc, Net::IMAP::UntaggedResponse[name: "EXPUNGE", data: 1]],
44+
[:block, Net::IMAP::UntaggedResponse[name: "EXPUNGE", data: 2]],
45+
[:proc, Net::IMAP::UntaggedResponse[name: "EXPUNGE", data: 2]],
46+
[:block, Net::IMAP::UntaggedResponse[name: "EXPUNGE", data: 3]],
47+
[:proc, Net::IMAP::UntaggedResponse[name: "EXPUNGE", data: 3]],
48+
]
49+
end
50+
end
51+
end
52+
53+
end

0 commit comments

Comments
 (0)