From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 16 Mar 2020 18:49:26 +0900 Subject: Fresh start --- .../rubygems/test_gem_commands_which_command.rb | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 jni/ruby/test/rubygems/test_gem_commands_which_command.rb (limited to 'jni/ruby/test/rubygems/test_gem_commands_which_command.rb') diff --git a/jni/ruby/test/rubygems/test_gem_commands_which_command.rb b/jni/ruby/test/rubygems/test_gem_commands_which_command.rb new file mode 100644 index 0000000..7ce26c8 --- /dev/null +++ b/jni/ruby/test/rubygems/test_gem_commands_which_command.rb @@ -0,0 +1,85 @@ +require 'rubygems/test_case' +require 'rubygems/commands/which_command' + +class TestGemCommandsWhichCommand < Gem::TestCase + + def setup + super + Gem::Specification.reset + @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_directory + @cmd.handle_options %w[directory] + + use_ui @ui do + assert_raises Gem::MockGemUi::TermError do + @cmd.execute + end + end + + assert_equal '', @ui.output + assert_match %r%Can.t find ruby library file or shared library directory\n%, + @ui.error + end + + def test_execute_one_missing + # TODO: this test fails in isolation + + util_foo_bar + + @cmd.handle_options %w[foo_bar missinglib] + + use_ui @ui do + assert_raises Gem::MockGemUi::TermError do + @cmd.execute + end + 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 missinglib\n%, + @ui.error + end + + def test_execute_missing + @cmd.handle_options %w[missinglib] + + use_ui @ui do + assert_raises Gem::MockGemUi::TermError do + @cmd.execute + end + end + + assert_equal '', @ui.output + assert_match %r%Can.t find ruby library file or shared library missinglib\n%, + @ui.error + end + + def util_foo_bar + files = %w[lib/foo_bar.rb lib/directory/baz.rb Rakefile] + @foo_bar = util_spec 'foo_bar' do |gem| + gem.files = files + end + + files.each do |file| + filename = File.join(@foo_bar.full_gem_path, file) + FileUtils.mkdir_p File.dirname filename + FileUtils.touch filename + end + end + +end + -- cgit v1.2.3