1require 'rubygems/test_case' 2require 'rubygems/command' 3require 'rubygems/version_option' 4 5class TestGemVersionOption < Gem::TestCase 6 7 def setup 8 super 9 10 @cmd = Gem::Command.new 'dummy', 'dummy' 11 @cmd.extend Gem::VersionOption 12 end 13 14 def test_add_platform_option 15 @cmd.add_platform_option 16 17 assert @cmd.handles?(%w[--platform x86-darwin]) 18 end 19 20 def test_add_version_option 21 @cmd.add_version_option 22 23 assert @cmd.handles?(%w[--version >1]) 24 end 25 26 def test_enables_prerelease 27 @cmd.add_version_option 28 29 @cmd.handle_options %w[mygem -v 0.2.0.a] 30 assert @cmd.options[:prerelease] 31 32 @cmd.handle_options %w[mygem -v 0.2.0] 33 refute @cmd.options[:prerelease] 34 35 @cmd.handle_options %w[mygem] 36 refute @cmd.options[:prerelease] 37 end 38 39 def test_platform_option 40 @cmd.add_platform_option 41 42 @cmd.handle_options %w[--platform x86-freebsd6 --platform x86-freebsd7] 43 44 expected = [ 45 Gem::Platform::RUBY, 46 Gem::Platform.new('x86-freebsd6'), 47 Gem::Platform.new('x86-freebsd7'), 48 ] 49 50 assert_equal expected, Gem.platforms 51 end 52 53 def test_platform_option_ruby 54 @cmd.add_platform_option 55 56 @cmd.handle_options %w[--platform ruby] 57 58 expected = [ 59 Gem::Platform::RUBY 60 ] 61 62 assert_equal expected, Gem.platforms 63 end 64 65 def test_platform_option_twice 66 @cmd.add_platform_option 67 68 @cmd.handle_options %w[--platform x86-freebsd6 --platform x86-freebsd-6] 69 70 expected = [ 71 Gem::Platform::RUBY, 72 Gem::Platform.new('x86-freebsd6'), 73 ] 74 75 assert_equal expected, Gem.platforms 76 end 77 78 def test_version_option 79 @cmd.add_version_option 80 81 @cmd.handle_options %w[--version >1] 82 83 expected = { :version => Gem::Requirement.new('> 1'), :args => [] } 84 85 assert_equal expected, @cmd.options 86 end 87 88end 89 90