summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_commands_which_command.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_commands_which_command.rb')
-rw-r--r--test/rubygems/test_gem_commands_which_command.rb66
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
+