1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
RSpec.shared_examples :global_thread_pool do
context '#post' do
it 'raises an exception if no block is given' do
expect {
subject.post
}.to raise_error(ArgumentError)
end
it 'returns true when the block is added to the queue' do
expect(subject.post{ nil }).to be_truthy
end
it 'calls the block with the given arguments' do
latch = Concurrent::CountDownLatch.new(1)
expected = nil
subject.post(1, 2, 3) do |a, b, c|
expected = [a, b, c]
latch.count_down
end
latch.wait(0.2)
expect(expected).to eq [1, 2, 3]
end
it 'aliases #<<' do
latch = Concurrent::CountDownLatch.new(1)
subject << proc { latch.count_down }
expect(latch.wait(0.2)).to eq true
end
end
end
|