| 1 |
require File.join(File.dirname(__FILE__) + "/../bdrb_test_helper") |
|---|
| 2 |
require File.join(File.dirname(__FILE__) + "/../bdrb_client_test_helper") |
|---|
| 3 |
require "bdrb_job_queue" |
|---|
| 4 |
|
|---|
| 5 |
context "For BackgrounDRb job Queues" do |
|---|
| 6 |
setup do |
|---|
| 7 |
db_config_file = YAML.load(ERB.new(IO.read("#{RAILS_HOME}/config/database.yml")).result) |
|---|
| 8 |
ActiveRecord::Base.establish_connection(db_config_file["test"]) |
|---|
| 9 |
BdrbJobQueue.destroy_all |
|---|
| 10 |
end |
|---|
| 11 |
|
|---|
| 12 |
specify "should insert job with proper params" do |
|---|
| 13 |
BdrbJobQueue.insert_job(:worker_name => "hello_world",:worker_method => "foovar",:job_key => "cats",:args => "hello_world",:scheduled_at => Time.now.utc) |
|---|
| 14 |
next_job = BdrbJobQueue.find_next("hello_world") |
|---|
| 15 |
next_job.taken.should == 1 |
|---|
| 16 |
next_job.started_at.should.not.be nil |
|---|
| 17 |
next_job.job_key.should == "cats" |
|---|
| 18 |
next_job.worker_name.should == "hello_world" |
|---|
| 19 |
next_job.worker_method.should == "foovar" |
|---|
| 20 |
end |
|---|
| 21 |
|
|---|
| 22 |
specify "release_job should worker properly" do |
|---|
| 23 |
BdrbJobQueue.insert_job(:worker_name => "hello_world",:worker_method => "foovar",:job_key => "cats",:args => "hello_world",:scheduled_at => Time.now.utc) |
|---|
| 24 |
next_job = BdrbJobQueue.find_next("hello_world") |
|---|
| 25 |
next_job.release_job |
|---|
| 26 |
t = BdrbJobQueue.find_by_job_key("cats") |
|---|
| 27 |
t.taken.should == 0 |
|---|
| 28 |
t.started_at.should == nil |
|---|
| 29 |
end |
|---|
| 30 |
|
|---|
| 31 |
specify "remove job should work properly" do |
|---|
| 32 |
BdrbJobQueue.insert_job(:worker_name => "hello_world",:worker_method => "foovar",:job_key => "cats",:args => "hello_world",:scheduled_at => Time.now.utc) |
|---|
| 33 |
BdrbJobQueue.remove_job(:worker_name => "hello_world",:worker_method => "foovar",:job_key => "cats") |
|---|
| 34 |
t = BdrbJobQueue.find_by_job_key("cats") |
|---|
| 35 |
t.should == nil |
|---|
| 36 |
end |
|---|
| 37 |
|
|---|
| 38 |
specify "finish should work properly" do |
|---|
| 39 |
BdrbJobQueue.insert_job(:worker_name => "hello_world",:worker_method => "foovar",:job_key => "cats",:args => "hello_world",:scheduled_at => Time.now.utc) |
|---|
| 40 |
t = BdrbJobQueue.find_next("hello_world") |
|---|
| 41 |
t.finish! |
|---|
| 42 |
t.finished.should == 1 |
|---|
| 43 |
t.finished_at.should.not == nil |
|---|
| 44 |
t.job_key.should.match() |
|---|
| 45 |
end |
|---|
| 46 |
end |
|---|