tests: test FormulaClassUnavailableError

Closes #101.

Signed-off-by: Martin Afanasjew <martin@afanasjew.de>
This commit is contained in:
Martin Afanasjew 2016-04-16 22:08:04 +02:00
parent 94a627d7aa
commit 144d86f733
2 changed files with 29 additions and 0 deletions

View File

@ -37,6 +37,25 @@ class ExceptionsTest < Homebrew::TestCase
TapFormulaUnavailableError.new(t, "foo").to_s TapFormulaUnavailableError.new(t, "foo").to_s
end 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 def test_tap_unavailable_error
assert_equal "No available tap foo.\n", TapUnavailableError.new("foo").to_s assert_equal "No available tap foo.\n", TapUnavailableError.new("foo").to_s
end end

View File

@ -54,6 +54,16 @@ class FormularyFactoryTest < Homebrew::TestCase
assert_raises(FormulaUnavailableError) { Formulary.factory("not_existed_formula") } assert_raises(FormulaUnavailableError) { Formulary.factory("not_existed_formula") }
end 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 def test_factory_from_path
assert_kind_of Formula, Formulary.factory(@path) assert_kind_of Formula, Formulary.factory(@path)
end end