root/trunk/test/client/test_bdrb_job_queue.rb

Revision 328, 2.0 kB (checked in by gethema..@gmail.com, 3 months ago)

update trunk for 1.1 release

Line 
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(/finished_\d+_cats/i)
45   end
46 end
Note: See TracBrowser for help on using the browser.