2013-04-02 15:33:34 -05:00
|
|
|
require 'testing_env'
|
2013-04-02 15:33:35 -05:00
|
|
|
require 'requirements/language_module_dependency'
|
|
|
|
|
2013-04-02 15:33:34 -05:00
|
|
|
class LanguageModuleDependencyTests < Test::Unit::TestCase
|
|
|
|
def assert_deps_fail(spec)
|
|
|
|
l = LanguageModuleDependency.new(*spec.shift.reverse)
|
|
|
|
assert !l.satisfied?
|
|
|
|
end
|
|
|
|
|
|
|
|
def assert_deps_pass(spec)
|
|
|
|
l = LanguageModuleDependency.new(*spec.shift.reverse)
|
|
|
|
assert l.satisfied?
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_unique_deps_are_not_eql
|
|
|
|
x = LanguageModuleDependency.new(:node, "less")
|
|
|
|
y = LanguageModuleDependency.new(:node, "coffee-script")
|
|
|
|
assert x.hash != y.hash
|
|
|
|
assert !x.eql?(y)
|
|
|
|
assert !y.eql?(x)
|
|
|
|
end
|
|
|
|
|
2013-04-02 15:41:51 -05:00
|
|
|
def test_differing_module_and_import_name
|
|
|
|
mod_name = "foo"
|
|
|
|
import_name = "bar"
|
|
|
|
l = LanguageModuleDependency.new(:python, mod_name, import_name)
|
|
|
|
assert l.message.include?(mod_name)
|
|
|
|
assert l.the_test.one? { |c| c.include?(import_name) }
|
|
|
|
end
|
|
|
|
|
2013-04-02 15:33:34 -05:00
|
|
|
def test_bad_perl_deps
|
|
|
|
assert_deps_fail "notapackage" => :perl
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_good_perl_deps
|
|
|
|
assert_deps_pass "ENV" => :perl
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_bad_python_deps
|
|
|
|
assert_deps_fail "notapackage" => :python
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_good_python_deps
|
|
|
|
assert_deps_pass "datetime" => :python
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_bad_ruby_deps
|
|
|
|
assert_deps_fail "notapackage" => :ruby
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_good_ruby_deps
|
|
|
|
assert_deps_pass "date" => :ruby
|
|
|
|
end
|
|
|
|
|
|
|
|
if which("rbx")
|
|
|
|
def test_bad_rubinius_deps
|
|
|
|
assert_deps_fail "notapackage" => :rbx
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_good_rubinius_deps
|
|
|
|
assert_deps_pass "date" => :rbx
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
if which("csc")
|
|
|
|
def test_bad_chicken_deps
|
|
|
|
assert_deps_fail "notapackage" => :chicken
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_good_chicken_deps
|
|
|
|
assert_deps_pass "extras" => :chicken
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
if which("node")
|
|
|
|
def test_bad_node_deps
|
|
|
|
assert_deps_fail "notapackage" => :node
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_good_node_deps
|
|
|
|
assert_deps_pass "util" => :node
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|