lib/fog/rackspace/requests/queues/get_queue_stats.rb in fog-maestrodev-1.19.0.20140212012611 vs lib/fog/rackspace/requests/queues/get_queue_stats.rb in fog-maestrodev-1.20.0.20140305101305

- old
+ new

@@ -1,8 +1,9 @@ module Fog module Rackspace class Queues + class Real # This operation returns queue statistics, including how many messages are in the queue, categorized by status. # # @param [String] queue_name Specifies the name of the queue. @@ -17,9 +18,44 @@ :expects => 200, :method => 'GET', :path => "queues/#{queue_name}/stats" ) end + end + + class Mock + def get_queue_stats(queue_name) + queue = mock_queue!(queue_name) + + payload = { + "claimed" => queue.claimed, + "total" => queue.total, + "free" => queue.free + } + + report_message(payload, "oldest", queue.oldest) + report_message(payload, "newest", queue.newest) + + response = Excon::Response.new + response.status = 200 + response.body = { "messages" => payload } + response + end + + private + + def report_message(payload, description, element) + return unless element + + ctime = Time.at(element.created).utc + payload[description] = { + "age" => element.age, + "href" => element.href, + "created" => ctime.strftime("%Y-%m-%dT%I:%M:%SZ") + } + end + end + end end end