tests: test FormulaClassUnavailableError
Closes #101. Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
This commit is contained in:
parent
94a627d7aa
commit
144d86f733
@ -37,6 +37,25 @@ class ExceptionsTest < Homebrew::TestCase
|
||||
TapFormulaUnavailableError.new(t, "foo").to_s
|
||||
end
|
||||
|
||||
def test_formula_class_unavailable_error
|
||||
mod = Module.new
|
||||
mod.module_eval <<-EOS.undent
|
||||
class Bar < Requirement; end
|
||||
class Baz < Formula; end
|
||||
EOS
|
||||
|
||||
assert_match "Expected to find class Foo, but found no classes.",
|
||||
FormulaClassUnavailableError.new("foo", "foo.rb", "Foo", []).to_s
|
||||
|
||||
list = [mod.const_get(:Bar)]
|
||||
assert_match "Expected to find class Foo, but only found: Bar (not derived from Formula!).",
|
||||
FormulaClassUnavailableError.new("foo", "foo.rb", "Foo", list).to_s
|
||||
|
||||
list = [mod.const_get(:Baz)]
|
||||
assert_match "Expected to find class Foo, but only found: Baz.",
|
||||
FormulaClassUnavailableError.new("foo", "foo.rb", "Foo", list).to_s
|
||||
end
|
||||
|
||||
def test_tap_unavailable_error
|
||||
assert_equal "No available tap foo.\n", TapUnavailableError.new("foo").to_s
|
||||
end
|
||||
|
||||
@ -54,6 +54,16 @@ class FormularyFactoryTest < Homebrew::TestCase
|
||||
assert_raises(FormulaUnavailableError) { Formulary.factory("not_existed_formula") }
|
||||
end
|
||||
|
||||
def test_formula_class_unavailable_error
|
||||
name = "giraffe"
|
||||
path = CoreTap.new.formula_dir/"#{name}.rb"
|
||||
path.write "class Wrong#{Formulary.class_s(name)} < Formula\nend\n"
|
||||
|
||||
assert_raises(FormulaClassUnavailableError) { Formulary.factory(name) }
|
||||
ensure
|
||||
path.unlink
|
||||
end
|
||||
|
||||
def test_factory_from_path
|
||||
assert_kind_of Formula, Formulary.factory(@path)
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user