mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
39 lines
766 B
Ruby
39 lines
766 B
Ruby
require 'testing_env'
|
|
require 'compilers'
|
|
|
|
class CompilerQueueTests < Homebrew::TestCase
|
|
FakeCompiler = Struct.new(:name, :priority)
|
|
|
|
def setup
|
|
@q = CompilerQueue.new
|
|
end
|
|
|
|
def test_shovel_returns_self
|
|
assert_same @q, @q << Object.new
|
|
end
|
|
|
|
def test_empty
|
|
assert_empty @q
|
|
end
|
|
|
|
def test_queues_items
|
|
a = FakeCompiler.new(:foo, 0)
|
|
b = FakeCompiler.new(:bar, 0)
|
|
@q << a << b
|
|
assert_equal a, @q.pop
|
|
assert_equal b, @q.pop
|
|
assert_nil @q.pop
|
|
end
|
|
|
|
def test_pops_items_by_priority
|
|
a = FakeCompiler.new(:foo, 0)
|
|
b = FakeCompiler.new(:bar, 0.5)
|
|
c = FakeCompiler.new(:baz, 1)
|
|
@q << a << b << c
|
|
assert_equal c, @q.pop
|
|
assert_equal b, @q.pop
|
|
assert_equal a, @q.pop
|
|
assert_nil @q.pop
|
|
end
|
|
end
|