summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_source_specific_file.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_source_specific_file.rb')
-rw-r--r--test/rubygems/test_gem_source_specific_file.rb38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_source_specific_file.rb b/test/rubygems/test_gem_source_specific_file.rb
index 1d8351781f..8ccbe50c91 100644
--- a/test/rubygems/test_gem_source_specific_file.rb
+++ b/test/rubygems/test_gem_source_specific_file.rb
@@ -30,4 +30,42 @@ class TestGemSourceSpecificFile < Gem::TestCase
def test_download
assert_equal @a_gem, @sf.download(@a)
end
+
+ def test_spaceship
+ a1 = quick_gem 'a', '1'
+ util_build_gem a1
+
+ remote = Gem::Source.new @gem_repo
+ specific = Gem::Source::SpecificFile.new a1.cache_file
+ installed = Gem::Source::Installed.new
+ local = Gem::Source::Local.new
+
+ assert_equal( 0, specific. <=>(specific), 'specific <=> specific')
+
+ assert_equal(-1, remote. <=>(specific), 'remote <=> specific')
+ assert_equal( 1, specific. <=>(remote), 'specific <=> remote')
+
+ assert_equal(-1, specific. <=>(local), 'specific <=> local')
+ assert_equal( 1, local. <=>(specific), 'local <=> specific')
+
+ assert_equal(-1, specific. <=>(installed), 'specific <=> installed')
+ assert_equal( 1, installed.<=>(specific), 'installed <=> specific')
+
+ a2 = quick_gem 'a', '2'
+ util_build_gem a2
+
+ b1 = quick_gem 'b', '1'
+ util_build_gem b1
+
+ a1_source = specific
+ a2_source = Gem::Source::SpecificFile.new a2.cache_file
+ b1_source = Gem::Source::SpecificFile.new b1.cache_file
+
+ assert_nil a1_source.<=>(b1_source), 'a1_source <=> b1_source'
+
+ assert_equal(-1, a1_source.<=>(a2_source), 'a1_source <=> a2_source')
+ assert_equal( 0, a1_source.<=>(a1_source), 'a1_source <=> a1_source')
+ assert_equal( 1, a2_source.<=>(a1_source), 'a2_source <=> a1_source')
+ end
+
end