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