File tree Expand file tree Collapse file tree 1 file changed +55
-0
lines changed Expand file tree Collapse file tree 1 file changed +55
-0
lines changed Original file line number Diff line number Diff line change
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 } 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
+ 3 . times do |i |
41
+ assert_pattern do
42
+ responses [ 2 * i ] => [
43
+ :block , Net ::IMAP ::UntaggedResponse [ name : "EXPUNGE" , data : i ]
44
+ ]
45
+ end
46
+ assert_pattern do
47
+ responses [ 2 * i + 1 ] => [
48
+ :proc , Net ::IMAP ::UntaggedResponse [ name : "EXPUNGE" , data : i ]
49
+ ]
50
+ end
51
+ end
52
+ end
53
+ end
54
+
55
+ end
You can’t perform that action at this time.
0 commit comments