Removed obsolete bin scripts.
[rbx.git] / test / rubygems / test_gem_commands_specification_command.rb
blobf66f0c0d49fbd0836d1b1b007f556f440dc06cfc
1 require 'test/unit'
2 require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities')
3 require 'rubygems/commands/specification_command'
5 class TestGemCommandsSpecificationCommand < RubyGemTestCase
7   def setup
8     super
10     @cmd = Gem::Commands::SpecificationCommand.new
11   end
13   def test_execute
14     foo = quick_gem 'foo'
15     Gem.source_index.add_spec foo
17     @cmd.options[:args] = %w[foo]
19     use_ui @ui do
20       @cmd.execute
21     end
23     assert_match %r|Gem::Specification|, @ui.output
24     assert_match %r|name: foo|, @ui.output
25     assert_equal '', @ui.error
26   end
28   def test_execute_all
29     foo1 = quick_gem 'foo', '0.0.1'
30     foo2 = quick_gem 'foo', '0.0.2'
32     @cmd.options[:args] = %w[foo]
33     @cmd.options[:all] = true
35     use_ui @ui do
36       @cmd.execute
37     end
39     assert_match %r|Gem::Specification|, @ui.output
40     assert_match %r|name: foo|, @ui.output
41     assert_match %r|version: 0.0.1|, @ui.output
42     assert_match %r|version: 0.0.2|, @ui.output
43     assert_equal '', @ui.error
44   end
46   def test_execute_bad_name
47     @cmd.options[:args] = %w[foo]
49     assert_raise MockGemUi::TermError do
50       use_ui @ui do
51         @cmd.execute
52       end
53     end
55     assert_equal '', @ui.output
56     assert_equal "ERROR:  Unknown gem 'foo'\n", @ui.error
57   end
59   def test_execute_exact_match
60     foo = quick_gem 'foo'
61     foo_bar = quick_gem 'foo_bar'
63     @cmd.options[:args] = %w[foo]
65     use_ui @ui do
66       @cmd.execute
67     end
69     assert_match %r|Gem::Specification|, @ui.output
70     assert_match %r|name: foo|, @ui.output
71     assert_equal '', @ui.error
72   end
74   def test_execute_remote
75     foo = quick_gem 'foo'
77     util_setup_source_info_cache foo
79     FileUtils.rm File.join(@gemhome, 'specifications',
80                            "#{foo.full_name}.gemspec")
82     @cmd.options[:args] = %w[foo]
83     @cmd.options[:domain] = :remote
85     use_ui @ui do
86       @cmd.execute
87     end
89     assert_match %r|\A--- !ruby/object:Gem::Specification|, @ui.output
90     assert_match %r|name: foo|, @ui.output
91   end
93 end