lib/fog/rackspace/requests/queues/delete_message.rb in fog-maestrodev-1.19.0.20140212012611 vs lib/fog/rackspace/requests/queues/delete_message.rb in fog-maestrodev-1.20.0.20140305101305
- old
+ new
@@ -1,8 +1,9 @@
module Fog
module Rackspace
class Queues
+
class Real
# This operation immediately deletes the specified message.
# @note If you do not specify claim_id, but the message is claimed, the operation fails. You can only delete claimed messages by providing an appropriate claim_id.
#
@@ -24,9 +25,42 @@
:method => 'DELETE',
:path => "queues/#{queue_name}/messages/#{message_id}",
:query => query
)
end
+
end
+
+ class Mock
+ def delete_message(queue_name, message_id, options = {})
+ queue = mock_queue!(queue_name)
+
+ claim_id = options[:claim_id]
+
+ message = queue.messages.detect { |m| m.id == message_id }
+
+ perform_delete = true
+ if message && message.claimed?
+ unless message.claim.id == claim_id
+ # Currently returns a 204 without deleting!
+ perform_delete = false
+ end
+ else
+ if claim_id
+ # Currently returns a 204 without deleting!
+ perform_delete = false
+ end
+ end
+
+ if perform_delete
+ queue.messages.reject! { |m| m.id == message_id }
+ end
+
+ response = Excon::Response.new
+ response.status = 204
+ response
+ end
+ end
+
end
end
end