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 33 34 35 36 37
|
describe :queue_deq, :shared => true do
it "removes an item from the Queue" do
q = Queue.new
q << Object.new
q.size.should == 1
q.send(@method)
q.size.should == 0
end
it "returns items in the order they were added" do
q = Queue.new
q << 1
q << 2
q.send(@method).should == 1
q.send(@method).should == 2
end
it "blocks the thread until there are items in the queue" do
q = Queue.new
v = 0
th = Thread.new do
q.send(@method)
v = 1
end
v.should == 0
q << Object.new
th.join
v.should == 1
end
it "raises a ThreadError if Queue is empty" do
q = Queue.new
lambda { q.send(@method,true) }.should raise_error(ThreadError)
end
end
|