mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	This is RC version of Rubygems 2.7.0.
  688fb7e83c
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
	
			
		
			
				
	
	
		
			167 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
require 'rubygems/test_case'
 | 
						|
require 'rubygems/command'
 | 
						|
require 'rubygems/version_option'
 | 
						|
 | 
						|
class TestGemVersionOption < Gem::TestCase
 | 
						|
 | 
						|
  def setup
 | 
						|
    super
 | 
						|
 | 
						|
    @cmd = Gem::Command.new 'dummy', 'dummy'
 | 
						|
    @cmd.extend Gem::VersionOption
 | 
						|
  end
 | 
						|
 | 
						|
  def test_add_platform_option
 | 
						|
    @cmd.add_platform_option
 | 
						|
 | 
						|
    assert @cmd.handles?(%w[--platform x86-darwin])
 | 
						|
  end
 | 
						|
 | 
						|
  def test_add_version_option
 | 
						|
    @cmd.add_version_option
 | 
						|
 | 
						|
    assert @cmd.handles?(%w[--version >1])
 | 
						|
  end
 | 
						|
 | 
						|
  def test_enables_prerelease
 | 
						|
    @cmd.add_version_option
 | 
						|
 | 
						|
    @cmd.handle_options %w[mygem -v 0.2.0.a]
 | 
						|
    assert @cmd.options[:prerelease]
 | 
						|
 | 
						|
    @cmd.handle_options %w[mygem -v 0.2.0]
 | 
						|
    refute @cmd.options[:prerelease]
 | 
						|
 | 
						|
    @cmd.handle_options %w[mygem]
 | 
						|
    refute @cmd.options[:prerelease]
 | 
						|
  end
 | 
						|
 | 
						|
  def test_platform_option
 | 
						|
    @cmd.add_platform_option
 | 
						|
 | 
						|
    @cmd.handle_options %w[--platform x86-freebsd6 --platform x86-freebsd7]
 | 
						|
 | 
						|
    expected = [
 | 
						|
      Gem::Platform::RUBY,
 | 
						|
      Gem::Platform.new('x86-freebsd6'),
 | 
						|
      Gem::Platform.new('x86-freebsd7'),
 | 
						|
    ]
 | 
						|
 | 
						|
    assert_equal expected, Gem.platforms
 | 
						|
  end
 | 
						|
 | 
						|
  def test_platform_option_ruby
 | 
						|
    @cmd.add_platform_option
 | 
						|
 | 
						|
    @cmd.handle_options %w[--platform ruby]
 | 
						|
 | 
						|
    expected = [
 | 
						|
      Gem::Platform::RUBY
 | 
						|
    ]
 | 
						|
 | 
						|
    assert_equal expected, Gem.platforms
 | 
						|
  end
 | 
						|
 | 
						|
  def test_platform_option_twice
 | 
						|
    @cmd.add_platform_option
 | 
						|
 | 
						|
    @cmd.handle_options %w[--platform x86-freebsd6 --platform x86-freebsd-6]
 | 
						|
 | 
						|
    expected = [
 | 
						|
      Gem::Platform::RUBY,
 | 
						|
      Gem::Platform.new('x86-freebsd6'),
 | 
						|
    ]
 | 
						|
 | 
						|
    assert_equal expected, Gem.platforms
 | 
						|
  end
 | 
						|
 | 
						|
  def test_version_option
 | 
						|
    @cmd.add_version_option
 | 
						|
 | 
						|
    @cmd.handle_options %w[--version >1]
 | 
						|
 | 
						|
    expected = {
 | 
						|
      :args => [],
 | 
						|
      :explicit_prerelease => false,
 | 
						|
      :prerelease => false,
 | 
						|
      :version => Gem::Requirement.new('> 1'),
 | 
						|
    }
 | 
						|
 | 
						|
    assert_equal expected, @cmd.options
 | 
						|
  end
 | 
						|
 | 
						|
  def test_version_option_compound
 | 
						|
    @cmd.add_version_option
 | 
						|
 | 
						|
    @cmd.handle_options ['--version', '< 1, > 0.9']
 | 
						|
 | 
						|
    expected = {
 | 
						|
      :args => [],
 | 
						|
      :explicit_prerelease => false,
 | 
						|
      :prerelease => false,
 | 
						|
      :version => Gem::Requirement.new('< 1', '> 0.9'),
 | 
						|
    }
 | 
						|
 | 
						|
    assert_equal expected, @cmd.options
 | 
						|
  end
 | 
						|
 | 
						|
  def test_multiple_version_operator_option_compound
 | 
						|
    @cmd.add_version_option
 | 
						|
 | 
						|
    @cmd.handle_options ['--version', '< 1', '--version', '> 0.9']
 | 
						|
 | 
						|
    expected = {
 | 
						|
      :args => [],
 | 
						|
      :explicit_prerelease => false,
 | 
						|
      :prerelease => false,
 | 
						|
      :version => Gem::Requirement.new('< 1', '> 0.9'),
 | 
						|
    }
 | 
						|
 | 
						|
    assert_equal expected, @cmd.options
 | 
						|
  end
 | 
						|
 | 
						|
  def test_version_option_explicit_prerelease
 | 
						|
    @cmd.add_prerelease_option
 | 
						|
    @cmd.add_version_option
 | 
						|
 | 
						|
    @cmd.handle_options %w[--pre --version >1]
 | 
						|
 | 
						|
    expected = {
 | 
						|
      :args => [],
 | 
						|
      :explicit_prerelease => true,
 | 
						|
      :prerelease => true,
 | 
						|
      :version => Gem::Requirement.new('> 1'),
 | 
						|
    }
 | 
						|
 | 
						|
    assert_equal expected, @cmd.options
 | 
						|
  end
 | 
						|
 | 
						|
  def test_version_option_twice
 | 
						|
    @cmd.add_version_option
 | 
						|
 | 
						|
    @cmd.handle_options %w[--version >1.a]
 | 
						|
 | 
						|
    expected = {
 | 
						|
      :args => [],
 | 
						|
      :explicit_prerelease => false,
 | 
						|
      :prerelease => true,
 | 
						|
      :version => Gem::Requirement.new('> 1.a'),
 | 
						|
    }
 | 
						|
 | 
						|
    assert_equal expected, @cmd.options
 | 
						|
 | 
						|
    @cmd.handle_options %w[--version >1]
 | 
						|
 | 
						|
    expected = {
 | 
						|
      :args => [],
 | 
						|
      :explicit_prerelease => false,
 | 
						|
      :prerelease => false,
 | 
						|
      :version => Gem::Requirement.new('> 1'),
 | 
						|
    }
 | 
						|
 | 
						|
    assert_equal expected, @cmd.options
 | 
						|
  end
 | 
						|
 | 
						|
end
 | 
						|
 |