stomper 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/spec/stomper_spec.rb CHANGED
@@ -4,6 +4,5 @@ require 'spec_helper'
4
4
  describe Stomper do
5
5
  it "should define a version" do
6
6
  Stomper.const_defined?(:VERSION).should be_true
7
- Stomper::VERSION.should == '2.0.0'
8
7
  end
9
8
  end
@@ -8,3 +8,28 @@ end
8
8
  RSpec::Matchers.define :have_transaction_header do |expected|
9
9
  have_frame_header :transaction, expected
10
10
  end
11
+
12
+ RSpec::Matchers.define :have_command do |expected|
13
+ match do |actual|
14
+ actual.command.should == expected
15
+ end
16
+ end
17
+
18
+ RSpec::Matchers.define :have_body_encoding do |expected|
19
+ if RUBY_VERSION >= "1.9"
20
+ match do |actual|
21
+ actual.body.encoding.name.should == expected
22
+ end
23
+ else
24
+ match do |actual|
25
+ true.should be_true
26
+ end
27
+ end
28
+ end
29
+
30
+ RSpec::Matchers.define :have_body do |expected, expected_no_encoding, encoding|
31
+ e_expected = (RUBY_VERSION >= '1.9') ? expected.encode(encoding) : expected_no_encoding
32
+ match do |actual|
33
+ actual.body.should == e_expected
34
+ end
35
+ end
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stomper
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 2
7
- - 0
8
- - 1
9
- version: 2.0.1
4
+ prerelease:
5
+ version: 2.0.2
10
6
  platform: ruby
11
7
  authors:
12
8
  - Ian D. Eccles
@@ -14,7 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-02-27 00:00:00 -05:00
13
+ date: 2011-03-01 00:00:00 -05:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
@@ -25,10 +21,6 @@ dependencies:
25
21
  requirements:
26
22
  - - ~>
27
23
  - !ruby/object:Gem::Version
28
- segments:
29
- - 2
30
- - 4
31
- - 0
32
24
  version: 2.4.0
33
25
  type: :development
34
26
  version_requirements: *id001
@@ -40,10 +32,6 @@ dependencies:
40
32
  requirements:
41
33
  - - ">="
42
34
  - !ruby/object:Gem::Version
43
- segments:
44
- - 0
45
- - 3
46
- - 0
47
35
  version: 0.3.0
48
36
  type: :development
49
37
  version_requirements: *id002
@@ -55,10 +43,6 @@ dependencies:
55
43
  requirements:
56
44
  - - ">="
57
45
  - !ruby/object:Gem::Version
58
- segments:
59
- - 0
60
- - 6
61
- - 0
62
46
  version: 0.6.0
63
47
  type: :development
64
48
  version_requirements: *id003
@@ -70,8 +54,6 @@ dependencies:
70
54
  requirements:
71
55
  - - ">="
72
56
  - !ruby/object:Gem::Version
73
- segments:
74
- - 0
75
57
  version: "0"
76
58
  type: :development
77
59
  version_requirements: *id004
@@ -83,8 +65,6 @@ dependencies:
83
65
  requirements:
84
66
  - - ">="
85
67
  - !ruby/object:Gem::Version
86
- segments:
87
- - 0
88
68
  version: "0"
89
69
  type: :development
90
70
  version_requirements: *id005
@@ -96,10 +76,6 @@ dependencies:
96
76
  requirements:
97
77
  - - ">="
98
78
  - !ruby/object:Gem::Version
99
- segments:
100
- - 0
101
- - 10
102
- - 0
103
79
  version: 0.10.0
104
80
  type: :development
105
81
  version_requirements: *id006
@@ -115,6 +91,7 @@ extra_rdoc_files: []
115
91
  files:
116
92
  - .gitignore
117
93
  - .rspec
94
+ - CHANGELOG.md
118
95
  - Gemfile
119
96
  - LICENSE
120
97
  - README.md
@@ -129,18 +106,12 @@ files:
129
106
  - features/scopes.feature
130
107
  - features/secure_connections.feature
131
108
  - features/send_and_message.feature
132
- - features/steps/acking_messages_steps.rb
133
- - features/steps/disconnecting_steps.rb
134
- - features/steps/establish_connection_steps.rb
135
- - features/steps/frame_transmission_steps.rb
136
- - features/steps/protocol_version_negotiation_steps.rb
137
- - features/steps/receipts_steps.rb
138
- - features/steps/scopes_steps.rb
139
- - features/steps/secure_connections_steps.rb
140
- - features/steps/send_and_message_steps.rb
141
- - features/steps/subscribing_steps.rb
142
- - features/steps/threaded_receiver_steps.rb
143
- - features/steps/transactions_steps.rb
109
+ - features/steps/ack_and_nack_steps.rb
110
+ - features/steps/broker_steps.rb
111
+ - features/steps/client_steps.rb
112
+ - features/steps/receipt_steps.rb
113
+ - features/steps/scope_steps.rb
114
+ - features/steps/subscription_steps.rb
144
115
  - features/subscribing.feature
145
116
  - features/support/env.rb
146
117
  - features/support/header_helpers.rb
@@ -198,7 +169,6 @@ files:
198
169
  - spec/stomper/extensions/events_spec.rb
199
170
  - spec/stomper/extensions/heartbeat_spec.rb
200
171
  - spec/stomper/extensions/scoping_spec.rb
201
- - spec/stomper/frame_serializer_1.8_spec.rb
202
172
  - spec/stomper/frame_serializer_spec.rb
203
173
  - spec/stomper/frame_spec.rb
204
174
  - spec/stomper/headers_spec.rb
@@ -230,23 +200,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
230
200
  requirements:
231
201
  - - ">="
232
202
  - !ruby/object:Gem::Version
233
- segments:
234
- - 1
235
- - 8
236
- - 7
237
203
  version: 1.8.7
238
204
  required_rubygems_version: !ruby/object:Gem::Requirement
239
205
  none: false
240
206
  requirements:
241
207
  - - ">="
242
208
  - !ruby/object:Gem::Version
243
- segments:
244
- - 0
245
209
  version: "0"
246
210
  requirements: []
247
211
 
248
212
  rubyforge_project: stomper
249
- rubygems_version: 1.3.7
213
+ rubygems_version: 1.5.2
250
214
  signing_key:
251
215
  specification_version: 3
252
216
  summary: Client for message queues implementing the Stomp protocol interface.
@@ -259,18 +223,12 @@ test_files:
259
223
  - features/scopes.feature
260
224
  - features/secure_connections.feature
261
225
  - features/send_and_message.feature
262
- - features/steps/acking_messages_steps.rb
263
- - features/steps/disconnecting_steps.rb
264
- - features/steps/establish_connection_steps.rb
265
- - features/steps/frame_transmission_steps.rb
266
- - features/steps/protocol_version_negotiation_steps.rb
267
- - features/steps/receipts_steps.rb
268
- - features/steps/scopes_steps.rb
269
- - features/steps/secure_connections_steps.rb
270
- - features/steps/send_and_message_steps.rb
271
- - features/steps/subscribing_steps.rb
272
- - features/steps/threaded_receiver_steps.rb
273
- - features/steps/transactions_steps.rb
226
+ - features/steps/ack_and_nack_steps.rb
227
+ - features/steps/broker_steps.rb
228
+ - features/steps/client_steps.rb
229
+ - features/steps/receipt_steps.rb
230
+ - features/steps/scope_steps.rb
231
+ - features/steps/subscription_steps.rb
274
232
  - features/subscribing.feature
275
233
  - features/support/env.rb
276
234
  - features/support/header_helpers.rb
@@ -300,7 +258,6 @@ test_files:
300
258
  - spec/stomper/extensions/events_spec.rb
301
259
  - spec/stomper/extensions/heartbeat_spec.rb
302
260
  - spec/stomper/extensions/scoping_spec.rb
303
- - spec/stomper/frame_serializer_1.8_spec.rb
304
261
  - spec/stomper/frame_serializer_spec.rb
305
262
  - spec/stomper/frame_spec.rb
306
263
  - spec/stomper/headers_spec.rb
@@ -1,8 +0,0 @@
1
- Given /^an established connection$/ do
2
- @connection.connect
3
- end
4
-
5
- When /^the client disconnects$/ do
6
- @connection.disconnect
7
- @broker.stop
8
- end
@@ -1,77 +0,0 @@
1
- After do |s|
2
- begin
3
- @connection && @connection.stop
4
- @broker && @broker.force_stop
5
- rescue Exception => ex
6
- end
7
- end
8
-
9
- Given /^a (\d+\.\d+)?\s*connection between client and broker$/ do |version|
10
- version ||= '1.0'
11
- @broker_uri_string = "stomp:///"
12
- @broker_uri = URI.parse(@broker_uri_string)
13
- @broker = TestStompServer.new(version)
14
- @broker.start
15
- @connection = Stomper::Connection.new(@broker_uri)
16
- @received_frames = []
17
- @sent_frames = []
18
- @connection.before_transmitting do |f, c|
19
- @sent_frames << f
20
- end
21
- @connection.after_receiving do |f, c|
22
- @received_frames << f
23
- end
24
- @connection.start
25
- end
26
-
27
-
28
- Given /^a Stomp (\d+\.\d+)?\s*broker$/ do |version|
29
- version ||= '1.0'
30
- @broker_uri_string = "stomp:///"
31
- @broker_uri = URI.parse(@broker_uri_string)
32
- @broker = TestStompServer.new(version)
33
- @broker.start
34
- @connection = Stomper::Connection.new(@broker_uri)
35
- end
36
-
37
- Given /^an erroring Stomp broker$/ do
38
- @broker_uri_string = "stomp:///"
39
- @broker_uri = URI.parse(@broker_uri_string)
40
- @broker = TestStompServer.new('1.0')
41
- @broker.session_class = TestStompServer::StompErrorOnConnectSession
42
- @broker.start
43
- @connection = Stomper::Connection.new(@broker_uri)
44
- end
45
-
46
-
47
- When /^a connection is created from the broker's URI$/ do
48
- #@connection = Stomper::Connection.new(@broker_uri)
49
- end
50
-
51
- When /^a connection is created from the broker's URI string$/ do
52
- @connection = Stomper::Connection.new(@broker_uri_string)
53
- end
54
-
55
- When /^the connection is told to connect$/ do
56
- @connection.connect
57
- end
58
-
59
- Then /^the connection should be connected$/ do
60
- @connection.connected?.should be_true
61
- end
62
-
63
- Then /^the connection should be using the (\d+\.\d+) protocol$/ do |version|
64
- @connection.version.should == version
65
- end
66
-
67
- Then /^connecting should raise an unsupported protocol version error$/ do
68
- lambda { @connection.connect }.should raise_error(Stomper::Errors::UnsupportedProtocolVersionError)
69
- end
70
-
71
- Then /^the (connection|client) should not be connected$/ do |arbitrary_name|
72
- @connection.connected?.should be_false
73
- end
74
-
75
- Then /^connecting should raise an connect failed error$/ do
76
- lambda { @connection.connect }.should raise_error(Stomper::Errors::ConnectFailedError)
77
- end
@@ -1,40 +0,0 @@
1
- Then /^the broker should have received an? "([^"]*)" frame$/ do |command|
2
- Then "the broker should have received a \"#{command}\" frame with headers", table(%{
3
- | header-name | header-value |
4
- })
5
- end
6
-
7
- Then /^the broker should have received an? "([^"]*)" frame with headers$/ do |command, table|
8
- headers = table_to_headers table
9
- @broker.session.received_frames.any? do |f|
10
- f.command == command && headers.all? { |(k,v)| headers[k] == f[k] }
11
- end.should be_true
12
- end
13
-
14
- Then /^the client should have received an? "([^"]*)" frame with headers$/ do |command, table|
15
- headers = table_to_headers table
16
- @received_frames.any? do |f|
17
- f.command == command && headers.all? { |(k,v)| headers[k] == f[k] }
18
- end.should be_true
19
- end
20
-
21
- When /^the broker sends a "([^"]*)" frame with headers$/ do |command, table|
22
- headers = table_to_headers table
23
- @broker.session.send_frame command, headers
24
- end
25
-
26
- When /^the frame exchange is completed$/ do
27
- @connection.disconnect(:receipt => 'TERMINATE_POLITELY_12345')
28
- @connection.stop
29
- @broker.stop
30
- end
31
-
32
- When /^the frame exchange is completed without client disconnect$/ do
33
- @connection.stop
34
- @broker.stop
35
- end
36
-
37
- When /^the client waits for (\d+) "([^"]*)" frames?$/ do |count, command|
38
- count = count.to_i
39
- Thread.pass while @received_frames.select { |f| f.command == command }.size < count
40
- end
@@ -1,15 +0,0 @@
1
- When /^a connection is established$/ do
2
- @connection.connect
3
- end
4
-
5
- Given /^an unversioned Stomp broker$/ do
6
- @broker_uri_string = "stomp:///"
7
- @broker_uri = URI.parse(@broker_uri_string)
8
- @broker = TestStompServer.new(nil)
9
- @broker.start
10
- @connection = Stomper::Connection.new(@broker_uri)
11
- end
12
-
13
- When /^the client protocol version is "([^"]*)"$/ do |arg1|
14
- @connection.versions = arg1.split(",")
15
- end
@@ -1,43 +0,0 @@
1
- Given /^a Stomp (\d+\.\d+)?\s*SSL broker$/ do |version|
2
- @broker = TestSSLStompServer.new(version)
3
- @broker.start
4
- end
5
-
6
- When /^a connection is created for the SSL broker$/ do
7
- @connection = Stomper::Connection.new("stomp+ssl:///")
8
- end
9
-
10
- When /^the broker's host is "([^"]*)"$/ do |hostname|
11
- @connection.host = hostname
12
- end
13
-
14
- When /^no SSL verification is performed$/ do
15
- @connection.ssl[:verify_mode] = OpenSSL::SSL::VERIFY_NONE
16
- end
17
-
18
- When /^SSL verification is performed$/ do
19
- @connection.ssl[:verify_mode] = ::OpenSSL::SSL::VERIFY_PEER | ::OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT
20
- end
21
-
22
- When /^an SSL post connection check is performed on "([^"]*)"$/ do |host|
23
- @connection.ssl[:post_connection_check] = host
24
- end
25
-
26
- Then /^connecting should raise an openssl error$/ do
27
- lambda { @connection.connect }.should raise_error(OpenSSL::SSL::SSLError)
28
- # It is problematic that this is needed...
29
- @broker.stop
30
- end
31
-
32
- When /^an SSL post connection check is not performed$/ do
33
- @connection.ssl[:post_connection_check] = false
34
- end
35
-
36
- When /^the broker's certificate is verified by CA$/ do
37
- @connection.ssl[:ca_file] = File.expand_path('../../support/ssl/demoCA/cacert.pem', __FILE__)
38
- end
39
-
40
- When /^the client's certificate and key are specified$/ do
41
- @connection.ssl[:cert] = OpenSSL::X509::Certificate.new(File.read(File.expand_path('../../support/ssl/client_cert.pem', __FILE__)))
42
- @connection.ssl[:key] = OpenSSL::PKey::RSA.new(File.read(File.expand_path('../../support/ssl/client_key.pem', __FILE__)))
43
- end
@@ -1,35 +0,0 @@
1
- Given /^the client subscribes to (\/.*)$/ do |dest|
2
- @messages_for_subscription ||= []
3
- @connection.subscribe(dest) do |m|
4
- sub = m[:subscription]
5
- @messages_for_subscription << m
6
- end
7
- end
8
-
9
- When /^the client sends a "([^"]*)" "([^"]*)" to (\/.*)$/ do |ct, body, dest|
10
- @connection.send(dest, body, :'content-type' => ct)
11
- end
12
-
13
- Then /^the client should have received a "([^"]*)" message of "([^"]*)"$/ do |ct, body|
14
- @messages_for_subscription.any? do |m|
15
- m.content_type == ct && m.body == body
16
- end.should be_true
17
- end
18
-
19
- When /^the client sends a "([^"]*)" encoded as "([^"]*)" to (\/.*)$/ do |body, enc, dest|
20
- body.force_encoding(enc) if body.respond_to?(:force_encoding)
21
- @connection.send(dest, body)
22
- end
23
-
24
- Then /^the client should have received a "([^"]*)" message of "([^"]*)" encoded as "([^"]*)"$/ do |ct, body, enc|
25
- @messages_for_subscription.any? do |m|
26
- ct_check = (m.content_type == ct || m.content_type.nil? && ct.empty?)
27
- b_check = body == m.body
28
- if body.respond_to?(:encoding)
29
- ct_check && b_check && m.body.encoding.name == enc
30
- else
31
- ct_check && b_check
32
- end
33
- end.should be_true
34
- end
35
-
@@ -1,36 +0,0 @@
1
- When /^the client subscribes to "([^"]*)" with headers$/ do |dest, table|
2
- @subscribe_frames ||= []
3
- headers = table_to_headers table
4
- @default_subscription_triggered = 0
5
- @subscribe_frames << @connection.subscribe(dest, headers) do |m|
6
- @default_subscription_triggered += 1
7
- end
8
- end
9
-
10
- Then /^the default subscription callback should have been triggered( (\d+) times?)?$/ do |full, times|
11
- if times.nil? || times.empty?
12
- @default_subscription_triggered.should >= 1
13
- else
14
- @default_subscription_triggered.should == times.to_i
15
- end
16
- end
17
-
18
- Then /^the default subscription callback should not have been triggered$/ do
19
- @default_subscription_triggered.should == 0
20
- end
21
-
22
- When /^the client unsubscribes by ID$/ do
23
- @connection.unsubscribe(@subscribe_frames.last[:id])
24
- end
25
-
26
- When /^the client unsubscribes by destination$/ do
27
- @connection.unsubscribe(@subscribe_frames.last[:destination])
28
- end
29
-
30
- When /^the client unsubscribes by frame$/ do
31
- @connection.unsubscribe(@subscribe_frames.last)
32
- end
33
-
34
- When /^the client unsubscribes from destination "([^"]*)"$/ do |destination|
35
- @connection.unsubscribe(destination)
36
- end
@@ -1,8 +0,0 @@
1
- When /^the broker closes the connection unexpectedly$/ do
2
- @broker.force_stop
3
- end
4
-
5
- Then /^after (\d+\.\d+) seconds, the receiver should no longer be running$/ do |sleep_for|
6
- sleep sleep_for.to_f
7
- @connection.running?.should be_false
8
- end
File without changes