aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/rubygems/test_gem.rb2
-rw-r--r--test/rubygems/test_gem_commands_which_command.rb4
-rw-r--r--test/rubygems/test_gem_dependency_resolution_error.rb4
-rw-r--r--test/rubygems/test_gem_dependency_resolver_vendor_specification.rb72
-rw-r--r--test/rubygems/test_gem_ext_builder.rb22
-rw-r--r--test/rubygems/test_gem_impossible_dependencies_error.rb4
-rw-r--r--test/rubygems/test_gem_installer.rb14
-rw-r--r--test/rubygems/test_gem_remote_fetcher.rb2
-rw-r--r--test/rubygems/test_gem_request_set.rb31
-rw-r--r--test/rubygems/test_gem_request_set_gem_dependency_api.rb199
-rw-r--r--test/rubygems/test_gem_request_set_lockfile.rb4
-rw-r--r--test/rubygems/test_gem_resolver.rb (renamed from test/rubygems/test_gem_dependency_resolver.rb)93
-rw-r--r--test/rubygems/test_gem_resolver_activation_request.rb (renamed from test/rubygems/test_gem_dependency_resolver_activation_request.rb)6
-rw-r--r--test/rubygems/test_gem_resolver_api_set.rb (renamed from test/rubygems/test_gem_dependency_resolver_api_set.rb)5
-rw-r--r--test/rubygems/test_gem_resolver_api_specification.rb (renamed from test/rubygems/test_gem_dependency_resolver_api_specification.rb)7
-rw-r--r--test/rubygems/test_gem_resolver_best_set.rb (renamed from test/rubygems/test_gem_dependency_resolver_best_set.rb)5
-rw-r--r--test/rubygems/test_gem_resolver_conflict.rb (renamed from test/rubygems/test_gem_dependency_resolver_dependency_conflict.rb)15
-rw-r--r--test/rubygems/test_gem_resolver_dependency_request.rb (renamed from test/rubygems/test_gem_dependency_resolver_dependency_request.rb)4
-rw-r--r--test/rubygems/test_gem_resolver_git_set.rb84
-rw-r--r--test/rubygems/test_gem_resolver_git_specification.rb36
-rw-r--r--test/rubygems/test_gem_resolver_index_set.rb (renamed from test/rubygems/test_gem_dependency_resolver_index_set.rb)5
-rw-r--r--test/rubygems/test_gem_resolver_index_specification.rb (renamed from test/rubygems/test_gem_dependency_resolver_index_specification.rb)19
-rw-r--r--test/rubygems/test_gem_resolver_installed_specification.rb (renamed from test/rubygems/test_gem_dependency_resolver_installed_specification.rb)7
-rw-r--r--test/rubygems/test_gem_resolver_installer_set.rb (renamed from test/rubygems/test_gem_dependency_resolver_installer_set.rb)5
-rw-r--r--test/rubygems/test_gem_resolver_lock_set.rb (renamed from test/rubygems/test_gem_dependency_resolver_lock_set.rb)5
-rw-r--r--test/rubygems/test_gem_resolver_requirement_list.rb19
-rw-r--r--test/rubygems/test_gem_resolver_vendor_set.rb (renamed from test/rubygems/test_gem_dependency_resolver_vendor_set.rb)9
-rw-r--r--test/rubygems/test_gem_resolver_vendor_specification.rb71
-rw-r--r--test/rubygems/test_gem_source.rb4
-rw-r--r--test/rubygems/test_gem_source_git.rb153
-rw-r--r--test/rubygems/test_gem_source_vendor.rb14
-rw-r--r--test/rubygems/test_gem_specification.rb4
-rw-r--r--test/rubygems/test_gem_stub_specification.rb4
-rw-r--r--test/rubygems/test_gem_util.rb11
34 files changed, 745 insertions, 198 deletions
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index fd4d1de5c6..ec7f7299ec 100644
--- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb
@@ -1120,7 +1120,7 @@ class TestGem < Gem::TestCase
ENV['RUBYGEMS_GEMDEPS'] = "-"
- assert_equal [a,b,c], Gem.detect_gemdeps
+ assert_equal [a,b,c], Gem.detect_gemdeps.sort_by { |s| s.name }
end
LIB_PATH = File.expand_path "../../../lib".untaint, __FILE__.untaint
diff --git a/test/rubygems/test_gem_commands_which_command.rb b/test/rubygems/test_gem_commands_which_command.rb
index b19f204c4a..7ce26c861a 100644
--- a/test/rubygems/test_gem_commands_which_command.rb
+++ b/test/rubygems/test_gem_commands_which_command.rb
@@ -44,7 +44,9 @@ class TestGemCommandsWhichCommand < Gem::TestCase
@cmd.handle_options %w[foo_bar missinglib]
use_ui @ui do
- @cmd.execute
+ assert_raises Gem::MockGemUi::TermError do
+ @cmd.execute
+ end
end
assert_equal "#{@foo_bar.full_gem_path}/lib/foo_bar.rb\n", @ui.output
diff --git a/test/rubygems/test_gem_dependency_resolution_error.rb b/test/rubygems/test_gem_dependency_resolution_error.rb
index 0ac0b06028..0442082e6a 100644
--- a/test/rubygems/test_gem_dependency_resolution_error.rb
+++ b/test/rubygems/test_gem_dependency_resolution_error.rb
@@ -5,7 +5,7 @@ class TestGemDependencyResolutionError < Gem::TestCase
def setup
super
- @DR = Gem::DependencyResolver
+ @DR = Gem::Resolver
@spec = util_spec 'a', 2
@@ -14,7 +14,7 @@ class TestGemDependencyResolutionError < Gem::TestCase
@activated = @DR::ActivationRequest.new @spec, @a2_req
- @conflict = @DR::DependencyConflict.new @a1_req, @activated
+ @conflict = @DR::Conflict.new @a1_req, @activated
@error = Gem::DependencyResolutionError.new @conflict
end
diff --git a/test/rubygems/test_gem_dependency_resolver_vendor_specification.rb b/test/rubygems/test_gem_dependency_resolver_vendor_specification.rb
deleted file mode 100644
index 77d78d1dc7..0000000000
--- a/test/rubygems/test_gem_dependency_resolver_vendor_specification.rb
+++ /dev/null
@@ -1,72 +0,0 @@
-require 'rubygems/test_case'
-require 'rubygems/dependency_resolver'
-
-class TestGemDependencyResolverVendorSpecification < Gem::TestCase
-
- def setup
- super
-
- @set = Gem::DependencyResolver::VendorSet.new
- @spec = Gem::Specification.new 'a', 1
- end
-
- def test_equals2
- v_spec_a = Gem::DependencyResolver::VendorSpecification.new @set, @spec
-
- assert_equal v_spec_a, v_spec_a
-
- spec_b = Gem::Specification.new 'b', 1
- v_spec_b = Gem::DependencyResolver::VendorSpecification.new @set, spec_b
-
- refute_equal v_spec_a, v_spec_b
-
- v_set = Gem::DependencyResolver::VendorSet.new
- v_spec_s = Gem::DependencyResolver::VendorSpecification.new v_set, @spec
-
- refute_equal v_spec_a, v_spec_s
-
- i_set = Gem::DependencyResolver::IndexSet.new
- source = Gem::Source.new @gem_repo
- i_spec = Gem::DependencyResolver::IndexSpecification.new(
- i_set, 'a', v(1), source, Gem::Platform::RUBY)
-
- refute_equal v_spec_a, i_spec
- end
-
- def test_dependencies
- @spec.add_dependency 'b'
- @spec.add_dependency 'c'
-
- v_spec = Gem::DependencyResolver::VendorSpecification.new @set, @spec
-
- assert_equal [dep('b'), dep('c')], v_spec.dependencies
- end
-
- def test_full_name
- v_spec = Gem::DependencyResolver::VendorSpecification.new @set, @spec
-
- assert_equal 'a-1', v_spec.full_name
- end
-
- def test_name
- v_spec = Gem::DependencyResolver::VendorSpecification.new @set, @spec
-
- assert_equal 'a', v_spec.name
- end
-
- def test_platform
- v_spec = Gem::DependencyResolver::VendorSpecification.new @set, @spec
-
- assert_equal Gem::Platform::RUBY, v_spec.platform
- end
-
- def test_version
- spec = Gem::Specification.new 'a', 1
-
- v_spec = Gem::DependencyResolver::VendorSpecification.new @set, spec
-
- assert_equal v(1), v_spec.version
- end
-
-end
-
diff --git a/test/rubygems/test_gem_ext_builder.rb b/test/rubygems/test_gem_ext_builder.rb
index d7e5880a96..3da9bc9e60 100644
--- a/test/rubygems/test_gem_ext_builder.rb
+++ b/test/rubygems/test_gem_ext_builder.rb
@@ -98,22 +98,26 @@ install:
end
def test_build_extensions
- @spec.extensions << 'extconf.rb'
+ @spec.extensions << 'ext/extconf.rb'
- FileUtils.mkdir_p @spec.gem_dir
+ ext_dir = File.join @spec.gem_dir, 'ext'
+
+ FileUtils.mkdir_p ext_dir
- extconf_rb = File.join @spec.gem_dir, 'extconf.rb'
+ extconf_rb = File.join ext_dir, 'extconf.rb'
open extconf_rb, 'w' do |f|
f.write <<-'RUBY'
- open 'Makefile', 'w' do |f|
- f.puts "clean:\n\techo cleaned"
- f.puts "default:\n\techo built"
- f.puts "install:\n\techo installed"
- end
+ require 'mkmf'
+
+ create_makefile 'a'
RUBY
end
+ ext_lib_dir = File.join ext_dir, 'lib'
+ FileUtils.mkdir ext_lib_dir
+ FileUtils.touch File.join ext_lib_dir, 'a.rb'
+
use_ui @ui do
@builder.build_extensions
end
@@ -121,6 +125,8 @@ install:
assert_path_exists @spec.extension_install_dir
assert_path_exists @spec.gem_build_complete_path
assert_path_exists File.join @spec.extension_install_dir, 'gem_make.out'
+ assert_path_exists File.join @spec.extension_install_dir, 'a.rb'
+ assert_path_exists File.join @spec.gem_dir, 'lib', 'a.rb'
end
def test_build_extensions_none
diff --git a/test/rubygems/test_gem_impossible_dependencies_error.rb b/test/rubygems/test_gem_impossible_dependencies_error.rb
index 9a0472fa36..f61b86e490 100644
--- a/test/rubygems/test_gem_impossible_dependencies_error.rb
+++ b/test/rubygems/test_gem_impossible_dependencies_error.rb
@@ -15,10 +15,10 @@ class TestGemImpossibleDependenciesError < Gem::TestCase
net_ssh_2_6_5 =
dependency_request dep('net-ssh', '~> 2.2.2'), 'net-ssh', '2.6.5', request
- conflict1 = Gem::DependencyResolver::DependencyConflict.new \
+ conflict1 = Gem::Resolver::Conflict.new \
net_ssh_2_6_5, net_ssh_2_6_5.requester
- conflict2 = Gem::DependencyResolver::DependencyConflict.new \
+ conflict2 = Gem::Resolver::Conflict.new \
net_ssh_2_2_2, net_ssh_2_2_2.requester
conflicts << [net_ssh_2_6_5.requester.spec, conflict1]
diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb
index 0abb58b655..f0dd52cd36 100644
--- a/test/rubygems/test_gem_installer.rb
+++ b/test/rubygems/test_gem_installer.rb
@@ -1004,6 +1004,10 @@ gem 'other', version
skip '1.9.2 and earlier mkmf.rb does not create TOUCH' if
RUBY_VERSION < '1.9.3'
+ if RUBY_VERSION == "1.9.3" and RUBY_PATCHLEVEL <= 194
+ skip "TOUCH was introduced into 1.9.3 after p194"
+ end
+
@spec.require_paths = ["."]
@spec.extensions << "extconf.rb"
@@ -1038,8 +1042,14 @@ gem 'other', version
puts '-' * 78
puts File.read File.join(@gemhome, 'gems', 'a-2', 'Makefile')
puts '-' * 78
- puts File.read File.join(@gemhome, 'gems', 'a-2', 'gem_make.out')
- puts '-' * 78
+
+ path = File.join(@gemhome, 'gems', 'a-2', 'gem_make.out')
+
+ if File.exists?(path)
+ puts File.read(path)
+ puts '-' * 78
+ end
+
raise
end
diff --git a/test/rubygems/test_gem_remote_fetcher.rb b/test/rubygems/test_gem_remote_fetcher.rb
index 5f36e71807..7e6d9c7693 100644
--- a/test/rubygems/test_gem_remote_fetcher.rb
+++ b/test/rubygems/test_gem_remote_fetcher.rb
@@ -165,7 +165,7 @@ gems:
def test_api_endpoint
uri = URI.parse "http://gems.example.com/foo"
target = MiniTest::Mock.new
- target.expect :target, "http://blah.com"
+ target.expect :target, "blah.com"
dns = MiniTest::Mock.new
dns.expect :getresource, target, [String, Object]
diff --git a/test/rubygems/test_gem_request_set.rb b/test/rubygems/test_gem_request_set.rb
index 9b215c2bc7..531b6c09d1 100644
--- a/test/rubygems/test_gem_request_set.rb
+++ b/test/rubygems/test_gem_request_set.rb
@@ -7,7 +7,7 @@ class TestGemRequestSet < Gem::TestCase
Gem::RemoteFetcher.fetcher = @fetcher = Gem::FakeFetcher.new
- @DR = Gem::DependencyResolver
+ @DR = Gem::Resolver
end
def test_gem
@@ -69,6 +69,7 @@ class TestGemRequestSet < Gem::TestCase
assert_equal [dep('a')], rs.dependencies
+ assert rs.git_set
assert rs.vendor_set
end
@@ -100,6 +101,32 @@ class TestGemRequestSet < Gem::TestCase
assert_equal ["a-2", "b-2"], names
end
+ def test_resolve_git
+ name, _, repository, = git_gem
+
+ rs = Gem::RequestSet.new
+
+ Tempfile.open 'gem.deps.rb' do |io|
+ io.puts <<-gems_deps_rb
+ gem "#{name}", :git => "#{repository}"
+ gems_deps_rb
+
+ io.flush
+
+ rs.load_gemdeps io.path
+ end
+
+ res = rs.resolve
+ assert_equal 1, res.size
+
+ names = res.map { |s| s.full_name }.sort
+
+ assert_equal %w[a-1], names
+
+ assert_equal [@DR::IndexSet, @DR::GitSet, @DR::VendorSet],
+ rs.sets.map { |set| set.class }
+ end
+
def test_resolve_incompatible
a1 = util_spec 'a', 1
a2 = util_spec 'a', 2
@@ -142,7 +169,7 @@ class TestGemRequestSet < Gem::TestCase
assert_equal ["a-1", "b-2"], names
- assert_equal [@DR::IndexSet, @DR::VendorSet],
+ assert_equal [@DR::IndexSet, @DR::GitSet, @DR::VendorSet],
rs.sets.map { |set| set.class }
end
diff --git a/test/rubygems/test_gem_request_set_gem_dependency_api.rb b/test/rubygems/test_gem_request_set_gem_dependency_api.rb
index 154449dde2..4286a761cb 100644
--- a/test/rubygems/test_gem_request_set_gem_dependency_api.rb
+++ b/test/rubygems/test_gem_request_set_gem_dependency_api.rb
@@ -10,9 +10,11 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
@set = Gem::RequestSet.new
- @vendor_set = Gem::DependencyResolver::VendorSet.new
+ @git_set = Gem::Resolver::GitSet.new
+ @vendor_set = Gem::Resolver::VendorSet.new
@gda = @GDA.new @set, 'gem.deps.rb'
+ @gda.instance_variable_set :@git_set, @git_set
@gda.instance_variable_set :@vendor_set, @vendor_set
end
@@ -48,6 +50,18 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
Gem.instance_variables.include? :@ruby_version
end
+ def test_gemspec_without_group
+ @gda.send :add_dependencies, [:development], [dep('a', '= 1')]
+
+ assert_equal [dep('a', '= 1')], @set.dependencies
+
+ @gda.without_groups << :development
+
+ @gda.send :add_dependencies, [:development], [dep('b', '= 2')]
+
+ assert_equal [dep('a', '= 1')], @set.dependencies
+ end
+
def test_gem
@gda.gem 'a'
@@ -56,6 +70,65 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
assert_equal %w[a], @gda.requires['a']
end
+ def test_gem_git
+ @gda.gem 'a', :git => 'git/a'
+
+ assert_equal [dep('a')], @set.dependencies
+
+ assert_equal %w[git/a master], @git_set.repositories['a']
+ end
+
+ def test_gem_git_branch
+ @gda.gem 'a', :git => 'git/a', :branch => 'other', :tag => 'v1'
+
+ assert_equal [dep('a')], @set.dependencies
+
+ assert_equal %w[git/a other], @git_set.repositories['a']
+ end
+
+ def test_gem_git_gist
+ @gda.gem 'a', :gist => 'a'
+
+ assert_equal [dep('a')], @set.dependencies
+
+ assert_equal %w[https://gist.github.com/a.git master],
+ @git_set.repositories['a']
+ end
+
+ def test_gem_git_ref
+ @gda.gem 'a', :git => 'git/a', :ref => 'abcd123', :branch => 'other'
+
+ assert_equal [dep('a')], @set.dependencies
+
+ assert_equal %w[git/a abcd123], @git_set.repositories['a']
+ end
+
+ def test_gem_git_submodules
+ @gda.gem 'a', :git => 'git/a', :submodules => true
+
+ assert_equal [dep('a')], @set.dependencies
+
+ assert_equal %w[git/a master], @git_set.repositories['a']
+ assert_equal %w[git/a], @git_set.need_submodules.keys
+ end
+
+ def test_gem_git_tag
+ @gda.gem 'a', :git => 'git/a', :tag => 'v1'
+
+ assert_equal [dep('a')], @set.dependencies
+
+ assert_equal %w[git/a v1], @git_set.repositories['a']
+ end
+
+ def test_gem_github
+ @gda.gem 'a', :github => 'example/repository'
+
+ assert_equal [dep('a')], @set.dependencies
+
+ assert_equal %w[git://github.com/example/repository.git master],
+ @git_set.repositories['a']
+ end
+
def test_gem_group
@gda.gem 'a', :group => :test
@@ -284,6 +357,130 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
assert_equal [:a, :b, :c, :d], groups.sort_by { |group| group.to_s }
end
+ def test_gemspec
+ spec = util_spec 'a', 1, 'b' => 2
+ spec.add_development_dependency 'c', 3
+
+ open 'a.gemspec', 'w' do |io|
+ io.write spec.to_ruby_for_cache
+ end
+
+ @gda.gemspec
+
+ assert_equal [dep('b', '= 2'), dep('c', '=3')], @set.dependencies
+
+ assert_equal %w[a], @gda.requires['a']
+ end
+
+ def test_gemspec_bad
+ FileUtils.touch 'a.gemspec'
+
+ e = assert_raises ArgumentError do
+ capture_io do
+ @gda.gemspec
+ end
+ end
+
+ assert_equal 'invalid gemspec ./a.gemspec', e.message
+ end
+
+ def test_gemspec_development_group
+ spec = util_spec 'a', 1, 'b' => 2
+ spec.add_development_dependency 'c', 3
+
+ open 'a.gemspec', 'w' do |io|
+ io.write spec.to_ruby_for_cache
+ end
+
+ @gda.without_groups << :other
+
+ @gda.gemspec :development_group => :other
+
+ assert_equal [dep('b', '= 2')], @set.dependencies
+
+ assert_equal %w[a], @gda.requires['a']
+ end
+
+ def test_gemspec_multiple
+ open 'a.gemspec', 'w' do |io|
+ spec = util_spec 'a', 1, 'b' => 2
+ io.write spec.to_ruby_for_cache
+ end
+
+ open 'b.gemspec', 'w' do |io|
+ spec = util_spec 'b', 2, 'c' => 3
+ io.write spec.to_ruby_for_cache
+ end
+
+ e = assert_raises ArgumentError do
+ @gda.gemspec
+ end
+
+ assert_equal "found multiple gemspecs at #{@tempdir}, use the name: option to specify the one you want", e.message
+ end
+
+ def test_gemspec_name
+ open 'a.gemspec', 'w' do |io|
+ spec = util_spec 'a', 1, 'b' => 2
+ io.write spec.to_ruby_for_cache
+ end
+
+ open 'b.gemspec', 'w' do |io|
+ spec = util_spec 'b', 2, 'c' => 3
+ io.write spec.to_ruby_for_cache
+ end
+
+ @gda.gemspec :name => 'b'
+
+ assert_equal [dep('c', '= 3')], @set.dependencies
+ end
+
+ def test_gemspec_named
+ spec = util_spec 'a', 1, 'b' => 2
+
+ open 'other.gemspec', 'w' do |io|
+ io.write spec.to_ruby_for_cache
+ end
+
+ @gda.gemspec
+
+ assert_equal [dep('b', '= 2')], @set.dependencies
+ end
+
+ def test_gemspec_none
+ e = assert_raises ArgumentError do
+ @gda.gemspec
+ end
+
+ assert_equal "no gemspecs found at #{@tempdir}", e.message
+ end
+
+ def test_gemspec_path
+ spec = util_spec 'a', 1, 'b' => 2
+
+ FileUtils.mkdir 'other'
+
+ open 'other/a.gemspec', 'w' do |io|
+ io.write spec.to_ruby_for_cache
+ end
+
+ @gda.gemspec :path => 'other'
+
+ assert_equal [dep('b', '= 2')], @set.dependencies
+ end
+
+ def test_git
+ @gda.git 'git://example/repo.git' do
+ @gda.gem 'a'
+ @gda.gem 'b'
+ end
+
+ assert_equal [dep('a'), dep('b')], @set.dependencies
+
+ assert_equal %w[git://example/repo.git master], @git_set.repositories['a']
+ assert_equal %w[git://example/repo.git master], @git_set.repositories['b']
+ end
+
def test_group
@gda.group :test do
@gda.gem 'a'
diff --git a/test/rubygems/test_gem_request_set_lockfile.rb b/test/rubygems/test_gem_request_set_lockfile.rb
index 9e947f54ec..fcd4ecfaf7 100644
--- a/test/rubygems/test_gem_request_set_lockfile.rb
+++ b/test/rubygems/test_gem_request_set_lockfile.rb
@@ -13,7 +13,7 @@ class TestGemRequestSetLockfile < Gem::TestCase
@set = Gem::RequestSet.new
- @vendor_set = Gem::DependencyResolver::VendorSet.new
+ @vendor_set = Gem::Resolver::VendorSet.new
@set.instance_variable_set :@vendor_set, @vendor_set
@@ -96,7 +96,7 @@ DEPENDENCIES
assert_equal [Gem::Platform::RUBY], @lockfile.platforms
lockfile_set = @set.sets.find do |set|
- Gem::DependencyResolver::LockSet === set
+ Gem::Resolver::LockSet === set
end
assert lockfile_set, 'could not find a LockSet'
diff --git a/test/rubygems/test_gem_dependency_resolver.rb b/test/rubygems/test_gem_resolver.rb
index ceecab6d55..80769de8cf 100644
--- a/test/rubygems/test_gem_dependency_resolver.rb
+++ b/test/rubygems/test_gem_resolver.rb
@@ -1,12 +1,11 @@
require 'rubygems/test_case'
-require 'rubygems/dependency_resolver'
-class TestGemDependencyResolver < Gem::TestCase
+class TestGemResolver < Gem::TestCase
def setup
super
- @DR = Gem::DependencyResolver
+ @DR = Gem::Resolver
end
def make_dep(name, *req)
@@ -30,13 +29,17 @@ class TestGemDependencyResolver < Gem::TestCase
flunk e.message
end
+ def test_self_compatibility
+ assert_same Gem::Resolver, Gem::DependencyResolver
+ end
+
def test_self_compose_sets_multiple
index_set = @DR::IndexSet.new
vendor_set = @DR::VendorSet.new
composed = @DR.compose_sets index_set, vendor_set
- assert_kind_of Gem::DependencyResolver::ComposedSet, composed
+ assert_kind_of Gem::Resolver::ComposedSet, composed
assert_equal [index_set, vendor_set], composed.sets
end
@@ -66,13 +69,13 @@ class TestGemDependencyResolver < Gem::TestCase
def test_handle_conflict
a1 = util_spec 'a', 1
- r1 = Gem::DependencyResolver::DependencyRequest.new dep('a', '= 1'), nil
- r2 = Gem::DependencyResolver::DependencyRequest.new dep('a', '= 2'), nil
- r3 = Gem::DependencyResolver::DependencyRequest.new dep('a', '= 3'), nil
+ r1 = Gem::Resolver::DependencyRequest.new dep('a', '= 1'), nil
+ r2 = Gem::Resolver::DependencyRequest.new dep('a', '= 2'), nil
+ r3 = Gem::Resolver::DependencyRequest.new dep('a', '= 3'), nil
- existing = Gem::DependencyResolver::ActivationRequest.new a1, r1, false
+ existing = Gem::Resolver::ActivationRequest.new a1, r1, false
- res = Gem::DependencyResolver.new [a1]
+ res = Gem::Resolver.new [a1]
res.handle_conflict r2, existing
res.handle_conflict r2, existing
@@ -92,7 +95,7 @@ class TestGemDependencyResolver < Gem::TestCase
s = set(a, b)
- res = Gem::DependencyResolver.new(deps, s)
+ res = Gem::Resolver.new(deps, s)
assert_resolves_to [a, b], res
end
@@ -109,7 +112,7 @@ class TestGemDependencyResolver < Gem::TestCase
s = set(a, b, c)
- res = Gem::DependencyResolver.new(deps, s)
+ res = Gem::Resolver.new(deps, s)
assert_resolves_to [a, b, c], res
end
@@ -122,13 +125,13 @@ class TestGemDependencyResolver < Gem::TestCase
ad = make_dep "a"
- res = Gem::DependencyResolver.new([ad], s)
+ res = Gem::Resolver.new([ad], s)
assert_resolves_to [a2], res
end
def test_picks_best_platform
- is = Gem::DependencyResolver::IndexSpecification
+ is = Gem::Resolver::IndexSpecification
unknown = Gem::Platform.new 'unknown'
a2_p1 = a3_p2 = nil
@@ -153,7 +156,7 @@ class TestGemDependencyResolver < Gem::TestCase
ad = make_dep "a"
- res = Gem::DependencyResolver.new([ad], s)
+ res = Gem::Resolver.new([ad], s)
assert_resolves_to [a2_p1], res
end
@@ -169,7 +172,7 @@ class TestGemDependencyResolver < Gem::TestCase
s = set(a1, b1, c1)
- res = Gem::DependencyResolver.new([ad, bd], s)
+ res = Gem::Resolver.new([ad, bd], s)
assert_resolves_to [a1, b1, c1], res
end
@@ -186,17 +189,9 @@ class TestGemDependencyResolver < Gem::TestCase
s = set(a1, b1, c1, c2)
- res = Gem::DependencyResolver.new([ad, bd], s)
+ res = Gem::Resolver.new([ad, bd], s)
assert_resolves_to [a1, b1, c1], res
-
- cons = res.conflicts
-
- assert_equal 1, cons.size
- con = cons.first
-
- assert_equal "c (= 1)", con.dependency.to_s
- assert_equal "c-2", con.activated.full_name
end
def test_conflict_resolution_only_effects_correct_spec
@@ -214,7 +209,7 @@ class TestGemDependencyResolver < Gem::TestCase
s = set(a1, b1, d3, d4, c1, c2)
- res = Gem::DependencyResolver.new([ad, bd], s)
+ res = Gem::Resolver.new([ad, bd], s)
assert_resolves_to [a1, b1, c1, d4], res
@@ -239,31 +234,31 @@ class TestGemDependencyResolver < Gem::TestCase
s = set(a1, b1, c1, c2)
- r = Gem::DependencyResolver.new([ad, bd], s)
+ r = Gem::Resolver.new([ad, bd], s)
e = assert_raises Gem::DependencyResolutionError do
r.resolve
end
- deps = [make_dep("c", "= 2"), make_dep("c", "= 1")]
+ deps = [make_dep("c", "= 1"), make_dep("c", "= 2")]
assert_equal deps, e.conflicting_dependencies
con = e.conflict
act = con.activated
- assert_equal "c-1", act.spec.full_name
+ assert_equal "c-2", act.spec.full_name
parent = act.parent
- assert_equal "a-1", parent.spec.full_name
+ assert_equal "b-1", parent.spec.full_name
act = con.requester
- assert_equal "b-1", act.spec.full_name
+ assert_equal "a-1", act.spec.full_name
end
def test_raises_when_a_gem_is_missing
ad = make_dep "a"
- r = Gem::DependencyResolver.new([ad], set)
+ r = Gem::Resolver.new([ad], set)
e = assert_raises Gem::UnsatisfiableDepedencyError do
r.resolve
@@ -280,7 +275,7 @@ class TestGemDependencyResolver < Gem::TestCase
ad = make_dep "a", "= 3"
- r = Gem::DependencyResolver.new([ad], set(a1))
+ r = Gem::Resolver.new([ad], set(a1))
e = assert_raises Gem::UnsatisfiableDepedencyError do
r.resolve
@@ -293,7 +288,7 @@ class TestGemDependencyResolver < Gem::TestCase
a1 = util_spec "a", "1"
ad = make_dep "a", "= 3"
- r = Gem::DependencyResolver.new([ad], set(a1))
+ r = Gem::Resolver.new([ad], set(a1))
e = assert_raises Gem::UnsatisfiableDepedencyError do
r.resolve
@@ -310,7 +305,7 @@ class TestGemDependencyResolver < Gem::TestCase
ad = make_dep "a", "= 1"
- r = Gem::DependencyResolver.new([ad], set(a1))
+ r = Gem::Resolver.new([ad], set(a1))
e = assert_raises Gem::UnsatisfiableDepedencyError do
r.resolve
@@ -333,7 +328,7 @@ class TestGemDependencyResolver < Gem::TestCase
ad = make_dep "a"
bd = make_dep "b"
- r = Gem::DependencyResolver.new([ad, bd], s)
+ r = Gem::Resolver.new([ad, bd], s)
e = assert_raises Gem::DependencyResolutionError do
r.resolve
@@ -345,11 +340,11 @@ class TestGemDependencyResolver < Gem::TestCase
assert_equal req('>= 0'), dependency.requirement
activated = e.conflict.activated
- assert_equal 'c-2', activated.full_name
+ assert_equal 'c-1', activated.full_name
- assert_equal dep('c', '>= 2'), activated.request.dependency
+ assert_equal dep('c', '= 1'), activated.request.dependency
- assert_equal [dep('c', '= 1'), dep('c', '>= 2')],
+ assert_equal [dep('c', '>= 2'), dep('c', '= 1')],
e.conflict.conflicting_dependencies
end
@@ -363,7 +358,7 @@ class TestGemDependencyResolver < Gem::TestCase
s = set(a1, b1, c1)
- r = Gem::DependencyResolver.new([ad, bd], s)
+ r = Gem::Resolver.new([ad, bd], s)
assert_resolves_to [a1, b1, c1], r
end
@@ -382,13 +377,13 @@ class TestGemDependencyResolver < Gem::TestCase
s = set(lib1, rails, ap, rack100, rack101)
- r = Gem::DependencyResolver.new([d1, d2], s)
+ r = Gem::Resolver.new([d1, d2], s)
assert_resolves_to [rails, ap, rack101, lib1], r
# check it with the deps reverse too
- r = Gem::DependencyResolver.new([d2, d1], s)
+ r = Gem::Resolver.new([d2, d1], s)
assert_resolves_to [lib1, rack101, rails, ap], r
end
@@ -405,7 +400,7 @@ class TestGemDependencyResolver < Gem::TestCase
s = set(a1, a2, a3, a4)
- r = Gem::DependencyResolver.new([d1, d2, d3], s)
+ r = Gem::Resolver.new([d1, d2, d3], s)
assert_raises Gem::DependencyResolutionError do
r.resolve
@@ -423,7 +418,7 @@ class TestGemDependencyResolver < Gem::TestCase
a_dep = dep 'a', '~> 1.0'
b_dep = dep 'b'
- r = Gem::DependencyResolver.new [a_dep, b_dep], s
+ r = Gem::Resolver.new [a_dep, b_dep], s
assert_raises Gem::DependencyResolutionError do
r.resolve
@@ -444,7 +439,7 @@ class TestGemDependencyResolver < Gem::TestCase
a_dep = dep 'a', '= 1'
- r = Gem::DependencyResolver.new [a_dep], s
+ r = Gem::Resolver.new [a_dep], s
assert_resolves_to [a1, b1, c1], r
end
@@ -461,7 +456,7 @@ class TestGemDependencyResolver < Gem::TestCase
a_dep = dep 'a', '~> 1.0'
b_dep = dep 'b'
- r = Gem::DependencyResolver.new [a_dep, b_dep], s
+ r = Gem::Resolver.new [a_dep, b_dep], s
assert_resolves_to [a1, b1], r
end
@@ -484,7 +479,7 @@ class TestGemDependencyResolver < Gem::TestCase
d1 = make_dep "activemerchant"
d2 = make_dep "actionmailer"
- r = Gem::DependencyResolver.new([d1, d2], s)
+ r = Gem::Resolver.new([d1, d2], s)
assert_resolves_to [merch, mail, sup1], r
end
@@ -502,13 +497,13 @@ class TestGemDependencyResolver < Gem::TestCase
p1 = make_dep "b", "> 0"
p2 = make_dep "d", "> 0"
- r = Gem::DependencyResolver.new([p1, p2], s)
+ r = Gem::Resolver.new([p1, p2], s)
assert_resolves_to [b1, c1, d2], r
end
def test_select_local_platforms
- r = Gem::DependencyResolver.new nil, nil
+ r = Gem::Resolver.new nil, nil
a1 = util_spec 'a', 1
a1_p1 = util_spec 'a', 1 do |s| s.platform = Gem::Platform.local end
@@ -526,7 +521,7 @@ class TestGemDependencyResolver < Gem::TestCase
ad = make_dep "a", "= 1"
- r = Gem::DependencyResolver.new([ad], set(a1))
+ r = Gem::Resolver.new([ad], set(a1))
e = assert_raises Gem::UnsatisfiableDepedencyError do
r.resolve
diff --git a/test/rubygems/test_gem_dependency_resolver_activation_request.rb b/test/rubygems/test_gem_resolver_activation_request.rb
index ac554d128c..54de6bf16a 100644
--- a/test/rubygems/test_gem_dependency_resolver_activation_request.rb
+++ b/test/rubygems/test_gem_resolver_activation_request.rb
@@ -1,11 +1,11 @@
require 'rubygems/test_case'
-class TestGemDependencyResolverActivationRequest < Gem::TestCase
+class TestGemResolverActivationRequest < Gem::TestCase
def setup
super
- @DR = Gem::DependencyResolver
+ @DR = Gem::Resolver
@dep = @DR::DependencyRequest.new dep('a', '>= 0'), nil
@@ -36,7 +36,7 @@ class TestGemDependencyResolverActivationRequest < Gem::TestCase
end
def test_installed_eh
- v_spec = Gem::DependencyResolver::VendorSpecification.new nil, @a3
+ v_spec = Gem::Resolver::VendorSpecification.new nil, @a3
@req = @DR::ActivationRequest.new v_spec, @dep, [@a1, @a2]
diff --git a/test/rubygems/test_gem_dependency_resolver_api_set.rb b/test/rubygems/test_gem_resolver_api_set.rb
index ef99b6ca7f..976d861cdf 100644
--- a/test/rubygems/test_gem_dependency_resolver_api_set.rb
+++ b/test/rubygems/test_gem_resolver_api_set.rb
@@ -1,12 +1,11 @@
require 'rubygems/test_case'
-require 'rubygems/dependency_resolver'
-class TestGemDependencyResolverAPISet < Gem::TestCase
+class TestGemResolverAPISet < Gem::TestCase
def setup
super
- @DR = Gem::DependencyResolver
+ @DR = Gem::Resolver
end
def test_initialize
diff --git a/test/rubygems/test_gem_dependency_resolver_api_specification.rb b/test/rubygems/test_gem_resolver_api_specification.rb
index cdbecec822..e61d30c7c6 100644
--- a/test/rubygems/test_gem_dependency_resolver_api_specification.rb
+++ b/test/rubygems/test_gem_resolver_api_specification.rb
@@ -1,10 +1,9 @@
require 'rubygems/test_case'
-require 'rubygems/dependency_resolver'
-class TestGemDependencyResolverAPISpecification < Gem::TestCase
+class TestGemResolverAPISpecification < Gem::TestCase
def test_initialize
- set = Gem::DependencyResolver::APISet.new
+ set = Gem::Resolver::APISet.new
data = {
:name => 'rails',
:number => '3.0.3',
@@ -15,7 +14,7 @@ class TestGemDependencyResolverAPISpecification < Gem::TestCase
],
}
- spec = Gem::DependencyResolver::APISpecification.new set, data
+ spec = Gem::Resolver::APISpecification.new set, data
assert_equal 'rails', spec.name
assert_equal Gem::Version.new('3.0.3'), spec.version
diff --git a/test/rubygems/test_gem_dependency_resolver_best_set.rb b/test/rubygems/test_gem_resolver_best_set.rb
index 20fbf4514f..5bcff4aca7 100644
--- a/test/rubygems/test_gem_dependency_resolver_best_set.rb
+++ b/test/rubygems/test_gem_resolver_best_set.rb
@@ -1,12 +1,11 @@
require 'rubygems/test_case'
-require 'rubygems/dependency_resolver'
-class TestGemDependencyResolverBestSet < Gem::TestCase
+class TestGemResolverBestSet < Gem::TestCase
def setup
super
- @DR = Gem::DependencyResolver
+ @DR = Gem::Resolver
end
def test_find_all_index
diff --git a/test/rubygems/test_gem_dependency_resolver_dependency_conflict.rb b/test/rubygems/test_gem_resolver_conflict.rb
index 68e17f8a98..3ae2a7cf5f 100644
--- a/test/rubygems/test_gem_dependency_resolver_dependency_conflict.rb
+++ b/test/rubygems/test_gem_resolver_conflict.rb
@@ -1,7 +1,10 @@
require 'rubygems/test_case'
-require 'rubygems/dependency_resolver'
-class TestGemDependencyResolverDependencyConflict < Gem::TestCase
+class TestGemResolverConflict < Gem::TestCase
+
+ def test_self_compatibility
+ assert_same Gem::Resolver::Conflict, Gem::Resolver::DependencyConflict
+ end
def test_explanation
root =
@@ -10,7 +13,7 @@ class TestGemDependencyResolverDependencyConflict < Gem::TestCase
dependency_request dep('net-ssh', '>= 2.6.5'), 'net-ssh', '2.2.2', root
conflict =
- Gem::DependencyResolver::DependencyConflict.new child, child.requester
+ Gem::Resolver::Conflict.new child, child.requester
expected = <<-EXPECTED
Activated net-ssh-2.2.2 instead of (>= 2.6.5) via:
@@ -21,7 +24,7 @@ class TestGemDependencyResolverDependencyConflict < Gem::TestCase
end
def test_explanation_user_request
- @DR = Gem::DependencyResolver
+ @DR = Gem::Resolver
spec = util_spec 'a', 2
@@ -30,7 +33,7 @@ class TestGemDependencyResolverDependencyConflict < Gem::TestCase
activated = @DR::ActivationRequest.new spec, a2_req
- conflict = @DR::DependencyConflict.new a1_req, activated
+ conflict = @DR::Conflict.new a1_req, activated
expected = <<-EXPECTED
Activated a-2 instead of (= 1) via:
@@ -47,7 +50,7 @@ class TestGemDependencyResolverDependencyConflict < Gem::TestCase
dependency_request dep('net-ssh', '>= 2.6.5'), 'net-ssh', '2.2.2', root
conflict =
- Gem::DependencyResolver::DependencyConflict.new child, nil
+ Gem::Resolver::Conflict.new child, nil
assert_equal %w[net-ssh-2.2.2 rye-0.9.8], conflict.request_path
end
diff --git a/test/rubygems/test_gem_dependency_resolver_dependency_request.rb b/test/rubygems/test_gem_resolver_dependency_request.rb
index f5b3a6960e..e1a98826fb 100644
--- a/test/rubygems/test_gem_dependency_resolver_dependency_request.rb
+++ b/test/rubygems/test_gem_resolver_dependency_request.rb
@@ -1,11 +1,11 @@
require 'rubygems/test_case'
-class TestGemDependencyResolverDependencyRequest < Gem::TestCase
+class TestGemResolverDependencyRequest < Gem::TestCase
def setup
super
- @DR = Gem::DependencyResolver::DependencyRequest
+ @DR = Gem::Resolver::DependencyRequest
end
def test_requirement
diff --git a/test/rubygems/test_gem_resolver_git_set.rb b/test/rubygems/test_gem_resolver_git_set.rb
new file mode 100644
index 0000000000..6943df9ec8
--- /dev/null
+++ b/test/rubygems/test_gem_resolver_git_set.rb
@@ -0,0 +1,84 @@
+require 'rubygems/test_case'
+
+class TestGemResolverGitSet < Gem::TestCase
+
+ def setup
+ super
+
+ @set = Gem::Resolver::GitSet.new
+
+ @reqs = Gem::Resolver::RequirementList.new
+ end
+
+ def test_add_git_gem
+ name, version, repository, = git_gem
+
+ @set.add_git_gem name, repository, 'master', false
+
+ dependency = dep 'a'
+
+ specs = @set.find_all dependency
+
+ assert_equal "#{name}-#{version}", specs.first.full_name
+
+ refute @set.need_submodules[repository]
+ end
+
+ def test_add_git_gem_submodules
+ name, _, repository, = git_gem
+
+ @set.add_git_gem name, repository, 'master', true
+
+ dependency = dep 'a'
+
+ refute_empty @set.find_all dependency
+
+ assert @set.need_submodules[repository]
+ end
+
+ def test_find_all
+ name, _, repository, = git_gem
+
+ @set.add_git_gem name, repository, 'master', false
+
+ dependency = dep 'a', '~> 1.0'
+ req = Gem::Resolver::ActivationRequest.new dependency, nil
+ @reqs.add req
+
+ @set.prefetch @reqs
+
+ found = @set.find_all dependency
+
+ assert_equal [@set.specs['a']], found
+ end
+
+ def test_prefetch
+ name, _, repository, = git_gem
+
+ @set.add_git_gem name, repository, 'master', false
+
+ dependency = dep name
+ req = Gem::Resolver::ActivationRequest.new dependency, nil
+ @reqs.add req
+
+ @set.prefetch @reqs
+
+ refute_empty @set.specs
+ end
+
+ def test_prefetch_filter
+ name, _, repository, = git_gem
+
+ @set.add_git_gem name, repository, 'master', false
+
+ dependency = dep 'b'
+ req = Gem::Resolver::ActivationRequest.new dependency, nil
+ @reqs.add req
+
+ @set.prefetch @reqs
+
+ assert_empty @set.specs
+ end
+
+end
+
diff --git a/test/rubygems/test_gem_resolver_git_specification.rb b/test/rubygems/test_gem_resolver_git_specification.rb
new file mode 100644
index 0000000000..f961a7709a
--- /dev/null
+++ b/test/rubygems/test_gem_resolver_git_specification.rb
@@ -0,0 +1,36 @@
+require 'rubygems/test_case'
+
+class TestGemResolverGitSpecification < Gem::TestCase
+
+ def setup
+ super
+
+ @set = Gem::Resolver::GitSet.new
+ @spec = Gem::Specification.new 'a', 1
+ end
+
+ def test_equals2
+ g_spec_a = Gem::Resolver::GitSpecification.new @set, @spec
+
+ assert_equal g_spec_a, g_spec_a
+
+ spec_b = Gem::Specification.new 'b', 1
+ g_spec_b = Gem::Resolver::GitSpecification.new @set, spec_b
+
+ refute_equal g_spec_a, g_spec_b
+
+ g_set = Gem::Resolver::GitSet.new
+ g_spec_s = Gem::Resolver::GitSpecification.new g_set, @spec
+
+ refute_equal g_spec_a, g_spec_s
+
+ i_set = Gem::Resolver::IndexSet.new
+ source = Gem::Source.new @gem_repo
+ i_spec = Gem::Resolver::IndexSpecification.new(
+ i_set, 'a', v(1), source, Gem::Platform::RUBY)
+
+ refute_equal g_spec_a, i_spec
+ end
+
+end
+
diff --git a/test/rubygems/test_gem_dependency_resolver_index_set.rb b/test/rubygems/test_gem_resolver_index_set.rb
index 83b7cce501..137e9b5cac 100644
--- a/test/rubygems/test_gem_dependency_resolver_index_set.rb
+++ b/test/rubygems/test_gem_resolver_index_set.rb
@@ -1,12 +1,11 @@
require 'rubygems/test_case'
-require 'rubygems/dependency_resolver'
-class TestGemDependencyResolverIndexSet < Gem::TestCase
+class TestGemResolverIndexSet < Gem::TestCase
def setup
super
- @DR = Gem::DependencyResolver
+ @DR = Gem::Resolver
end
def test_initialize
diff --git a/test/rubygems/test_gem_dependency_resolver_index_specification.rb b/test/rubygems/test_gem_resolver_index_specification.rb
index 751ed34db3..ef474ab2d4 100644
--- a/test/rubygems/test_gem_dependency_resolver_index_specification.rb
+++ b/test/rubygems/test_gem_resolver_index_specification.rb
@@ -1,15 +1,14 @@
require 'rubygems/test_case'
-require 'rubygems/dependency_resolver'
require 'rubygems/available_set'
-class TestGemDependencyResolverIndexSpecification < Gem::TestCase
+class TestGemResolverIndexSpecification < Gem::TestCase
def test_initialize
- set = Gem::DependencyResolver::IndexSet.new
+ set = Gem::Resolver::IndexSet.new
source = Gem::Source.new @gem_repo
version = Gem::Version.new '3.0.3'
- spec = Gem::DependencyResolver::IndexSpecification.new(
+ spec = Gem::Resolver::IndexSpecification.new(
set, 'rails', version, source, Gem::Platform::RUBY)
assert_equal 'rails', spec.name
@@ -20,11 +19,11 @@ class TestGemDependencyResolverIndexSpecification < Gem::TestCase
end
def test_initialize_platform
- set = Gem::DependencyResolver::IndexSet.new
+ set = Gem::Resolver::IndexSet.new
source = Gem::Source::Local.new
version = Gem::Version.new '3.0.3'
- spec = Gem::DependencyResolver::IndexSpecification.new(
+ spec = Gem::Resolver::IndexSpecification.new(
set, 'rails', version, source, Gem::Platform.local)
assert_equal Gem::Platform.local.to_s, spec.platform
@@ -39,8 +38,8 @@ class TestGemDependencyResolverIndexSpecification < Gem::TestCase
source = Gem::Source.new @gem_repo
version = v 2
- set = Gem::DependencyResolver::IndexSet.new
- i_spec = Gem::DependencyResolver::IndexSpecification.new \
+ set = Gem::Resolver::IndexSet.new
+ i_spec = Gem::Resolver::IndexSpecification.new \
set, 'a', version, source, Gem::Platform.local
spec = i_spec.spec
@@ -53,10 +52,10 @@ class TestGemDependencyResolverIndexSpecification < Gem::TestCase
Gem::Package.build a_2_p
source = Gem::Source::Local.new
- set = Gem::DependencyResolver::InstallerSet.new :local
+ set = Gem::Resolver::InstallerSet.new :local
set.always_install << a_2_p
- i_spec = Gem::DependencyResolver::IndexSpecification.new \
+ i_spec = Gem::Resolver::IndexSpecification.new \
set, 'a', v(2), source, Gem::Platform.local
spec = i_spec.spec
diff --git a/test/rubygems/test_gem_dependency_resolver_installed_specification.rb b/test/rubygems/test_gem_resolver_installed_specification.rb
index e1f4262e4b..f9dda29a6c 100644
--- a/test/rubygems/test_gem_dependency_resolver_installed_specification.rb
+++ b/test/rubygems/test_gem_resolver_installed_specification.rb
@@ -1,14 +1,13 @@
require 'rubygems/test_case'
-require 'rubygems/dependency_resolver'
-class TestGemDependencyResolverInstalledSpecification < Gem::TestCase
+class TestGemResolverInstalledSpecification < Gem::TestCase
def test_initialize
- set = Gem::DependencyResolver::CurrentSet.new
+ set = Gem::Resolver::CurrentSet.new
source_spec = util_spec 'a'
- spec = Gem::DependencyResolver::InstalledSpecification.new set, source_spec
+ spec = Gem::Resolver::InstalledSpecification.new set, source_spec
assert_equal 'a', spec.name
assert_equal Gem::Version.new(2), spec.version
diff --git a/test/rubygems/test_gem_dependency_resolver_installer_set.rb b/test/rubygems/test_gem_resolver_installer_set.rb
index 6341c6bc73..af4db646a9 100644
--- a/test/rubygems/test_gem_dependency_resolver_installer_set.rb
+++ b/test/rubygems/test_gem_resolver_installer_set.rb
@@ -1,7 +1,6 @@
require 'rubygems/test_case'
-require 'rubygems/dependency_resolver'
-class TestGemDependencyResolverInstallerSet < Gem::TestCase
+class TestGemResolverInstallerSet < Gem::TestCase
def test_load_spec
specs = spec_fetcher do |fetcher|
@@ -12,7 +11,7 @@ class TestGemDependencyResolverInstallerSet < Gem::TestCase
source = Gem::Source.new @gem_repo
version = v 2
- set = Gem::DependencyResolver::InstallerSet.new :remote
+ set = Gem::Resolver::InstallerSet.new :remote
spec = set.load_spec 'a', version, Gem::Platform.local, source
diff --git a/test/rubygems/test_gem_dependency_resolver_lock_set.rb b/test/rubygems/test_gem_resolver_lock_set.rb
index 6142f2b8d0..71b28efd4f 100644
--- a/test/rubygems/test_gem_dependency_resolver_lock_set.rb
+++ b/test/rubygems/test_gem_resolver_lock_set.rb
@@ -1,14 +1,13 @@
require 'rubygems/test_case'
-require 'rubygems/dependency_resolver'
-class TestGemDependencyResolverLockSet < Gem::TestCase
+class TestGemResolverLockSet < Gem::TestCase
def setup
super
@source = Gem::Source.new @gem_repo
- @set = Gem::DependencyResolver::LockSet.new @source
+ @set = Gem::Resolver::LockSet.new @source
end
def test_add
diff --git a/test/rubygems/test_gem_resolver_requirement_list.rb b/test/rubygems/test_gem_resolver_requirement_list.rb
new file mode 100644
index 0000000000..3d09ce5f92
--- /dev/null
+++ b/test/rubygems/test_gem_resolver_requirement_list.rb
@@ -0,0 +1,19 @@
+require 'rubygems/test_case'
+
+class TestGemResolverRequirementList < Gem::TestCase
+
+ def setup
+ super
+
+ @list = Gem::Resolver::RequirementList.new
+ end
+
+ def test_each
+ @list.add 1
+ @list.add 2
+
+ assert_equal [1, 2], @list.each.to_a
+ end
+
+end
+
diff --git a/test/rubygems/test_gem_dependency_resolver_vendor_set.rb b/test/rubygems/test_gem_resolver_vendor_set.rb
index 227cf369c8..58519fbf14 100644
--- a/test/rubygems/test_gem_dependency_resolver_vendor_set.rb
+++ b/test/rubygems/test_gem_resolver_vendor_set.rb
@@ -1,12 +1,11 @@
require 'rubygems/test_case'
-require 'rubygems/dependency_resolver'
-class TestGemDependencyResolverVendorSet < Gem::TestCase
+class TestGemResolverVendorSet < Gem::TestCase
def setup
super
- @set = Gem::DependencyResolver::VendorSet.new
+ @set = Gem::Resolver::VendorSet.new
end
def test_add_vendor_gem
@@ -39,7 +38,7 @@ class TestGemDependencyResolverVendorSet < Gem::TestCase
dependency = dep 'a', '~> 1'
- req = Gem::DependencyResolver::DependencyRequest.new dependency, nil
+ req = Gem::Resolver::DependencyRequest.new dependency, nil
found = @set.find_all req
@@ -48,7 +47,7 @@ class TestGemDependencyResolverVendorSet < Gem::TestCase
source = Gem::Source::Vendor.new directory
expected = [
- Gem::DependencyResolver::VendorSpecification.new(@set, spec, source)
+ Gem::Resolver::VendorSpecification.new(@set, spec, source)
]
assert_equal expected, found
diff --git a/test/rubygems/test_gem_resolver_vendor_specification.rb b/test/rubygems/test_gem_resolver_vendor_specification.rb
new file mode 100644
index 0000000000..d7aca569e2
--- /dev/null
+++ b/test/rubygems/test_gem_resolver_vendor_specification.rb
@@ -0,0 +1,71 @@
+require 'rubygems/test_case'
+
+class TestGemResolverVendorSpecification < Gem::TestCase
+
+ def setup
+ super
+
+ @set = Gem::Resolver::VendorSet.new
+ @spec = Gem::Specification.new 'a', 1
+ end
+
+ def test_equals2
+ v_spec_a = Gem::Resolver::VendorSpecification.new @set, @spec
+
+ assert_equal v_spec_a, v_spec_a
+
+ spec_b = Gem::Specification.new 'b', 1
+ v_spec_b = Gem::Resolver::VendorSpecification.new @set, spec_b
+
+ refute_equal v_spec_a, v_spec_b
+
+ v_set = Gem::Resolver::VendorSet.new
+ v_spec_s = Gem::Resolver::VendorSpecification.new v_set, @spec
+
+ refute_equal v_spec_a, v_spec_s
+
+ i_set = Gem::Resolver::IndexSet.new
+ source = Gem::Source.new @gem_repo
+ i_spec = Gem::Resolver::IndexSpecification.new(
+ i_set, 'a', v(1), source, Gem::Platform::RUBY)
+
+ refute_equal v_spec_a, i_spec
+ end
+
+ def test_dependencies
+ @spec.add_dependency 'b'
+ @spec.add_dependency 'c'
+
+ v_spec = Gem::Resolver::VendorSpecification.new @set, @spec
+
+ assert_equal [dep('b'), dep('c')], v_spec.dependencies
+ end
+
+ def test_full_name
+ v_spec = Gem::Resolver::VendorSpecification.new @set, @spec
+
+ assert_equal 'a-1', v_spec.full_name
+ end
+
+ def test_name
+ v_spec = Gem::Resolver::VendorSpecification.new @set, @spec
+
+ assert_equal 'a', v_spec.name
+ end
+
+ def test_platform
+ v_spec = Gem::Resolver::VendorSpecification.new @set, @spec
+
+ assert_equal Gem::Platform::RUBY, v_spec.platform
+ end
+
+ def test_version
+ spec = Gem::Specification.new 'a', 1
+
+ v_spec = Gem::Resolver::VendorSpecification.new @set, spec
+
+ assert_equal v(1), v_spec.version
+ end
+
+end
+
diff --git a/test/rubygems/test_gem_source.rb b/test/rubygems/test_gem_source.rb
index 3ed40a625a..d207bcac7f 100644
--- a/test/rubygems/test_gem_source.rb
+++ b/test/rubygems/test_gem_source.rb
@@ -44,13 +44,13 @@ class TestGemSource < Gem::TestCase
set = @source.dependency_resolver_set
- assert_kind_of Gem::DependencyResolver::APISet, set
+ assert_kind_of Gem::Resolver::APISet, set
end
def test_dependency_resolver_set_marshal_api
set = @source.dependency_resolver_set
- assert_kind_of Gem::DependencyResolver::IndexSet, set
+ assert_kind_of Gem::Resolver::IndexSet, set
end
def test_fetch_spec
diff --git a/test/rubygems/test_gem_source_git.rb b/test/rubygems/test_gem_source_git.rb
new file mode 100644
index 0000000000..78c415a9d3
--- /dev/null
+++ b/test/rubygems/test_gem_source_git.rb
@@ -0,0 +1,153 @@
+require 'rubygems/test_case'
+require 'rubygems/source'
+
+class TestGemSourceGit < Gem::TestCase
+
+ def setup
+ super
+
+ @name, @version, @repository, @head = git_gem
+
+ @hash = Digest::SHA1.hexdigest @repository
+
+ @source = Gem::Source::Git.new @name, @repository, 'master', false
+ end
+
+ def test_checkout
+ @source.checkout
+
+ assert_path_exists File.join @source.install_dir, 'a.gemspec'
+ end
+
+ def test_checkout_submodules
+ source = Gem::Source::Git.new @name, @repository, 'master', true
+
+ git_gem 'b'
+
+ Dir.chdir 'git/a' do
+ system @git, 'submodule', '--quiet', 'add', File.expand_path('../b'), 'b'
+ system @git, 'commit', '--quiet', '-m', 'add submodule b'
+ end
+
+ source.checkout
+
+ assert_path_exists File.join source.install_dir, 'a.gemspec'
+ assert_path_exists File.join source.install_dir, 'b/b.gemspec'
+ end
+
+ def test_cache
+ assert @source.cache
+
+ assert_path_exists @source.repo_cache_dir
+
+ Dir.chdir @source.repo_cache_dir do
+ assert_equal @head, Gem::Util.popen(@git, 'rev-parse', 'master').strip
+ end
+ end
+
+ def test_dir_shortref
+ @source.cache
+
+ assert_equal @head[0..11], @source.dir_shortref
+ end
+
+ def test_equals2
+ assert_equal @source, @source
+
+ assert_equal @source, @source.dup
+
+ source =
+ Gem::Source::Git.new @source.name, @source.repository, 'other', false
+
+ refute_equal @source, source
+
+ source =
+ Gem::Source::Git.new @source.name, 'repo/other', @source.reference, false
+
+ refute_equal @source, source
+
+ source =
+ Gem::Source::Git.new 'b', @source.repository, @source.reference, false
+
+ refute_equal @source, source
+
+ source =
+ Gem::Source::Git.new @source.name, @source.repository, @source.reference,
+ true
+
+ refute_equal @source, source
+ end
+
+ def test_load_spec
+ spec = @source.load_spec @name
+
+ assert_equal "#{@name}-#{@version}", spec.full_name
+ end
+
+ def test_install_dir
+ @source.cache
+
+ expected = File.join Gem.dir, 'bundler', 'gems', "a-#{@head[0..11]}"
+
+ assert_equal expected, @source.install_dir
+ end
+
+ def test_repo_cache_dir
+ expected =
+ File.join Gem.dir, 'cache', 'bundler', 'git', "a-#{@hash}"
+
+ assert_equal expected, @source.repo_cache_dir
+ end
+
+ def test_rev_parse
+ @source.cache
+
+ assert_equal @head, @source.rev_parse
+
+ Dir.chdir @repository do
+ system @git, 'checkout', '--quiet', '-b', 'other'
+ end
+
+ master_head = @head
+
+ git_gem 'a', 2
+
+ source = Gem::Source::Git.new @name, @repository, 'other', false
+
+ source.cache
+
+ refute_equal master_head, source.rev_parse
+ end
+
+ def test_spaceship
+ git = Gem::Source::Git.new 'a', 'git/a', 'master', false
+ remote = Gem::Source.new @gem_repo
+ installed = Gem::Source::Installed.new
+
+ assert_equal( 0, git. <=>(git), 'git <=> git')
+
+ assert_equal( 1, git. <=>(remote), 'git <=> remote')
+ assert_equal(-1, remote. <=>(git), 'remote <=> git')
+
+ assert_equal( 1, installed.<=>(git), 'installed <=> git')
+ assert_equal(-1, git. <=>(installed), 'git <=> installed')
+ end
+
+ def test_uri_hash
+ assert_equal @hash, @source.uri_hash
+
+ source =
+ Gem::Source::Git.new 'a', 'http://git@example/repo.git', 'master', false
+
+ assert_equal '291c4caac7feba8bb64c297987028acb3dde6cfe',
+ source.uri_hash
+
+ source =
+ Gem::Source::Git.new 'a', 'HTTP://git@EXAMPLE/repo.git', 'master', false
+
+ assert_equal '291c4caac7feba8bb64c297987028acb3dde6cfe',
+ source.uri_hash
+ end
+
+end
+
diff --git a/test/rubygems/test_gem_source_vendor.rb b/test/rubygems/test_gem_source_vendor.rb
index 17403a1fc8..3f4121e5f6 100644
--- a/test/rubygems/test_gem_source_vendor.rb
+++ b/test/rubygems/test_gem_source_vendor.rb
@@ -9,5 +9,19 @@ class TestGemSourceVendor < Gem::TestCase
assert_equal 'vendor/foo', source.uri
end
+ def test_spaceship
+ vendor = Gem::Source::Vendor.new 'vendor/foo'
+ remote = Gem::Source.new @gem_repo
+ installed = Gem::Source::Installed.new
+
+ assert_equal( 0, vendor. <=>(vendor), 'vendor <=> vendor')
+
+ assert_equal( 1, vendor. <=>(remote), 'vendor <=> remote')
+ assert_equal(-1, remote. <=>(vendor), 'remote <=> vendor')
+
+ assert_equal( 1, vendor. <=>(installed), 'vendor <=> installed')
+ assert_equal(-1, installed.<=>(vendor), 'installed <=> vendor')
+ end
+
end
diff --git a/test/rubygems/test_gem_specification.rb b/test/rubygems/test_gem_specification.rb
index 75ea4092b7..3924191db9 100644
--- a/test/rubygems/test_gem_specification.rb
+++ b/test/rubygems/test_gem_specification.rb
@@ -1733,7 +1733,7 @@ dependencies: []
full_gem_path = Pathname(@ext.full_gem_path)
relative_install_dir = ext_install_dir.relative_path_from full_gem_path
- assert_equal ['lib', relative_install_dir.to_s], @ext.require_paths
+ assert_equal [relative_install_dir.to_s, 'lib'], @ext.require_paths
ensure
RbConfig::CONFIG['ENABLE_SHARED'] = enable_shared
end
@@ -1744,8 +1744,8 @@ dependencies: []
@ext.require_path = 'lib'
expected = [
- File.join(@gemhome, 'gems', @ext.original_name, 'lib'),
@ext.extension_install_dir,
+ File.join(@gemhome, 'gems', @ext.original_name, 'lib'),
]
assert_equal expected, @ext.full_require_paths
diff --git a/test/rubygems/test_gem_stub_specification.rb b/test/rubygems/test_gem_stub_specification.rb
index bb04fb4dcc..50621e28ae 100644
--- a/test/rubygems/test_gem_stub_specification.rb
+++ b/test/rubygems/test_gem_stub_specification.rb
@@ -31,7 +31,7 @@ class TestStubSpecification < Gem::TestCase
assert_equal 'stub_e', stub.name
assert_equal v(2), stub.version
assert_equal Gem::Platform::RUBY, stub.platform
- assert_equal ['lib', relative_install_dir], stub.require_paths
+ assert_equal [relative_install_dir, 'lib'], stub.require_paths
assert_equal %w[ext/stub_e/extconf.rb], stub.extensions
end
@@ -78,8 +78,8 @@ class TestStubSpecification < Gem::TestCase
stub = stub_with_extension
expected = [
- File.join(stub.full_gem_path, 'lib'),
stub.extension_install_dir,
+ File.join(stub.full_gem_path, 'lib'),
]
assert_equal expected, stub.full_require_paths
diff --git a/test/rubygems/test_gem_util.rb b/test/rubygems/test_gem_util.rb
new file mode 100644
index 0000000000..bf67b14d38
--- /dev/null
+++ b/test/rubygems/test_gem_util.rb
@@ -0,0 +1,11 @@
+require 'rubygems/test_case'
+require 'rubygems/util'
+
+class TestGemUtil < Gem::TestCase
+
+ def test_class_popen
+ assert_equal "0\n", Gem::Util.popen(Gem.ruby, '-e', 'p 0')
+ end
+
+end
+