1require 'rubygems/test_case' 2 3class TestKernel < Gem::TestCase 4 5 def setup 6 super 7 8 @old_path = $:.dup 9 10 util_make_gems 11 end 12 13 def teardown 14 super 15 16 $:.replace @old_path 17 end 18 19 def test_gem 20 assert gem('a', '= 1'), "Should load" 21 assert $:.any? { |p| %r{a-1/lib} =~ p } 22 end 23 24 def test_gem_redundant 25 assert gem('a', '= 1'), "Should load" 26 refute gem('a', '= 1'), "Should not load" 27 assert_equal 1, $:.select { |p| %r{a-1/lib} =~ p }.size 28 end 29 30 def test_gem_overlapping 31 assert gem('a', '= 1'), "Should load" 32 refute gem('a', '>= 1'), "Should not load" 33 assert_equal 1, $:.select { |p| %r{a-1/lib} =~ p }.size 34 end 35 36 def test_gem_conflicting 37 assert gem('a', '= 1'), "Should load" 38 39 ex = assert_raises Gem::LoadError do 40 gem 'a', '= 2' 41 end 42 43 assert_equal "can't activate a-2, already activated a-1", ex.message 44 assert_match(/activated a-1/, ex.message) 45 assert_equal 'a', ex.name 46 47 assert $:.any? { |p| %r{a-1/lib} =~ p } 48 refute $:.any? { |p| %r{a-2/lib} =~ p } 49 end 50 51 def test_gem_not_adding_bin 52 assert gem('a', '= 1'), "Should load" 53 refute $:.any? { |p| %r{a-1/bin} =~ p } 54 end 55end 56