1 require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities')
2 require 'rubygems/commands/specification_command'
4 class TestGemCommandsSpecificationCommand < RubyGemTestCase
9 @cmd = Gem::Commands::SpecificationCommand.new
14 Gem.source_index.add_spec foo
16 @cmd.options[:args] = %w[foo]
22 assert_match %r|Gem::Specification|, @ui.output
23 assert_match %r|name: foo|, @ui.output
24 assert_equal '', @ui.error
28 foo1 = quick_gem 'foo', '0.0.1'
29 foo2 = quick_gem 'foo', '0.0.2'
31 @cmd.options[:args] = %w[foo]
32 @cmd.options[:all] = true
38 assert_match %r|Gem::Specification|, @ui.output
39 assert_match %r|name: foo|, @ui.output
40 assert_match %r|version: 0.0.1|, @ui.output
41 assert_match %r|version: 0.0.2|, @ui.output
42 assert_equal '', @ui.error
45 def test_execute_bad_name
46 @cmd.options[:args] = %w[foo]
48 assert_raises MockGemUi::TermError do
54 assert_equal '', @ui.output
55 assert_equal "ERROR: Unknown gem 'foo'\n", @ui.error
58 def test_execute_exact_match
60 foo_bar = quick_gem 'foo_bar'
62 @cmd.options[:args] = %w[foo]
68 assert_match %r|Gem::Specification|, @ui.output
69 assert_match %r|name: foo|, @ui.output
70 assert_equal '', @ui.error
73 def test_execute_remote
76 @fetcher = Gem::FakeFetcher.new
77 Gem::RemoteFetcher.fetcher = @fetcher
79 util_setup_spec_fetcher foo
81 FileUtils.rm File.join(@gemhome, 'specifications',
82 "#{foo.full_name}.gemspec")
84 @cmd.options[:args] = %w[foo]
85 @cmd.options[:domain] = :remote
91 assert_match %r|\A--- !ruby/object:Gem::Specification|, @ui.output
92 assert_match %r|name: foo|, @ui.output