1require 'rubygems/test_case' 2require 'rubygems/commands/lock_command' 3 4class TestGemCommandsLockCommand < Gem::TestCase 5 6 def setup 7 super 8 9 @a1 = quick_gem 'a', '1' 10 @b1 = quick_gem 'b', '1' do |s| 11 s.add_runtime_dependency 'a' 12 end 13 14 @d1 = quick_gem 'd', '1' do |s| 15 s.add_runtime_dependency 'z' 16 end 17 18 @cmd = Gem::Commands::LockCommand.new 19 end 20 21 def test_execute 22 @cmd.handle_options %w[b-1] 23 24 use_ui @ui do 25 @cmd.execute 26 end 27 28 expected = <<-EXPECTED 29require 'rubygems' 30gem 'b', '= 1' 31gem 'a', '= 1' 32 EXPECTED 33 34 assert_equal expected, @ui.output 35 assert_equal '', @ui.error 36 end 37 38 def test_execute_missing_dependency 39 @cmd.handle_options %w[d-1] 40 41 use_ui @ui do 42 @cmd.execute 43 end 44 45 expected = <<-EXPECTED 46require 'rubygems' 47gem 'd', '= 1' 48# Unable to satisfy 'z (>= 0)' from currently installed gems 49 EXPECTED 50 51 assert_equal expected, @ui.output 52 assert_equal '', @ui.error 53 end 54 55 def test_execute_strict 56 @cmd.handle_options %w[c-1 --strict] 57 58 e = assert_raises Gem::Exception do 59 use_ui @ui do 60 @cmd.execute 61 end 62 end 63 64 assert_equal 'Could not find gem c-1, try using the full name', e.message 65 end 66 67end 68 69