From eb4245dd17ba66c0551f3d4ed841b471bcf01b91 Mon Sep 17 00:00:00 2001 From: Abdelkader Boudih Date: Tue, 26 Aug 2014 20:08:49 +0000 Subject: [ActiveJob] TestCase --- .../lib/active_job/queue_adapters/test_adapter.rb | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 activejob/lib/active_job/queue_adapters/test_adapter.rb (limited to 'activejob/lib/active_job/queue_adapters/test_adapter.rb') diff --git a/activejob/lib/active_job/queue_adapters/test_adapter.rb b/activejob/lib/active_job/queue_adapters/test_adapter.rb new file mode 100644 index 0000000000..f7c4d19638 --- /dev/null +++ b/activejob/lib/active_job/queue_adapters/test_adapter.rb @@ -0,0 +1,77 @@ +module ActiveJob + module QueueAdapters + class TestAdapter + mattr_accessor(:perform_enqueued_jobs) { false } + mattr_accessor(:perform_enqueued_at_jobs) { false } + + class << self + # Provides a store of all the enqueued jobs with the TestAdapter so you can check them. + def enqueued_jobs + @@enqueued_jobs ||= [] + end + + # Allows you to over write the default enqueued jobs store from an array to some + # other object. If you just want to clear the store, + # call ActiveJob::QueueAdapters::TestAdapter.enqueued_jobs.clear. + # + # If you place another object here, please make sure it responds to: + # + # * << (message) + # * clear + # * length + # * size + # * and other common Array methods + def enqueued_jobs=(val) + @@enqueued_jobs = val + end + + # Provides a store of all the performed jobs with the TestAdapter so you can check them. + def performed_jobs + @@performed_jobs ||= [] + end + + # Allows you to over write the default performed jobs store from an array to some + # other object. If you just want to clear the store, + # call ActiveJob::QueueAdapters::TestAdapter.performed_jobs.clear. + # + # If you place another object here, please make sure it responds to: + # + # * << (message) + # * clear + # * length + # * size + # * and other common Array methods + def performed_jobs=(val) + @@performed_jobs = val + end + + def enqueue(job, *args) + if perform_enqueued_jobs? + performed_jobs << {job: job, args: args, queue: job.queue_name} + job.new.execute(*args) + else + enqueued_jobs << {job: job, args: args, queue: job.queue_name} + end + end + + def enqueue_at(job, timestamp, *args) + if perform_enqueued_at_jobs? + performed_jobs << {job: job, args: args, queue: job.queue_name, run_at: timestamp} + job.new.execute(*args) + else + enqueued_jobs << {job: job, args: args, queue: job.queue_name, run_at: timestamp} + end + end + + private + def perform_enqueued_jobs? + perform_enqueued_jobs + end + + def perform_enqueued_at_jobs? + perform_enqueued_at_jobs + end + end + end + end +end -- cgit v1.2.3