summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_version.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_version.rb')
-rw-r--r--test/rubygems/test_gem_version.rb32
1 files changed, 29 insertions, 3 deletions
diff --git a/test/rubygems/test_gem_version.rb b/test/rubygems/test_gem_version.rb
index bddae7fdc3..a2572fb611 100644
--- a/test/rubygems/test_gem_version.rb
+++ b/test/rubygems/test_gem_version.rb
@@ -46,7 +46,11 @@ class TestGemVersion < Gem::TestCase
def test_class_correct
assert_equal true, Gem::Version.correct?("5.1")
assert_equal false, Gem::Version.correct?("an incorrect version")
- assert_equal false, Gem::Version.correct?(nil)
+
+ expected = "nil versions are discouraged and will be deprecated in Rubygems 4\n"
+ assert_output nil, expected do
+ Gem::Version.correct?(nil)
+ end
end
def test_class_new_subclass
@@ -158,11 +162,25 @@ class TestGemVersion < Gem::TestCase
def test_approximate_recommendation
assert_approximate_equal "~> 1.0", "1"
+ assert_approximate_satisfies_itself "1"
+
assert_approximate_equal "~> 1.0", "1.0"
+ assert_approximate_satisfies_itself "1.0"
+
assert_approximate_equal "~> 1.2", "1.2"
+ assert_approximate_satisfies_itself "1.2"
+
assert_approximate_equal "~> 1.2", "1.2.0"
+ assert_approximate_satisfies_itself "1.2.0"
+
assert_approximate_equal "~> 1.2", "1.2.3"
- assert_approximate_equal "~> 1.2", "1.2.3.a.4"
+ assert_approximate_satisfies_itself "1.2.3"
+
+ assert_approximate_equal "~> 1.2.a", "1.2.3.a.4"
+ assert_approximate_satisfies_itself "1.2.3.a.4"
+
+ assert_approximate_equal "~> 1.9.a", "1.9.0.dev"
+ assert_approximate_satisfies_itself "1.9.0.dev"
end
def test_to_s
@@ -198,12 +216,20 @@ class TestGemVersion < Gem::TestCase
assert v(version).prerelease?, "#{version} is a prerelease"
end
- # Assert that +expected+ is the "approximate" recommendation for +version".
+ # Assert that +expected+ is the "approximate" recommendation for +version+.
def assert_approximate_equal expected, version
assert_equal expected, v(version).approximate_recommendation
end
+ # Assert that the "approximate" recommendation for +version+ satifies +version+.
+
+ def assert_approximate_satisfies_itself version
+ gem_version = v(version)
+
+ assert Gem::Requirement.new(gem_version.approximate_recommendation).satisfied_by?(gem_version)
+ end
+
# Assert that bumping the +unbumped+ version yields the +expected+.
def assert_bumped_version_equal expected, unbumped