diff options
Diffstat (limited to 'test/rubygems/test_gem_commands_dependency_command.rb')
-rw-r--r-- | test/rubygems/test_gem_commands_dependency_command.rb | 79 |
1 files changed, 73 insertions, 6 deletions
diff --git a/test/rubygems/test_gem_commands_dependency_command.rb b/test/rubygems/test_gem_commands_dependency_command.rb index 0f0d95695d..93e772c691 100644 --- a/test/rubygems/test_gem_commands_dependency_command.rb +++ b/test/rubygems/test_gem_commands_dependency_command.rb @@ -9,6 +9,8 @@ class TestGemCommandsDependencyCommand < RubyGemTestCase @cmd = Gem::Commands::DependencyCommand.new @cmd.options[:domain] = :local + + util_setup_fake_fetcher end def test_execute @@ -16,13 +18,15 @@ class TestGemCommandsDependencyCommand < RubyGemTestCase gem.add_dependency 'bar', '> 1' end + Gem.source_index = nil + @cmd.options[:args] = %w[foo] use_ui @ui do @cmd.execute end - assert_equal "Gem foo-2\n bar (> 1)\n\n", @ui.output + assert_equal "Gem foo-2\n bar (> 1, runtime)\n\n", @ui.output assert_equal '', @ui.error end @@ -35,7 +39,7 @@ class TestGemCommandsDependencyCommand < RubyGemTestCase end end - assert_equal "No match found for foo (>= 0)\n", @ui.output + assert_equal "No gems found matching foo (>= 0)\n", @ui.output assert_equal '', @ui.error end @@ -64,6 +68,8 @@ class TestGemCommandsDependencyCommand < RubyGemTestCase gem.add_dependency 'foo' end + Gem.source_index = nil + @cmd.options[:args] = %w[foo] @cmd.options[:reverse_dependencies] = true @@ -73,9 +79,9 @@ class TestGemCommandsDependencyCommand < RubyGemTestCase expected = <<-EOF Gem foo-2 - bar (> 1) + bar (> 1, runtime) Used by - baz-2 (foo (>= 0)) + baz-2 (foo (>= 0, runtime)) EOF @@ -83,12 +89,34 @@ Gem foo-2 assert_equal '', @ui.error end + def test_execute_reverse_remote + @cmd.options[:args] = %w[foo] + @cmd.options[:reverse_dependencies] = true + @cmd.options[:domain] = :remote + + assert_raise MockGemUi::TermError do + use_ui @ui do + @cmd.execute + end + end + + expected = <<-EOF +ERROR: Only reverse dependencies for local gems are supported. + EOF + + assert_equal '', @ui.output + assert_equal expected, @ui.error + end + def test_execute_remote foo = quick_gem 'foo' do |gem| gem.add_dependency 'bar', '> 1' end - util_setup_source_info_cache foo + @fetcher = Gem::FakeFetcher.new + Gem::RemoteFetcher.fetcher = @fetcher + + util_setup_spec_fetcher foo FileUtils.rm File.join(@gemhome, 'specifications', "#{foo.full_name}.gemspec") @@ -100,9 +128,48 @@ Gem foo-2 @cmd.execute end - assert_equal "Gem foo-2\n bar (> 1)\n\n", @ui.output + assert_equal "Gem foo-2\n bar (> 1, runtime)\n\n", @ui.output assert_equal '', @ui.error end + def test_execute_remote_legacy + foo = quick_gem 'foo' do |gem| + gem.add_dependency 'bar', '> 1' + end + + @fetcher = Gem::FakeFetcher.new + Gem::RemoteFetcher.fetcher = @fetcher + + Gem::SpecFetcher.fetcher = nil + si = util_setup_source_info_cache foo + + @fetcher.data["#{@gem_repo}yaml"] = YAML.dump si + @fetcher.data["#{@gem_repo}Marshal.#{Gem.marshal_version}"] = + si.dump + + @fetcher.data["#{@gem_repo}latest_specs.#{Gem.marshal_version}.gz"] = nil + + FileUtils.rm File.join(@gemhome, 'specifications', + "#{foo.full_name}.gemspec") + + @cmd.options[:args] = %w[foo] + @cmd.options[:domain] = :remote + + use_ui @ui do + @cmd.execute + end + + assert_equal "Gem foo-2\n bar (> 1, runtime)\n\n", @ui.output + + expected = <<-EOF +WARNING: RubyGems 1.2+ index not found for: +\t#{@gem_repo} + +RubyGems will revert to legacy indexes degrading performance. + EOF + + assert_equal expected, @ui.error + end + end |