diff options
Diffstat (limited to 'test/rubygems/test_gem_commands_which_command.rb')
-rw-r--r-- | test/rubygems/test_gem_commands_which_command.rb | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_commands_which_command.rb b/test/rubygems/test_gem_commands_which_command.rb new file mode 100644 index 0000000000..137f598378 --- /dev/null +++ b/test/rubygems/test_gem_commands_which_command.rb @@ -0,0 +1,66 @@ +require_relative 'gemutilities' +require 'rubygems/commands/which_command' + +class TestGemCommandsWhichCommand < RubyGemTestCase + + def setup + super + @cmd = Gem::Commands::WhichCommand.new + end + + def test_execute + util_foo_bar + + @cmd.handle_options %w[foo_bar] + + use_ui @ui do + @cmd.execute + end + + assert_equal "#{@foo_bar.full_gem_path}/lib/foo_bar.rb\n", @ui.output + assert_equal '', @ui.error + end + + def test_execute_one_missing + util_foo_bar + + @cmd.handle_options %w[foo_bar missing] + + use_ui @ui do + @cmd.execute + end + + assert_equal "#{@foo_bar.full_gem_path}/lib/foo_bar.rb\n", @ui.output + assert_match %r%Can't find ruby library file or shared library missing\n%, + @ui.error + end + + def test_execute_missing + @cmd.handle_options %w[missing] + + use_ui @ui do + assert_raises MockGemUi::TermError do + @cmd.execute + end + end + + assert_equal '', @ui.output + assert_match %r%Can't find ruby library file or shared library missing\n%, + @ui.error + end + + def util_foo_bar + files = %w[lib/foo_bar.rb Rakefile] + @foo_bar = quick_gem 'foo_bar' do |gem| + gem.files = files + end + + files.each do |file| + filename = @foo_bar.full_gem_path + "/#{file}" + FileUtils.mkdir_p File.dirname(filename) + FileUtils.touch filename + end + end + +end + |