39 lines
		
	
	
		
			768 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			768 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
 | 
