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
|
require File.dirname(__FILE__) + '/helper'
class TestDriver < Minitest::Test
def setup
end
def test_push_pop_wait
eq = God::DriverEventQueue.new
cond = eq.instance_variable_get(:@resource)
cond.expects(:wait).times(1)
eq.push(God::TimedEvent.new(0))
eq.push(God::TimedEvent.new(0.1))
t = Thread.new do
# This pop will see an event immediately available, so no wait.
assert_equal TimedEvent, eq.pop.class
# This pop will happen before the next event is due, so wait.
assert_equal TimedEvent, eq.pop.class
end
t.join
end
end
|