diff --git a/src/main/clojure/cemerick/bandalore.clj b/src/main/clojure/cemerick/bandalore.clj index 23272db..d97e9e4 100644 --- a/src/main/clojure/cemerick/bandalore.clj +++ b/src/main/clojure/cemerick/bandalore.clj @@ -50,9 +50,10 @@ (.deleteQueue client (DeleteQueueRequest. queue-url))) (defn list-queues - "Returns a seq of all queues' URL strings." - [^AmazonSQSClient client] - (->> (ListQueuesRequest.) + "Returns a seq of all queues' URL strings. Takes an optional string prefix + argument to only list queues with names that start with the prefix." + [^AmazonSQSClient client & {:keys [prefix]}] + (->> (ListQueuesRequest. prefix) (.listQueues client) .getQueueUrls seq)) diff --git a/src/test/clojure/cemerick/bandalore_test.clj b/src/test/clojure/cemerick/bandalore_test.clj index 2d36309..b69338f 100644 --- a/src/test/clojure/cemerick/bandalore_test.clj +++ b/src/test/clojure/cemerick/bandalore_test.clj @@ -59,7 +59,9 @@ ; sending a msg seems to "force" the queue's existence in listings (send client *test-queue-url* msg) (wait-for-condition #((set (list-queues client)) *test-queue-url*) - "Created queue not visible in result of list-queues"))) + "Created queue not visible in result of list-queues") + (wait-for-condition #((set (list-queues client :prefix test-queue-name-prefix)) *test-queue-url*) + "Created queue not visible in result of list-queues with prefix"))) (defsqstest test-queue-attrs (let [{:strs [MaximumMessageSize] :as base-attrs} (queue-attrs client *test-queue-url*)