aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/test_formula_pin.rb
blob: 6dbf3e173bec494d094edff2f4f39840a56f85e8 (plain)
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
require 'testing_env'
require 'formula_pin'

class FormulaPinTests < Homebrew::TestCase
  class FormulaDouble
    def name
      "double"
    end

    def rack
      Pathname.new("#{HOMEBREW_CELLAR}/#{name}")
    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