@@ -9,7 +9,7 @@ class CommandDataTest < Net::IMAP::TestCase
99 Literal = Net ::IMAP ::Literal
1010 Literal8 = Net ::IMAP ::Literal8
1111
12- Output = Data . define ( :name , :args )
12+ Output = Data . define ( :name , :args , :kwargs )
1313 TAG = Module . new . freeze
1414
1515 class FakeCommandWriter
@@ -18,11 +18,15 @@ def self.def_printer(name)
1818 Net ::IMAP . private_instance_methods . include? ( name )
1919 raise NoMethodError , "#{ name } is not a method on Net::IMAP"
2020 end
21- define_method ( name ) do |*args |
22- output << Output [ name :, args :]
21+ define_method ( name ) do |*args , **kwargs |
22+ kwargs = kwargs . compact
23+ kwargs = nil if kwargs . empty?
24+ output << Output [ name :, args :, kwargs :]
2325 end
24- Output . define_singleton_method ( name ) do |*args |
25- new ( name :, args :)
26+ Output . define_singleton_method ( name ) do |*args , **kwargs |
27+ kwargs = kwargs . compact
28+ kwargs = nil if kwargs . empty?
29+ new ( name :, args :, kwargs :)
2630 end
2731 end
2832
@@ -50,11 +54,20 @@ def send_data(*data, tag: TAG)
5054 def_printer :send_binary_literal
5155 end
5256
57+ attr_reader :imap
58+
59+ setup do
60+ @imap = FakeCommandWriter . new
61+ end
62+
5363 test "Literal" do
54- imap = FakeCommandWriter . new
5564 imap . send_data Literal [ "foo\r \n bar" ]
65+ imap . send_data Literal [ "foo\r \n bar" , false ]
66+ imap . send_data Literal [ "foo\r \n bar" , true ]
5667 assert_equal [
5768 Output . send_literal ( "foo\r \n bar" , TAG ) ,
69+ Output . send_literal ( "foo\r \n bar" , TAG , non_sync : false ) ,
70+ Output . send_literal ( "foo\r \n bar" , TAG , non_sync : true ) ,
5871 ] , imap . output
5972
6073 imap . clear
@@ -65,11 +78,14 @@ def send_data(*data, tag: TAG)
6578 end
6679
6780 test "Literal8" do
68- imap = FakeCommandWriter . new
6981 imap . send_data Literal8 [ "foo\r \n bar" ] , Literal8 [ "foo\0 bar" ]
82+ imap . send_data Literal8 [ "foo\0 bar" , false ]
83+ imap . send_data Literal8 [ "foo\0 bar" , true ]
7084 assert_equal [
7185 Output . send_binary_literal ( "foo\r \n bar" , TAG ) ,
7286 Output . send_binary_literal ( "foo\0 bar" , TAG ) ,
87+ Output . send_binary_literal ( "foo\0 bar" , TAG , non_sync : false ) ,
88+ Output . send_binary_literal ( "foo\0 bar" , TAG , non_sync : true ) ,
7389 ] , imap . output
7490 end
7591
0 commit comments