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