aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/test_compiler_queue.rb
blob: 16d3d3479a1e377b69d17e0afe211426bf25a23f (plain)
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
38
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