spec/support/test_queue.rb in taskinator-0.4.7 vs spec/support/test_queue.rb in taskinator-0.5.0
- old
+ new
@@ -1,49 +1,53 @@
module Taskinator
module Queues
def self.create_test_queue_adapter(config={})
- TestQueueAdapter.new
+ TestQueueAdapter.new(config)
end
def self.create_test_queue_worker_adapter(config={})
- QueueWorkerAdapter.new
+ TestQueueWorkerAdapter.new(config)
end
+ #
+ # this is a no-op adapter, it tracks enqueued processes and tasks
+ #
class TestQueueAdapter
- attr_reader :creates
- attr_reader :tasks
-
- def initialize
+ def initialize(config={})
clear
end
- def clear
- @creates = []
- @tasks = []
- @jobs = []
- end
-
def enqueue_create_process(definition, uuid, args)
- @creates << [definition, uuid, args]
+ @processes << [definition, uuid, args]
end
def enqueue_task(task)
@tasks << task
end
+ # helpers
+
+ attr_reader :processes
+ attr_reader :tasks
+
+ def clear
+ @processes = []
+ @tasks = []
+ end
+
def empty?
- @creates.empty? && @tasks.empty? && @jobs.empty?
+ @processes.empty? && @tasks.empty?
end
end
#
# this is a "synchronous" implementation for use in testing
#
- class QueueWorkerAdapter < TestQueueAdapter
+ class TestQueueWorkerAdapter < TestQueueAdapter
def enqueue_create_process(definition, uuid, args)
super
invoke do
Taskinator::CreateProcessWorker.new(definition.name, uuid, args).perform
@@ -54,9 +58,11 @@
super
invoke do
Taskinator::TaskWorker.new(task.uuid).perform
end
end
+
+ private
def invoke(&block)
block.call
end