diff options
Diffstat (limited to 'jni/ruby/test/rubygems/test_gem_resolver_specification.rb')
-rw-r--r-- | jni/ruby/test/rubygems/test_gem_resolver_specification.rb | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/jni/ruby/test/rubygems/test_gem_resolver_specification.rb b/jni/ruby/test/rubygems/test_gem_resolver_specification.rb new file mode 100644 index 0000000..e1ec68a --- /dev/null +++ b/jni/ruby/test/rubygems/test_gem_resolver_specification.rb @@ -0,0 +1,64 @@ +require 'rubygems/test_case' + +class TestGemResolverSpecification < Gem::TestCase + + class TestSpec < Gem::Resolver::Specification + attr_writer :source + attr_reader :spec + + def initialize spec + super() + + @spec = spec + end + end + + def test_install + gemhome = "#{@gemhome}2" + spec_fetcher do |fetcher| + fetcher.gem 'a', 1 + end + + a = util_spec 'a', 1 + + a_spec = TestSpec.new a + a_spec.source = Gem::Source.new @gem_repo + + a_spec.install :install_dir => gemhome + + assert_path_exists File.join gemhome, 'gems', a.full_name + + expected = File.join gemhome, 'specifications', a.spec_name + + assert_equal expected, a_spec.spec.loaded_from + end + + def test_installable_platform_eh + a = util_spec 'a', 1 + + a_spec = TestSpec.new a + + assert a_spec.installable_platform? + + b = util_spec 'a', 1 do |s| + s.platform = Gem::Platform.new %w[cpu other_platform 1] + end + + b_spec = TestSpec.new b + + refute b_spec.installable_platform? + end + + def test_source + a = util_spec 'a', 1 + + source = Gem::Source.new @gem_repo + + a_spec = TestSpec.new a + a_spec.source = source + + assert_equal source, a_spec.source + end + +end + |