55 lines
959 B
Ruby
55 lines
959 B
Ruby
require "testing_env"
|
|
require "formula_pin"
|
|
|
|
class FormulaPinTests < Homebrew::TestCase
|
|
class FormulaDouble
|
|
def name
|
|
"double"
|
|
end
|
|
|
|
def rack
|
|
Pathname.new("#{HOMEBREW_CELLAR}/#{name}")
|
|
end
|
|
|
|
def installed_prefixes
|
|
rack.directory? ? rack.subdirs : []
|
|
end
|
|
|
|
def installed_kegs
|
|
installed_prefixes.map { |d| Keg.new d }
|
|
end
|
|
end
|
|
|
|
def setup
|
|
@f = FormulaDouble.new
|
|
@pin = FormulaPin.new(@f)
|
|
@f.rack.mkpath
|
|
end
|
|
|
|
def test_not_pinnable
|
|
refute_predicate @pin, :pinnable?
|
|
end
|
|
|
|
def test_pinnable_if_kegs_exist
|
|
(@f.rack+"0.1").mkpath
|
|
assert_predicate @pin, :pinnable?
|
|
end
|
|
|
|
def test_unpin
|
|
(@f.rack+"0.1").mkpath
|
|
@pin.pin
|
|
|
|
assert_predicate @pin, :pinned?
|
|
assert_equal 1, FormulaPin::PINDIR.children.length
|
|
|
|
@pin.unpin
|
|
|
|
refute_predicate @pin, :pinned?
|
|
refute_predicate FormulaPin::PINDIR, :directory?
|
|
end
|
|
|
|
def teardown
|
|
@f.rack.rmtree
|
|
end
|
|
end
|