bunny 1.7.1 → 2.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CONTRIBUTING.md +14 -0
  4. data/ChangeLog.md +21 -6
  5. data/Gemfile +1 -1
  6. data/LICENSE +1 -1
  7. data/README.md +22 -23
  8. data/bunny.gemspec +1 -1
  9. data/lib/bunny/channel.rb +12 -0
  10. data/lib/bunny/concurrent/continuation_queue.rb +30 -13
  11. data/lib/bunny/exchange.rb +0 -5
  12. data/lib/bunny/jruby/socket.rb +1 -2
  13. data/lib/bunny/queue.rb +9 -0
  14. data/lib/bunny/session.rb +7 -6
  15. data/lib/bunny/version.rb +1 -1
  16. data/spec/higher_level_api/integration/basic_ack_spec.rb +9 -9
  17. data/spec/higher_level_api/integration/basic_cancel_spec.rb +4 -4
  18. data/spec/higher_level_api/integration/basic_consume_spec.rb +22 -22
  19. data/spec/higher_level_api/integration/basic_consume_with_objects_spec.rb +1 -1
  20. data/spec/higher_level_api/integration/basic_get_spec.rb +2 -2
  21. data/spec/higher_level_api/integration/basic_nack_spec.rb +6 -6
  22. data/spec/higher_level_api/integration/basic_publish_spec.rb +14 -14
  23. data/spec/higher_level_api/integration/basic_qos_spec.rb +11 -2
  24. data/spec/higher_level_api/integration/basic_recover_spec.rb +2 -2
  25. data/spec/higher_level_api/integration/basic_reject_spec.rb +6 -6
  26. data/spec/higher_level_api/integration/basic_return_spec.rb +1 -1
  27. data/spec/higher_level_api/integration/channel_close_spec.rb +2 -2
  28. data/spec/higher_level_api/integration/channel_open_spec.rb +11 -11
  29. data/spec/higher_level_api/integration/connection_recovery_spec.rb +52 -52
  30. data/spec/higher_level_api/integration/connection_spec.rb +83 -83
  31. data/spec/higher_level_api/integration/connection_stop_spec.rb +11 -11
  32. data/spec/higher_level_api/integration/consistent_hash_exchange_spec.rb +2 -2
  33. data/spec/higher_level_api/integration/consumer_cancellation_notification_spec.rb +3 -3
  34. data/spec/higher_level_api/integration/dead_lettering_spec.rb +6 -6
  35. data/spec/higher_level_api/integration/exchange_bind_spec.rb +1 -1
  36. data/spec/higher_level_api/integration/exchange_declare_spec.rb +20 -20
  37. data/spec/higher_level_api/integration/exchange_delete_spec.rb +11 -11
  38. data/spec/higher_level_api/integration/exchange_unbind_spec.rb +2 -2
  39. data/spec/higher_level_api/integration/merry_go_round_spec.rb +2 -2
  40. data/spec/higher_level_api/integration/message_properties_access_spec.rb +27 -27
  41. data/spec/higher_level_api/integration/predeclared_exchanges_spec.rb +1 -1
  42. data/spec/higher_level_api/integration/publisher_confirms_spec.rb +19 -19
  43. data/spec/higher_level_api/integration/publishing_edge_cases_spec.rb +9 -9
  44. data/spec/higher_level_api/integration/queue_bind_spec.rb +13 -13
  45. data/spec/higher_level_api/integration/queue_declare_spec.rb +23 -23
  46. data/spec/higher_level_api/integration/queue_delete_spec.rb +1 -1
  47. data/spec/higher_level_api/integration/queue_purge_spec.rb +2 -2
  48. data/spec/higher_level_api/integration/queue_unbind_spec.rb +2 -2
  49. data/spec/higher_level_api/integration/read_only_consumer_spec.rb +3 -3
  50. data/spec/higher_level_api/integration/sender_selected_distribution_spec.rb +4 -4
  51. data/spec/higher_level_api/integration/tls_connection_spec.rb +5 -5
  52. data/spec/higher_level_api/integration/with_channel_spec.rb +1 -1
  53. data/spec/issues/issue100_spec.rb +9 -10
  54. data/spec/issues/issue141_spec.rb +11 -12
  55. data/spec/issues/issue224_spec.rb +2 -2
  56. data/spec/issues/issue78_spec.rb +14 -18
  57. data/spec/issues/issue83_spec.rb +5 -6
  58. data/spec/issues/issue97_spec.rb +25 -26
  59. data/spec/lower_level_api/integration/basic_cancel_spec.rb +15 -16
  60. data/spec/lower_level_api/integration/basic_consume_spec.rb +19 -20
  61. data/spec/stress/channel_open_stress_spec.rb +1 -1
  62. data/spec/stress/channel_open_stress_with_single_threaded_connection_spec.rb +6 -7
  63. data/spec/stress/concurrent_consumers_stress_spec.rb +6 -7
  64. data/spec/stress/concurrent_publishers_stress_spec.rb +6 -7
  65. data/spec/stress/connection_open_close_spec.rb +6 -6
  66. data/spec/stress/long_running_consumer_spec.rb +6 -7
  67. data/spec/unit/bunny_spec.rb +5 -5
  68. data/spec/unit/concurrent/atomic_fixnum_spec.rb +6 -6
  69. data/spec/unit/concurrent/condition_spec.rb +3 -3
  70. data/spec/unit/concurrent/linked_continuation_queue_spec.rb +2 -2
  71. data/spec/unit/concurrent/synchronized_sorted_set_spec.rb +16 -16
  72. data/spec/unit/system_timer_spec.rb +2 -2
  73. data/spec/unit/version_delivery_tag_spec.rb +3 -3
  74. metadata +8 -7
@@ -16,7 +16,7 @@ describe "amq.* exchanges" do
16
16
 
17
17
  ["amq.fanout", "amq.direct", "amq.topic", "amq.match", "amq.headers"].each do |e|
18
18
  x = ch.exchange(e)
19
- x.should be_predeclared
19
+ expect(x).to be_predeclared
20
20
  end
21
21
 
22
22
  ch.close
@@ -11,10 +11,10 @@ describe Bunny::Channel do
11
11
  context "when publishing with confirms enabled" do
12
12
  it "increments delivery index" do
13
13
  ch = connection.create_channel
14
- ch.should_not be_using_publisher_confirmations
14
+ expect(ch).not_to be_using_publisher_confirmations
15
15
 
16
16
  ch.confirm_select
17
- ch.should be_using_publisher_confirmations
17
+ expect(ch).to be_using_publisher_confirmations
18
18
 
19
19
  q = ch.queue("", :exclusive => true)
20
20
  x = ch.default_exchange
@@ -23,11 +23,11 @@ describe Bunny::Channel do
23
23
  x.publish("xyzzy", :routing_key => q.name)
24
24
  end
25
25
 
26
- ch.next_publish_seq_no.should == n + 1
27
- ch.wait_for_confirms.should be_true
26
+ expect(ch.next_publish_seq_no).to eq n + 1
27
+ expect(ch.wait_for_confirms).to eq true
28
28
  sleep 0.25
29
29
 
30
- q.message_count.should == n
30
+ expect(q.message_count).to eq n
31
31
  q.purge
32
32
 
33
33
  ch.close
@@ -36,10 +36,10 @@ describe Bunny::Channel do
36
36
  describe "#wait_for_confirms" do
37
37
  it "should not hang when all the publishes are confirmed" do
38
38
  ch = connection.create_channel
39
- ch.should_not be_using_publisher_confirmations
39
+ expect(ch).not_to be_using_publisher_confirmations
40
40
 
41
41
  ch.confirm_select
42
- ch.should be_using_publisher_confirmations
42
+ expect(ch).to be_using_publisher_confirmations
43
43
 
44
44
  q = ch.queue("", :exclusive => true)
45
45
  x = ch.default_exchange
@@ -48,14 +48,14 @@ describe Bunny::Channel do
48
48
  x.publish("xyzzy", :routing_key => q.name)
49
49
  end
50
50
 
51
- ch.next_publish_seq_no.should == n + 1
52
- ch.wait_for_confirms.should be_true
51
+ expect(ch.next_publish_seq_no).to eq n + 1
52
+ expect(ch.wait_for_confirms).to eq true
53
53
 
54
54
  sleep 0.25
55
55
 
56
56
  expect {
57
57
  Bunny::Timeout.timeout(2) do
58
- ch.wait_for_confirms.should be_true
58
+ expect(ch.wait_for_confirms).to eq true
59
59
  end
60
60
  }.not_to raise_error
61
61
 
@@ -65,10 +65,10 @@ describe Bunny::Channel do
65
65
  context "when some of the messages get nacked" do
66
66
  it "puts the nacks in the nacked_set" do
67
67
  ch = connection.create_channel
68
- ch.should_not be_using_publisher_confirmations
68
+ expect(ch).not_to be_using_publisher_confirmations
69
69
 
70
70
  ch.confirm_select
71
- ch.should be_using_publisher_confirmations
71
+ expect(ch).to be_using_publisher_confirmations
72
72
 
73
73
  q = ch.queue("", :exclusive => true)
74
74
  x = ch.default_exchange
@@ -85,17 +85,17 @@ describe Bunny::Channel do
85
85
  ch.handle_ack_or_nack(nacked_tag, false, true)
86
86
  end
87
87
 
88
- ch.nacked_set.should_not be_empty
89
- ch.nacked_set.should include(nacked_tag)
88
+ expect(ch.nacked_set).not_to be_empty
89
+ expect(ch.nacked_set).to include(nacked_tag)
90
90
 
91
- ch.next_publish_seq_no.should == n + 1
92
- ch.wait_for_confirms.should be_false
91
+ expect(ch.next_publish_seq_no).to eq n + 1
92
+ expect(ch.wait_for_confirms).to eq false
93
93
 
94
- ch.nacked_set.should_not be_empty
95
- ch.nacked_set.should include(nacked_tag)
94
+ expect(ch.nacked_set).not_to be_empty
95
+ expect(ch.nacked_set).to include(nacked_tag)
96
96
 
97
97
  sleep 0.25
98
- q.message_count.should == n
98
+ expect(q.message_count).to eq n
99
99
  q.purge
100
100
 
101
101
  ch.close
@@ -28,10 +28,10 @@ unless ENV["CI"]
28
28
  x.publish(as, :routing_key => q.name, :persistent => true)
29
29
 
30
30
  sleep(1)
31
- q.message_count.should == 1
31
+ expect(q.message_count).to eq 1
32
32
 
33
33
  _, _, payload = q.pop
34
- payload.bytesize.should == as.bytesize
34
+ expect(payload.bytesize).to eq as.bytesize
35
35
 
36
36
  ch.close
37
37
  end
@@ -49,10 +49,10 @@ unless ENV["CI"]
49
49
  x.publish(as, :routing_key => q.name, :persistent => true)
50
50
 
51
51
  sleep(1)
52
- q.message_count.should == 1
52
+ expect(q.message_count).to eq 1
53
53
 
54
54
  _, _, payload = q.pop
55
- payload.bytesize.should == as.bytesize
55
+ expect(payload.bytesize).to eq as.bytesize
56
56
 
57
57
  ch.close
58
58
  end
@@ -70,15 +70,15 @@ unless ENV["CI"]
70
70
  x.publish("", :routing_key => q.name, :persistent => false, :mandatory => true)
71
71
 
72
72
  sleep(0.5)
73
- q.message_count.should == 1
73
+ expect(q.message_count).to eq 1
74
74
 
75
75
  envelope, headers, payload = q.pop
76
76
 
77
- payload.should == ""
77
+ expect(payload).to eq ""
78
78
 
79
- headers[:content_type].should == "application/octet-stream"
80
- headers[:delivery_mode].should == 1
81
- headers[:priority].should == 0
79
+ expect(headers[:content_type]).to eq "application/octet-stream"
80
+ expect(headers[:delivery_mode]).to eq 1
81
+ expect(headers[:priority]).to eq 0
82
82
 
83
83
  ch.close
84
84
  end
@@ -10,9 +10,9 @@ describe "A client-named", Bunny::Queue do
10
10
  it "can be bound to a pre-declared exchange" do
11
11
  ch = connection.create_channel
12
12
  q = ch.queue("bunny.tests.queues.client-named#{rand}", :exclusive => true)
13
- q.should_not be_server_named
13
+ expect(q).not_to be_server_named
14
14
 
15
- q.bind("amq.fanout").should == q
15
+ expect(q.bind("amq.fanout")).to eq q
16
16
 
17
17
  ch.close
18
18
  end
@@ -20,10 +20,10 @@ describe "A client-named", Bunny::Queue do
20
20
  it "can be unbound from a pre-declared exchange" do
21
21
  ch = connection.create_channel
22
22
  q = ch.queue("bunny.tests.queues.client-named#{rand}", :exclusive => true)
23
- q.should_not be_server_named
23
+ expect(q).not_to be_server_named
24
24
 
25
25
  q.bind("amq.fanout")
26
- q.unbind("amq.fanout").should == q
26
+ expect(q.unbind("amq.fanout")).to eq q
27
27
 
28
28
  ch.close
29
29
  end
@@ -33,7 +33,7 @@ describe "A client-named", Bunny::Queue do
33
33
  q = ch.queue("bunny.tests.queues.client-named#{rand}", :exclusive => true)
34
34
 
35
35
  x = ch.fanout("bunny.tests.exchanges.fanout#{rand}")
36
- q.bind(x).should == q
36
+ expect(q.bind(x)).to eq q
37
37
 
38
38
  x.delete
39
39
  ch.close
@@ -42,12 +42,12 @@ describe "A client-named", Bunny::Queue do
42
42
  it "can be unbound from a custom exchange" do
43
43
  ch = connection.create_channel
44
44
  q = ch.queue("bunny.tests.queues.client-named#{rand}", :exclusive => true)
45
- q.should_not be_server_named
45
+ expect(q).not_to be_server_named
46
46
 
47
47
  x = ch.fanout("bunny.tests.fanout", :auto_delete => true, :durable => false)
48
48
 
49
49
  q.bind(x)
50
- q.unbind(x).should == q
50
+ expect(q.unbind(x)).to eq q
51
51
 
52
52
  ch.close
53
53
  end
@@ -65,9 +65,9 @@ describe "A server-named", Bunny::Queue do
65
65
  it "can be bound to a pre-declared exchange" do
66
66
  ch = connection.create_channel
67
67
  q = ch.queue("", :exclusive => true)
68
- q.should be_server_named
68
+ expect(q).to be_server_named
69
69
 
70
- q.bind("amq.fanout").should == q
70
+ expect(q.bind("amq.fanout")).to eq q
71
71
 
72
72
  ch.close
73
73
  end
@@ -75,10 +75,10 @@ describe "A server-named", Bunny::Queue do
75
75
  it "can be unbound from a pre-declared exchange" do
76
76
  ch = connection.create_channel
77
77
  q = ch.queue("", :exclusive => true)
78
- q.should be_server_named
78
+ expect(q).to be_server_named
79
79
 
80
80
  q.bind("amq.fanout")
81
- q.unbind("amq.fanout").should == q
81
+ expect(q.unbind("amq.fanout")).to eq q
82
82
 
83
83
  ch.close
84
84
  end
@@ -88,7 +88,7 @@ describe "A server-named", Bunny::Queue do
88
88
  q = ch.queue("", :exclusive => true)
89
89
 
90
90
  x = ch.fanout("bunny.tests.exchanges.fanout#{rand}")
91
- q.bind(x).should == q
91
+ expect(q.bind(x)).to eq q
92
92
 
93
93
  x.delete
94
94
  ch.close
@@ -101,7 +101,7 @@ describe "A server-named", Bunny::Queue do
101
101
  name = "bunny.tests.exchanges.fanout#{rand}"
102
102
  x = ch.fanout(name)
103
103
  q.bind(x)
104
- q.unbind(name).should == q
104
+ expect(q.unbind(name)).to eq q
105
105
 
106
106
  x.delete
107
107
  ch.close
@@ -18,7 +18,7 @@ describe Bunny::Queue do
18
18
  ch = connection.create_channel
19
19
 
20
20
  q = ch.queue(name)
21
- q.name.should == name
21
+ expect(q.name).to eq name
22
22
 
23
23
  q.delete
24
24
  ch.close
@@ -28,7 +28,7 @@ describe Bunny::Queue do
28
28
  ch = connection.create_channel
29
29
 
30
30
  q = ch.queue(name)
31
- ch.queue(name).object_id.should == q.object_id
31
+ expect(ch.queue(name).object_id).to eq q.object_id
32
32
 
33
33
  q.delete
34
34
  ch.close
@@ -41,9 +41,9 @@ describe Bunny::Queue do
41
41
  ch = connection.create_channel
42
42
 
43
43
  q = ch.queue("")
44
- q.name.should_not be_empty
45
- q.name.should =~ /^amq.gen.+/
46
- q.should be_server_named
44
+ expect(q.name).not_to be_empty
45
+ expect(q.name).to match /^amq.gen.+/
46
+ expect(q).to be_server_named
47
47
  q.delete
48
48
 
49
49
  ch.close
@@ -56,10 +56,10 @@ describe Bunny::Queue do
56
56
  ch = connection.create_channel
57
57
 
58
58
  q = ch.queue("bunny.tests.queues.durable", :durable => true)
59
- q.should be_durable
60
- q.should_not be_auto_delete
61
- q.should_not be_exclusive
62
- q.arguments.should be_nil
59
+ expect(q).to be_durable
60
+ expect(q).not_to be_auto_delete
61
+ expect(q).not_to be_exclusive
62
+ expect(q.arguments).to be_nil
63
63
  q.delete
64
64
 
65
65
  ch.close
@@ -72,8 +72,8 @@ describe Bunny::Queue do
72
72
  ch = connection.create_channel
73
73
 
74
74
  q = ch.queue("bunny.tests.queues.exclusive", :exclusive => true)
75
- q.should be_exclusive
76
- q.should_not be_durable
75
+ expect(q).to be_exclusive
76
+ expect(q).not_to be_durable
77
77
  q.delete
78
78
 
79
79
  ch.close
@@ -86,9 +86,9 @@ describe Bunny::Queue do
86
86
  ch = connection.create_channel
87
87
 
88
88
  q = ch.queue("bunny.tests.queues.auto-delete", :auto_delete => true)
89
- q.should be_auto_delete
90
- q.should_not be_exclusive
91
- q.should_not be_durable
89
+ expect(q).to be_auto_delete
90
+ expect(q).not_to be_exclusive
91
+ expect(q).not_to be_durable
92
92
  q.delete
93
93
 
94
94
  ch.close
@@ -107,7 +107,7 @@ describe Bunny::Queue do
107
107
  ch.queue_declare("bunny.tests.queues.auto-delete", :auto_delete => false, :durable => true)
108
108
  }.to raise_error(Bunny::PreconditionFailed)
109
109
 
110
- ch.should be_closed
110
+ expect(ch).to be_closed
111
111
  end
112
112
  end
113
113
 
@@ -122,14 +122,14 @@ describe Bunny::Queue do
122
122
  ch = connection.create_channel
123
123
 
124
124
  q = ch.queue("bunny.tests.queues.with-arguments.ttl", :arguments => args, :exclusive => true)
125
- q.arguments.should == args
125
+ expect(q.arguments).to eq args
126
126
 
127
127
  q.publish("xyzzy")
128
128
  sleep 0.1
129
129
 
130
- q.message_count.should == 1
130
+ expect(q.message_count).to eq 1
131
131
  sleep 1.5
132
- q.message_count.should == 0
132
+ expect(q.message_count).to eq 0
133
133
 
134
134
  ch.close
135
135
  end
@@ -142,13 +142,13 @@ describe Bunny::Queue do
142
142
  ch = connection.create_channel
143
143
  q = ch.queue("", :exlusive => true)
144
144
 
145
- connection.queue_exists?(q.name).should be_true
145
+ expect(connection.queue_exists?(q.name)).to eq true
146
146
  end
147
147
  end
148
148
 
149
149
  context "when a queue DOES NOT exist" do
150
150
  it "returns false" do
151
- connection.queue_exists?("suf89u9a4jo3ndnakls##{Time.now.to_i}").should be_false
151
+ expect(connection.queue_exists?("suf89u9a4jo3ndnakls##{Time.now.to_i}")).to eq false
152
152
  end
153
153
  end
154
154
  end
@@ -169,18 +169,18 @@ describe Bunny::Queue do
169
169
  ch = connection.create_channel
170
170
 
171
171
  q = ch.queue("bunny.tests.queues.with-arguments.max-length", :arguments => args, :exclusive => true)
172
- q.arguments.should == args
172
+ expect(q.arguments).to eq args
173
173
 
174
174
  (n * 10).times do
175
175
  q.publish("xyzzy")
176
176
  end
177
177
 
178
- q.message_count.should == n
178
+ expect(q.message_count).to eq n
179
179
  (n * 5).times do
180
180
  q.publish("xyzzy")
181
181
  end
182
182
 
183
- q.message_count.should == n
183
+ expect(q.message_count).to eq n
184
184
  q.delete
185
185
 
186
186
  ch.close
@@ -22,7 +22,7 @@ describe Bunny::Queue, "#delete" do
22
22
  # no exception as of RabbitMQ 3.2. MK.
23
23
  q.delete
24
24
 
25
- ch.queues.size.should == 0
25
+ expect(ch.queues.size).to eq 0
26
26
  end
27
27
  end
28
28
 
@@ -21,9 +21,9 @@ describe Bunny::Queue do
21
21
  x.publish("xyzzy", :routing_key => q.name)
22
22
  sleep(0.5)
23
23
 
24
- q.message_count.should == 1
24
+ expect(q.message_count).to eq 1
25
25
  q.purge
26
- q.message_count.should == 0
26
+ expect(q.message_count).to eq 0
27
27
 
28
28
  ch.close
29
29
  end
@@ -19,12 +19,12 @@ describe Bunny::Queue, "bound to an exchange" do
19
19
 
20
20
  x.publish("")
21
21
  sleep 0.3
22
- q.message_count.should == 1
22
+ expect(q.message_count).to eq 1
23
23
 
24
24
  q.unbind(x)
25
25
 
26
26
  x.publish("")
27
- q.message_count.should == 1
27
+ expect(q.message_count).to eq 1
28
28
  end
29
29
  end
30
30
 
@@ -49,10 +49,10 @@ describe Bunny::Queue, "#subscribe" do
49
49
  x.publish("hello", :routing_key => queue_name)
50
50
 
51
51
  sleep 0.7
52
- delivered_keys.should include(queue_name)
53
- delivered_data.should include("hello")
52
+ expect(delivered_keys).to include(queue_name)
53
+ expect(delivered_data).to include("hello")
54
54
 
55
- ch.queue(queue_name, :auto_delete => true, :durable => false).message_count.should == 0
55
+ expect(ch.queue(queue_name, :auto_delete => true, :durable => false).message_count).to eq 0
56
56
 
57
57
  ch.close
58
58
  end
@@ -26,10 +26,10 @@ describe "Sender-selected distribution" do
26
26
 
27
27
  sleep 0.5
28
28
 
29
- q1.message_count.should == n
30
- q2.message_count.should == n
31
- q3.message_count.should == n
32
- q4.message_count.should be_zero
29
+ expect(q1.message_count).to eq n
30
+ expect(q2.message_count).to eq n
31
+ expect(q3.message_count).to eq n
32
+ expect(q4.message_count).to be_zero
33
33
 
34
34
  x.delete
35
35
  end
@@ -4,7 +4,7 @@ require "spec_helper"
4
4
  unless ENV["CI"]
5
5
  shared_examples_for "successful TLS connection" do
6
6
  it "succeeds" do
7
- connection.should be_tls
7
+ expect(connection).to be_tls
8
8
  ch = connection.create_channel
9
9
 
10
10
  q = ch.queue("", :exclusive => true)
@@ -16,15 +16,15 @@ unless ENV["CI"]
16
16
  publish("xyzzy", :routing_key => q.name)
17
17
 
18
18
  sleep 0.5
19
- q.message_count.should == 4
19
+ expect(q.message_count).to eq 4
20
20
 
21
21
  i = 0
22
22
  q.subscribe do |delivery_info, _, payload|
23
23
  i += 1
24
24
  end
25
25
  sleep 1.0
26
- i.should == 4
27
- q.message_count.should == 0
26
+ expect(i).to eq 4
27
+ expect(q.message_count).to eq 0
28
28
 
29
29
  ch.close
30
30
  end
@@ -150,7 +150,7 @@ unless ENV["CI"]
150
150
  include_examples "successful TLS connection"
151
151
 
152
152
  it "connects using TLSv1" do
153
- connection.transport.socket.ssl_version.should == "TLSv1"
153
+ expect(connection.transport.socket.ssl_version).to eq "TLSv1"
154
154
  end
155
155
  end
156
156
  end