summaryrefslogtreecommitdiff
path: root/jni/ruby/test/rubygems/test_gem_resolver_git_specification.rb
diff options
context:
space:
mode:
Diffstat (limited to 'jni/ruby/test/rubygems/test_gem_resolver_git_specification.rb')
-rw-r--r--jni/ruby/test/rubygems/test_gem_resolver_git_specification.rb112
1 files changed, 112 insertions, 0 deletions
diff --git a/jni/ruby/test/rubygems/test_gem_resolver_git_specification.rb b/jni/ruby/test/rubygems/test_gem_resolver_git_specification.rb
new file mode 100644
index 0000000..a31674a
--- /dev/null
+++ b/jni/ruby/test/rubygems/test_gem_resolver_git_specification.rb
@@ -0,0 +1,112 @@
+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
+
+ def test_add_dependency
+ git_gem 'a', 1
+
+ git_spec = Gem::Resolver::GitSpecification.new @set, @spec
+
+ b_dep = dep 'b'
+
+ git_spec.add_dependency b_dep
+
+ assert_equal [b_dep], git_spec.dependencies
+ end
+
+ def test_install
+ git_gem 'a', 1
+
+ git_spec = Gem::Resolver::GitSpecification.new @set, @spec
+
+ called = false
+
+ git_spec.install({}) do |installer|
+ called = installer
+ end
+
+ assert called
+ end
+
+ # functional test for Gem::Ext::Builder
+
+ def test_install_extension
+ name, _, repository, = git_gem 'a', 1 do |s|
+ s.extensions << 'ext/extconf.rb'
+ end
+
+ Dir.chdir 'git/a' do
+ FileUtils.mkdir_p 'ext/lib'
+
+ open 'ext/extconf.rb', 'w' do |io|
+ io.puts 'require "mkmf"'
+ io.puts 'create_makefile "a"'
+ end
+
+ FileUtils.touch 'ext/lib/b.rb'
+
+ system @git, 'add', 'ext/extconf.rb'
+ system @git, 'add', 'ext/lib/b.rb'
+
+ system @git, 'commit', '--quiet', '-m', 'Add extension files'
+ end
+
+ source = Gem::Source::Git.new name, repository, 'master', true
+
+ spec = source.specs.first
+
+ git_spec = Gem::Resolver::GitSpecification.new @set, spec, source
+
+ git_spec.install({})
+
+ assert_path_exists File.join git_spec.spec.extension_dir, 'b.rb'
+ end
+
+ def test_install_installed
+ git_gem 'a', 1
+
+ git_spec = Gem::Resolver::GitSpecification.new @set, @spec
+
+ git_spec.install({})
+
+ called = false
+
+ git_spec.install({}) do |installer|
+ called = installer
+ end
+
+ assert called
+ end
+
+end
+