dispatch-rider 1.5.3 → 1.6.0

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/lib/dispatch-rider.rb +1 -0
  4. data/lib/dispatch-rider/configuration.rb +12 -5
  5. data/lib/dispatch-rider/demultiplexer.rb +3 -27
  6. data/lib/dispatch-rider/logging.rb +10 -0
  7. data/lib/dispatch-rider/logging/base_formatter.rb +30 -0
  8. data/lib/dispatch-rider/logging/json_formatter.rb +75 -0
  9. data/lib/dispatch-rider/logging/lifecycle_logger.rb +53 -0
  10. data/lib/dispatch-rider/logging/text_formatter.rb +48 -0
  11. data/lib/dispatch-rider/queue_services/file_system/queue.rb +13 -2
  12. data/lib/dispatch-rider/version.rb +1 -1
  13. data/spec/lib/dispatch-rider/airbrake_error_handler_spec.rb +10 -3
  14. data/spec/lib/dispatch-rider/callbacks/access_spec.rb +16 -18
  15. data/spec/lib/dispatch-rider/callbacks/storage_spec.rb +4 -9
  16. data/spec/lib/dispatch-rider/configuration_spec.rb +3 -3
  17. data/spec/lib/dispatch-rider/default_error_handler_spec.rb +2 -2
  18. data/spec/lib/dispatch-rider/demultiplexer_spec.rb +14 -14
  19. data/spec/lib/dispatch-rider/dispatcher_spec.rb +10 -8
  20. data/spec/lib/dispatch-rider/handlers/base_spec.rb +27 -22
  21. data/spec/lib/dispatch-rider/handlers/inheritance_tracking_spec.rb +6 -6
  22. data/spec/lib/dispatch-rider/logging/json_formatter_spec.rb +72 -0
  23. data/spec/lib/dispatch-rider/logging/lifecycle_logger_spec.rb +73 -0
  24. data/spec/lib/dispatch-rider/logging/text_formatter_spec.rb +61 -0
  25. data/spec/lib/dispatch-rider/message_spec.rb +11 -11
  26. data/spec/lib/dispatch-rider/notification_services/aws_sns_spec.rb +14 -13
  27. data/spec/lib/dispatch-rider/notification_services/base_spec.rb +18 -13
  28. data/spec/lib/dispatch-rider/notification_services/file_system/channel_spec.rb +2 -3
  29. data/spec/lib/dispatch-rider/notification_services/file_system/notifier_spec.rb +1 -3
  30. data/spec/lib/dispatch-rider/notification_services/file_system_spec.rb +3 -4
  31. data/spec/lib/dispatch-rider/publisher/configuration/destination_spec.rb +30 -21
  32. data/spec/lib/dispatch-rider/publisher/configuration/notification_service_spec.rb +22 -16
  33. data/spec/lib/dispatch-rider/publisher/configuration_reader_spec.rb +11 -10
  34. data/spec/lib/dispatch-rider/publisher/configuration_spec.rb +12 -12
  35. data/spec/lib/dispatch-rider/publisher/configuration_support_spec.rb +11 -11
  36. data/spec/lib/dispatch-rider/publisher_spec.rb +22 -15
  37. data/spec/lib/dispatch-rider/queue_services/aws_sqs_spec.rb +44 -36
  38. data/spec/lib/dispatch-rider/queue_services/base_spec.rb +41 -28
  39. data/spec/lib/dispatch-rider/queue_services/file_system_spec.rb +15 -14
  40. data/spec/lib/dispatch-rider/queue_services/received_message_spec.rb +3 -3
  41. data/spec/lib/dispatch-rider/queue_services/simple_spec.rb +9 -9
  42. data/spec/lib/dispatch-rider/registrars/base_spec.rb +5 -5
  43. data/spec/lib/dispatch-rider/registrars/file_system_channel_spec.rb +3 -3
  44. data/spec/lib/dispatch-rider/registrars/handler_spec.rb +1 -1
  45. data/spec/lib/dispatch-rider/registrars/notification_service_spec.rb +1 -1
  46. data/spec/lib/dispatch-rider/registrars/publishing_destination_spec.rb +2 -2
  47. data/spec/lib/dispatch-rider/registrars/queue_service_spec.rb +1 -1
  48. data/spec/lib/dispatch-rider/registrars/sns_channel_spec.rb +5 -5
  49. data/spec/lib/dispatch-rider/runner_spec.rb +1 -1
  50. data/spec/lib/dispatch-rider/subscriber_spec.rb +45 -29
  51. data/spec/lib/dispatch-rider_spec.rb +3 -3
  52. data/spec/spec_helper.rb +3 -1
  53. metadata +13 -2
@@ -11,7 +11,7 @@ describe DispatchRider::Publisher::ConfigurationReader do
11
11
  subject { described_class }
12
12
 
13
13
  it "responds to :load_config" do
14
- subject.should respond_to :load_config
14
+ expect(subject).to respond_to :load_config
15
15
  end
16
16
 
17
17
  it "requires 2 paramaters" do
@@ -28,7 +28,7 @@ describe DispatchRider::Publisher::ConfigurationReader do
28
28
 
29
29
  describe "notification_services parsing" do
30
30
 
31
- let(:configuration){ DispatchRider::Publisher::Configuration.new(configuration_hash) }
31
+ let(:configuration) { DispatchRider::Publisher::Configuration.new(configuration_hash) }
32
32
 
33
33
  context "when notification_services has no items in it" do
34
34
 
@@ -40,7 +40,7 @@ describe DispatchRider::Publisher::ConfigurationReader do
40
40
  end
41
41
 
42
42
  it "doesn't call register_notification_service" do
43
- publisher.should_not_receive(:register_notification_service)
43
+ expect(publisher).not_to receive(:register_notification_service)
44
44
  subject.load_config(configuration, publisher)
45
45
  end
46
46
  end
@@ -55,7 +55,7 @@ describe DispatchRider::Publisher::ConfigurationReader do
55
55
  end
56
56
 
57
57
  it "calls register_notification_service with :file_system and {}" do
58
- publisher.should_receive(:register_notification_service).with("file_system", {})
58
+ expect(publisher).to receive(:register_notification_service).with("file_system", {})
59
59
  subject.load_config(configuration, publisher)
60
60
  end
61
61
  end
@@ -71,8 +71,8 @@ describe DispatchRider::Publisher::ConfigurationReader do
71
71
  end
72
72
 
73
73
  it "calls register_notification_service with :file_system and {}, as well as :foo, {bar: '123'}" do
74
- publisher.should_receive(:register_notification_service).with("file_system", {})
75
- publisher.should_receive(:register_notification_service).with("foo", {"bar" => "123"})
74
+ expect(publisher).to receive(:register_notification_service).with("file_system", {})
75
+ expect(publisher).to receive(:register_notification_service).with("foo", "bar" => "123")
76
76
  subject.load_config(configuration, publisher)
77
77
  end
78
78
  end
@@ -81,7 +81,7 @@ describe DispatchRider::Publisher::ConfigurationReader do
81
81
 
82
82
  describe "destinations" do
83
83
 
84
- let(:configuration){ DispatchRider::Publisher::Configuration.new(configuration_hash) }
84
+ let(:configuration) { DispatchRider::Publisher::Configuration.new(configuration_hash) }
85
85
 
86
86
  context "when destinations has no items in it" do
87
87
 
@@ -93,7 +93,7 @@ describe DispatchRider::Publisher::ConfigurationReader do
93
93
  end
94
94
 
95
95
  it "doesn't call register_destination" do
96
- publisher.should_not_receive(:register_destination)
96
+ expect(publisher).not_to receive(:register_destination)
97
97
  subject.load_config(configuration, publisher)
98
98
  end
99
99
 
@@ -104,7 +104,7 @@ describe DispatchRider::Publisher::ConfigurationReader do
104
104
  let :configuration_hash do
105
105
  {
106
106
  destinations: {
107
- out1:{
107
+ out1: {
108
108
  service: :file_system,
109
109
  channel: :foo,
110
110
  options: {
@@ -116,7 +116,8 @@ describe DispatchRider::Publisher::ConfigurationReader do
116
116
  end
117
117
 
118
118
  it "should call register_destination with the right parameters" do
119
- publisher.should_receive(:register_destination).exactly(1).times.with("out1", :file_system, :foo, "path" => "tmp/test/channel")
119
+ params = ["out1", :file_system, :foo, "path" => "tmp/test/channel"]
120
+ expect(publisher).to receive(:register_destination).exactly(1).times.with(*params)
120
121
  subject.load_config(configuration, publisher)
121
122
  end
122
123
 
@@ -31,13 +31,13 @@ describe DispatchRider::Publisher::Configuration do
31
31
  }
32
32
  end
33
33
 
34
- subject{ described_class.new(configuration_hash) }
34
+ subject { described_class.new(configuration_hash) }
35
35
 
36
36
  describe "#notification services" do
37
37
  let(:file_system) do
38
38
  DispatchRider::Publisher::Configuration::NotificationService.new(
39
39
  "file_system",
40
- { "default_folder" => "tmp/dispatch_rider" }
40
+ "default_folder" => "tmp/dispatch_rider"
41
41
  )
42
42
  end
43
43
 
@@ -46,8 +46,8 @@ describe DispatchRider::Publisher::Configuration do
46
46
  end
47
47
 
48
48
  it "contains both notification services" do
49
- subject.notification_services.count.should == 2
50
- subject.notification_services.should =~ [file_system, sns]
49
+ expect(subject.notification_services.count).to eq(2)
50
+ expect(subject.notification_services).to match_array([file_system, sns])
51
51
  end
52
52
  end
53
53
 
@@ -81,20 +81,20 @@ describe DispatchRider::Publisher::Configuration do
81
81
  end
82
82
 
83
83
  it "contains both destinations" do
84
- subject.destinations.count.should == 2
85
- subject.destinations.should =~ [employee_updates, account_updates]
84
+ expect(subject.destinations.count).to eq(2)
85
+ expect(subject.destinations).to match_array([employee_updates, account_updates])
86
86
  end
87
87
  end
88
88
 
89
89
  describe "#clear" do
90
90
  example do
91
- expect{
91
+ expect {
92
92
  subject.clear
93
93
  }.to change(subject.notification_services, :count).by(-2)
94
94
  end
95
95
 
96
96
  example do
97
- expect{
97
+ expect {
98
98
  subject.clear
99
99
  }.to change(subject.destinations, :count).by(-2)
100
100
  end
@@ -136,13 +136,13 @@ describe DispatchRider::Publisher::Configuration do
136
136
  end
137
137
 
138
138
  it "replaces the current notification services with the new notification service" do
139
- subject.notification_services.count.should == 1
140
- subject.notification_services.should =~ [notification_service]
139
+ expect(subject.notification_services.count).to eq(1)
140
+ expect(subject.notification_services).to match_array([notification_service])
141
141
  end
142
142
 
143
143
  it "replaces the current destinations with the new destination" do
144
- subject.destinations.count.should == 1
145
- subject.destinations.should =~ [destination]
144
+ expect(subject.destinations.count).to eq(1)
145
+ expect(subject.destinations).to match_array([destination])
146
146
  end
147
147
  end
148
148
 
@@ -2,17 +2,17 @@ require 'spec_helper'
2
2
 
3
3
  describe DispatchRider::Publisher::ConfigurationSupport do
4
4
 
5
- subject{ Object.new.extend(described_class) }
5
+ subject { Object.new.extend(described_class) }
6
6
 
7
7
  describe ".configuration" do
8
8
  example do
9
- subject.configuration.should be_a(DispatchRider::Publisher::Configuration)
9
+ expect(subject.configuration).to be_a(DispatchRider::Publisher::Configuration)
10
10
  end
11
11
  end
12
12
 
13
13
  describe ".config" do
14
14
  example do
15
- subject.method(:config).should == subject.method(:configuration)
15
+ expect(subject.method(:config)).to eq(subject.method(:configuration))
16
16
  end
17
17
  end
18
18
 
@@ -57,13 +57,13 @@ describe DispatchRider::Publisher::ConfigurationSupport do
57
57
  end
58
58
 
59
59
  it "sets the configuration's notification services correctly" do
60
- subject.configuration.notification_services.count.should == 1
61
- subject.configuration.notification_services.should =~ [notification_service]
60
+ expect(subject.configuration.notification_services.count).to eq(1)
61
+ expect(subject.configuration.notification_services).to match_array([notification_service])
62
62
  end
63
63
 
64
64
  it "sets the configuration's destinations correctly" do
65
- subject.configuration.destinations.count.should == 1
66
- subject.configuration.destinations.should =~ [destination]
65
+ expect(subject.configuration.destinations.count).to eq(1)
66
+ expect(subject.configuration.destinations).to match_array([destination])
67
67
  end
68
68
  end
69
69
 
@@ -75,13 +75,13 @@ describe DispatchRider::Publisher::ConfigurationSupport do
75
75
  end
76
76
 
77
77
  it "sets the configuration's notification services correctly" do
78
- subject.configuration.notification_services.count.should == 1
79
- subject.configuration.notification_services.should =~ [notification_service]
78
+ expect(subject.configuration.notification_services.count).to eq(1)
79
+ expect(subject.configuration.notification_services).to match_array([notification_service])
80
80
  end
81
81
 
82
82
  it "sets the configuration's destinations correctly" do
83
- subject.configuration.destinations.count.should == 1
84
- subject.configuration.destinations.should =~ [destination]
83
+ expect(subject.configuration.destinations.count).to eq(1)
84
+ expect(subject.configuration.destinations).to match_array([destination])
85
85
  end
86
86
  end
87
87
  end
@@ -6,15 +6,15 @@ describe DispatchRider::Publisher do
6
6
 
7
7
  describe "#initialize" do
8
8
  it "assigns the notification service registrar" do
9
- subject.notification_service_registrar.store.should be_empty
9
+ expect(subject.notification_service_registrar.store).to be_empty
10
10
  end
11
11
 
12
12
  it "assigns a publishing destination registrar" do
13
- subject.publishing_destination_registrar.store.should be_empty
13
+ expect(subject.publishing_destination_registrar.store).to be_empty
14
14
  end
15
15
 
16
16
  it "assigns a service channel mapper" do
17
- subject.service_channel_mapper.destination_registrar.store.should be_empty
17
+ expect(subject.service_channel_mapper.destination_registrar.store).to be_empty
18
18
  end
19
19
 
20
20
  # this case is broken because its playing chicken and the egg with the expectation
@@ -45,12 +45,12 @@ describe DispatchRider::Publisher do
45
45
  it "registers a notification service" do
46
46
  subject.register_notification_service(:aws_sns)
47
47
  result = subject.notification_service_registrar.fetch(:aws_sns)
48
- result.notifier.should respond_to(:topics)
49
- result.channel_registrar.store.should be_empty
48
+ expect(result.notifier).to respond_to(:topics)
49
+ expect(result.channel_registrar.store).to be_empty
50
50
  end
51
51
 
52
52
  it "returns the publisher" do
53
- subject.register_notification_service(:aws_sns).should eq(subject)
53
+ expect(subject.register_notification_service(:aws_sns)).to eq(subject)
54
54
  end
55
55
  end
56
56
 
@@ -63,11 +63,11 @@ describe DispatchRider::Publisher do
63
63
 
64
64
  it "registers a channel for the notification service" do
65
65
  subject.register_channel(:aws_sns, :foo, account: 123, region: "us-east-1", topic: "PlanOfAttack")
66
- notification_service.channel_registrar.fetch(:foo).should eq('arn:aws:sns:us-east-1:123:PlanOfAttack')
66
+ expect(notification_service.channel_registrar.fetch(:foo)).to eq('arn:aws:sns:us-east-1:123:PlanOfAttack')
67
67
  end
68
68
 
69
69
  it "returns the publisher" do
70
- subject.register_channel(:aws_sns, :foo).should eq(subject)
70
+ expect(subject.register_channel(:aws_sns, :foo)).to eq(subject)
71
71
  end
72
72
  end
73
73
 
@@ -79,12 +79,19 @@ describe DispatchRider::Publisher do
79
79
  it "registers the destination to be published to" do
80
80
  subject.register_destination(:sns_foo, :aws_sns, :foo, account: 123, region: "us-east-1", topic: "PlanOfAttack")
81
81
  result = subject.publishing_destination_registrar.fetch(:sns_foo)
82
- result.service.should eq(:aws_sns)
83
- result.channel.should eq(:foo)
82
+ expect(result.service).to eq(:aws_sns)
83
+ expect(result.channel).to eq(:foo)
84
84
  end
85
85
 
86
86
  it "returns the publisher" do
87
- subject.register_destination(:sns_foo, :aws_sns, :foo, account: 123, region: "us-east-1", topic: "PlanOfAttack").should eq(subject)
87
+ result = subject.register_destination(:sns_foo,
88
+ :aws_sns,
89
+ :foo,
90
+ account: 123,
91
+ region: "us-east-1",
92
+ topic: "PlanOfAttack"
93
+ )
94
+ expect(result).to eq(subject)
88
95
  end
89
96
  end
90
97
 
@@ -110,7 +117,7 @@ describe DispatchRider::Publisher do
110
117
  it "publishes the message to the notification service" do
111
118
  existing = Dir['tmp/test_queue/*']
112
119
  expect {
113
- subject.publish(:destinations => [:fs_foo], :message => {:subject => "bar_handler", :body => {"bar" => "baz"}})
120
+ subject.publish(:destinations => [:fs_foo], message: { subject: "bar_handler", body: { "bar" => "baz" } })
114
121
  }.to change { Dir['tmp/test_queue/*'].length }.by(1)
115
122
  new_job = Dir['tmp/test_queue/*'] - existing
116
123
  data = JSON.load(File.read(new_job.first))
@@ -142,9 +149,9 @@ describe DispatchRider::Publisher do
142
149
  after { DispatchRider.config.callbacks.for(:publish).delete publish_callback }
143
150
 
144
151
  example do
145
- publish_callback.should_receive(:call).with any_args, # first argument is the inner job
146
- destinations: [:fs_foo],
147
- message: expected_message
152
+ expect(publish_callback).to receive(:call).with any_args, # first argument is the inner job
153
+ destinations: [:fs_foo],
154
+ message: expected_message
148
155
 
149
156
  publisher.publish destinations: [:fs_foo],
150
157
  message: {
@@ -47,7 +47,7 @@ describe DispatchRider::QueueServices::AwsSqs do
47
47
 
48
48
  describe "#insert" do
49
49
  it "should insert an item into the queue" do
50
- obj = {'subject' => 'foo', 'body' => 'bar'}.to_json
50
+ obj = { 'subject' => 'foo', 'body' => 'bar' }.to_json
51
51
  expect(aws_sqs_queue.queue).to receive(:send_message).with(obj)
52
52
  aws_sqs_queue.insert(obj)
53
53
  end
@@ -66,26 +66,26 @@ describe DispatchRider::QueueServices::AwsSqs do
66
66
 
67
67
  let(:response_message) do
68
68
  {
69
- :message_id => 12345,
70
- :md5_of_body => "mmmddd555",
71
- :body => {:subject => "foo", :body => {:bar => "baz"}}.to_json,
72
- :receipt_handle => "HANDLE",
73
- :attributes => response_attributes,
69
+ message_id: 12345,
70
+ md5_of_body: "mmmddd555",
71
+ body: { subject: "foo", body: { bar: "baz" } }.to_json,
72
+ receipt_handle: "HANDLE",
73
+ attributes: response_attributes,
74
74
  }
75
75
  end
76
76
 
77
77
  before :each do
78
78
  response = AWS::SQS::Client.new.stub_for(:receive_message)
79
79
  response.data[:messages] = [response_message]
80
- AWS::SQS::Client::V20121105.any_instance.stub(:receive_message).and_return(response)
81
- AWS::SQS::Queue.any_instance.stub(:verify_receive_message_checksum).and_return([])
80
+ allow_any_instance_of(AWS::SQS::Client::V20121105).to receive(:receive_message).and_return(response)
81
+ allow_any_instance_of(AWS::SQS::Queue).to receive(:verify_receive_message_checksum).and_return([])
82
82
  end
83
83
 
84
84
  context "when the block runs faster than the timeout" do
85
85
  it "should yield the first item in the queue" do
86
86
  aws_sqs_queue.pop do |message|
87
87
  expect(message.subject).to eq('foo')
88
- expect(message.body).to eq({'bar' => 'baz'})
88
+ expect(message.body).to eq('bar' => 'baz')
89
89
  end
90
90
  end
91
91
  end
@@ -106,7 +106,7 @@ describe DispatchRider::QueueServices::AwsSqs do
106
106
 
107
107
  context "when the sqs queue is empty" do
108
108
  before :each do
109
- aws_sqs_queue.queue.stub(:receive_message).and_return(nil)
109
+ allow(aws_sqs_queue.queue).to receive(:receive_message).and_return(nil)
110
110
  end
111
111
 
112
112
  it "should not yield" do
@@ -119,74 +119,82 @@ describe DispatchRider::QueueServices::AwsSqs do
119
119
  end
120
120
 
121
121
  describe "received message methods" do
122
- let(:response_attributes) {{
122
+ let(:response_attributes) do
123
+ {
123
124
  "SenderId" => "123456789012",
124
125
  "SentTimestamp" => Time.now.to_i.to_s,
125
126
  "ApproximateReceivedCount" => "12",
126
127
  "ApproximateFirstReceiveTimestamp" => (Time.now + 12).to_i.to_s,
127
- }}
128
+ }
129
+ end
128
130
 
129
- let(:response_message) { {
130
- :message_id => 12345,
131
- :md5_of_body => "mmmddd555",
132
- :body => {:subject => "foo", :body => {:bar => "baz"}}.to_json,
133
- :receipt_handle => "HANDLE",
134
- :attributes => response_attributes,
135
- } }
131
+ let(:response_message) do
132
+ {
133
+ message_id: 12345,
134
+ md5_of_body: "mmmddd555",
135
+ body: { subject: "foo", body: { bar: "baz" } }.to_json,
136
+ receipt_handle: "HANDLE",
137
+ attributes: response_attributes,
138
+ }
139
+ end
136
140
 
137
- before :each do
138
- response = AWS::SQS::Client.new.stub_for(:receive_message)
139
- response.data[:messages] = [response_message]
140
- AWS::SQS::Client::V20121105.any_instance.stub(:receive_message).and_return(response)
141
- AWS::SQS::Queue.any_instance.stub(:verify_receive_message_checksum).and_return([])
142
- end
141
+ before :each do
142
+ response = AWS::SQS::Client.new.stub_for(:receive_message)
143
+ response.data[:messages] = [response_message]
144
+ allow_any_instance_of(AWS::SQS::Client::V20121105).to receive(:receive_message).and_return(response)
145
+ allow_any_instance_of(AWS::SQS::Queue).to receive(:verify_receive_message_checksum).and_return([])
146
+ end
143
147
 
144
148
  it "should set the visibility timeout when extend is called" do
145
149
  expect_any_instance_of(AWS::SQS::ReceivedMessage).to receive(:visibility_timeout=).with(10)
146
150
  expect_any_instance_of(AWS::SQS::ReceivedMessage).to receive(:visibility_timeout=).with(0)
147
151
  aws_sqs_queue.pop do |message|
148
152
  message.extend_timeout(10)
149
- message.total_timeout.should eq(10)
153
+ expect(message.total_timeout).to eq(10)
150
154
  message.return_to_queue
151
- message.total_timeout.should eq(10)
155
+ expect(message.total_timeout).to eq(10)
152
156
  end
153
157
  end
154
158
  end
155
159
 
156
160
  describe "#construct_message_from" do
157
161
  context "when the item is directly published to AWS::SQS" do
158
- let(:sqs_message){ OpenStruct.new(:body => {'subject' => 'foo', 'body' => 'bar'}.to_json) }
162
+ let(:sqs_message) { OpenStruct.new(body: { 'subject' => 'foo', 'body' => 'bar' }.to_json) }
159
163
 
160
164
  it "should return a message" do
161
165
  result = aws_sqs_queue.construct_message_from(sqs_message)
162
- result.subject.should eq('foo')
163
- result.body.should eq('bar')
166
+ expect(result.subject).to eq('foo')
167
+ expect(result.body).to eq('bar')
164
168
  end
165
169
  end
166
170
 
167
171
  context "when the item is published through AWS::SNS" do
168
- let(:sqs_message){ OpenStruct.new(:body => {"Type" => "Notification", "Message" => {'subject' => 'foo', 'body' => 'bar'}.to_json}.to_json) }
172
+ let(:sqs_message) do
173
+ message = { 'subject' => 'foo', 'body' => 'bar' }
174
+ body = { "Type" => "Notification", "Message" => message.to_json }.to_json
175
+ OpenStruct.new(body: body)
176
+ end
169
177
 
170
178
  it "should return a message" do
171
179
  result = aws_sqs_queue.construct_message_from(sqs_message)
172
- result.subject.should eq('foo')
173
- result.body.should eq('bar')
180
+ expect(result.subject).to eq('foo')
181
+ expect(result.body).to eq('bar')
174
182
  end
175
183
  end
176
184
  end
177
185
 
178
186
  describe "#delete" do
179
- let(:item_in_queue){ Object.new }
187
+ let(:item_in_queue) { Object.new }
180
188
 
181
189
  it "should delete the first message from the queue" do
182
- item_in_queue.should_receive(:delete)
190
+ expect(item_in_queue).to receive(:delete)
183
191
  aws_sqs_queue.delete(item_in_queue)
184
192
  end
185
193
  end
186
194
 
187
195
  describe "#size" do
188
196
  it "should return the size of the aws queue" do
189
- aws_sqs_queue.queue.should_receive(:approximate_number_of_messages)
197
+ expect(aws_sqs_queue.queue).to receive(:approximate_number_of_messages)
190
198
  aws_sqs_queue.size
191
199
  end
192
200
  end