1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
|
# frozen_string_literal: true
require_relative "helper"
class TestGemResolverAPISpecification < Gem::TestCase
def test_initialize
set = Gem::Resolver::APISet.new
data = {
name: "rails",
number: "3.0.3",
platform: Gem::Platform.local.to_s,
dependencies: [
["bundler", "~> 1.0"],
["railties", "= 3.0.3"],
],
}
spec = Gem::Resolver::APISpecification.new set, data
assert_equal "rails", spec.name
assert_equal Gem::Version.new("3.0.3"), spec.version
assert_equal Gem::Platform.local, spec.platform
expected = [
Gem::Dependency.new("bundler", "~> 1.0"),
Gem::Dependency.new("railties", "= 3.0.3"),
]
assert_equal expected, spec.dependencies
end
def test_fetch_development_dependencies
specs = spec_fetcher do |fetcher|
fetcher.spec "rails", "3.0.3" do |s|
s.add_runtime_dependency "bundler", "~> 1.0"
s.add_runtime_dependency "railties", "= 3.0.3"
s.add_development_dependency "a", "= 1"
end
end
rails = specs["rails-3.0.3"]
repo = @gem_repo + "info"
set = Gem::Resolver::APISet.new repo
data = {
name: "rails",
number: "3.0.3",
platform: "ruby",
dependencies: [
["bundler", "~> 1.0"],
["railties", "= 3.0.3"],
],
}
util_setup_spec_fetcher rails
spec = Gem::Resolver::APISpecification.new set, data
spec.fetch_development_dependencies
expected = [
Gem::Dependency.new("bundler", "~> 1.0"),
Gem::Dependency.new("railties", "= 3.0.3"),
Gem::Dependency.new("a", "= 1", :development),
]
assert_equal expected, spec.dependencies
end
def test_installable_platform_eh
set = Gem::Resolver::APISet.new
data = {
name: "a",
number: "1",
platform: "ruby",
dependencies: [],
}
a_spec = Gem::Resolver::APISpecification.new set, data
assert a_spec.installable_platform?
data = {
name: "b",
number: "1",
platform: "cpu-other_platform-1",
dependencies: [],
}
b_spec = Gem::Resolver::APISpecification.new set, data
refute b_spec.installable_platform?
data = {
name: "c",
number: "1",
platform: Gem::Platform.local.to_s,
dependencies: [],
}
c_spec = Gem::Resolver::APISpecification.new set, data
assert c_spec.installable_platform?
end
def test_source
set = Gem::Resolver::APISet.new
data = {
name: "a",
number: "1",
platform: "ruby",
dependencies: [],
}
api_spec = Gem::Resolver::APISpecification.new set, data
assert_equal set.source, api_spec.source
end
def test_spec
spec_fetcher do |fetcher|
fetcher.spec "a", 1
end
dep_uri = Gem::URI(@gem_repo) + "info"
set = Gem::Resolver::APISet.new dep_uri
data = {
name: "a",
number: "1",
platform: "ruby",
dependencies: [],
}
api_spec = Gem::Resolver::APISpecification.new set, data
spec = api_spec.spec
assert_kind_of Gem::Specification, spec
assert_equal "a-1", spec.full_name
end
def test_spec_jruby_platform
spec_fetcher do |fetcher|
fetcher.gem "j", 1 do |spec|
spec.platform = "jruby"
end
end
dep_uri = Gem::URI(@gem_repo) + "info"
set = Gem::Resolver::APISet.new dep_uri
data = {
name: "j",
number: "1",
platform: "jruby",
dependencies: [],
}
api_spec = Gem::Resolver::APISpecification.new set, data
spec = api_spec.spec
assert_kind_of Gem::Specification, spec
assert_equal "j-1-java", spec.full_name
end
end
|