test/test_timer.rb in promise_pool-0.1.0 vs test/test_timer.rb in promise_pool-0.9.0

- old
+ new

@@ -1,5 +1,65 @@ require 'promise_pool/test' describe PromisePool::Timer do + before do + @timer = Timer.new(0.01) + end + + def expect_raise + expect.raise(@timer.error.class) do + yield + end.should.eq @timer.error + end + + would 'raise timeout if task has not started' do + pool = ThreadPool.new(0) + expect_raise do + Promise.new(@timer).defer(pool) do + never called + end.yield + end + end + + describe 'with flag' do + before do + @flag = false + end + + after do + @flag.should.eq true + end + + would 'raise timeout if the task started' do + pool = ThreadPool.new(1) + expect_raise do + Promise.new(@timer).defer(pool) do + @flag = true + sleep + never called + end.yield + end + pool.shutdown + end + + would 'raise timeout in the thread' do + expect_raise do + Promise.new(@timer).defer do + @flag = true + sleep + never called + end.yield + end + end + + would 'raise timeout even with inline call' do + expect_raise do + Promise.new(@timer).call do + @flag = true + sleep + never called + end.yield + end + end + end end