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