1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activejob/test/cases/async_job_test.rb
2015-08-25 14:22:11 -04:00

42 lines
1.3 KiB
Ruby

require 'helper'
require 'jobs/hello_job'
require 'jobs/queue_as_job'
class AsyncJobTest < ActiveSupport::TestCase
def using_async_adapter?
ActiveJob::Base.queue_adapter.is_a? ActiveJob::QueueAdapters::AsyncAdapter
end
setup do
ActiveJob::AsyncJob.perform_asynchronously!
end
teardown do
ActiveJob::AsyncJob::QUEUES.clear
ActiveJob::AsyncJob.perform_immediately!
end
test "#create_thread_pool returns a thread_pool" do
thread_pool = ActiveJob::AsyncJob.create_thread_pool
assert thread_pool.is_a? Concurrent::ExecutorService
assert_not thread_pool.is_a? Concurrent::ImmediateExecutor
end
test "#create_thread_pool returns an ImmediateExecutor after #perform_immediately! is called" do
ActiveJob::AsyncJob.perform_immediately!
thread_pool = ActiveJob::AsyncJob.create_thread_pool
assert thread_pool.is_a? Concurrent::ImmediateExecutor
end
test "enqueuing without specifying a queue uses the default queue" do
skip unless using_async_adapter?
HelloJob.perform_later
assert ActiveJob::AsyncJob::QUEUES.key? 'default'
end
test "enqueuing to a queue that does not exist creates the queue" do
skip unless using_async_adapter?
QueueAsJob.perform_later
assert ActiveJob::AsyncJob::QUEUES.key? QueueAsJob::MY_QUEUE.to_s
end
end