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