test/clockwork_test.rb in clockwork-0.7.0 vs test/clockwork_test.rb in clockwork-0.7.1
- old
+ new
@@ -1,10 +1,16 @@
require File.expand_path('../../lib/clockwork', __FILE__)
require 'contest'
-require 'timeout'
+require 'mocha/setup'
class ClockworkTest < Test::Unit::TestCase
+ setup do
+ Clockwork.configure do |config|
+ config[:sleep_timeout] = 0
+ end
+ end
+
teardown do
Clockwork.clear!
end
def set_string_io_logger
@@ -13,63 +19,76 @@
config[:logger] = Logger.new(string_io)
end
string_io
end
- def run_in_thread
- Thread.new do
- Clockwork.run
- end
- end
-
test 'should run events with configured logger' do
run = false
string_io = set_string_io_logger
Clockwork.handler do |job|
run = job == 'myjob'
end
Clockwork.every(1.minute, 'myjob')
+ Clockwork.manager.expects(:loop).yields.then.returns
+ Clockwork.run
+ assert run
+ assert string_io.string.include?('Triggering')
+ end
- runner = run_in_thread
+ test 'should log event correctly' do
+ run = false
+ string_io = set_string_io_logger
+ Clockwork.handler do |job|
+ run = job == 'an event'
+ end
+ Clockwork.every(1.minute, 'an event')
+ Clockwork.manager.expects(:loop).yields.then.returns
+ Clockwork.run
+ assert run
+ assert string_io.string.include?("Triggering 'an event'")
+ end
- timeout(5) do
- sleep 1 until run
+ test 'should pass event without modification to handler' do
+ event_object = Object.new
+ run = false
+ string_io = set_string_io_logger
+ Clockwork.handler do |job|
+ run = job == event_object
end
- runner.kill
+ Clockwork.every(1.minute, event_object)
+ Clockwork.manager.expects(:loop).yields.then.returns
+ Clockwork.run
assert run
- assert string_io.string.include?('Triggering')
end
test 'should not run anything after reset' do
Clockwork.every(1.minute, 'myjob') { }
Clockwork.clear!
-
+ Clockwork.configure do |config|
+ config[:sleep_timeout] = 0
+ end
string_io = set_string_io_logger
- runner = run_in_thread
- sleep 1
- runner.kill
+ Clockwork.manager.expects(:loop).yields.then.returns
+ Clockwork.run
assert string_io.string.include?('0 events')
end
test 'should pass all arguments to every' do
- Clockwork.every(1.second, 'myjob', if: lambda { false }) { }
+ Clockwork.every(1.second, 'myjob', if: lambda { |_| false }) { }
string_io = set_string_io_logger
- runner = run_in_thread
- sleep 1
- runner.kill
+ Clockwork.manager.expects(:loop).yields.then.returns
+ Clockwork.run
assert string_io.string.include?('1 events')
assert !string_io.string.include?('Triggering')
end
test 'support module re-open style' do
$called = false
module ::Clockwork
every(1.second, 'myjob') { $called = true }
end
set_string_io_logger
- runner = run_in_thread
- sleep 1
- runner.kill
-
+ Clockwork.manager.expects(:loop).yields.then.returns
+ Clockwork.run
assert $called
end
end