diff options
| author | Markus Reiter | 2017-02-17 19:05:17 +0100 | 
|---|---|---|
| committer | Markus Reiter | 2017-02-20 22:30:59 +0100 | 
| commit | 9904eae48a5e4129905b48e5fe61afbb82726a39 (patch) | |
| tree | 28d12772d2fb9add775211c24945cdb4e408476f /Library/Homebrew/test | |
| parent | 25959927fabb2fb6132c028d9537f4b589f47a4b (diff) | |
| download | brew-9904eae48a5e4129905b48e5fe61afbb82726a39.tar.bz2 | |
Convert FormulaPin test to spec.
Diffstat (limited to 'Library/Homebrew/test')
| -rw-r--r-- | Library/Homebrew/test/formula_pin_spec.rb | 41 | ||||
| -rw-r--r-- | Library/Homebrew/test/formula_pin_test.rb | 51 | 
2 files changed, 41 insertions, 51 deletions
| diff --git a/Library/Homebrew/test/formula_pin_spec.rb b/Library/Homebrew/test/formula_pin_spec.rb new file mode 100644 index 000000000..909bfbc2b --- /dev/null +++ b/Library/Homebrew/test/formula_pin_spec.rb @@ -0,0 +1,41 @@ +require "formula_pin" + +describe FormulaPin do +  subject { described_class.new(formula) } +  let(:name) { "double" } +  let(:formula) { double(Formula, name: name, rack: HOMEBREW_CELLAR/name) } + +  before(:each) do +    formula.rack.mkpath + +    allow(formula).to receive(:installed_prefixes) do +      formula.rack.directory? ? formula.rack.subdirs : [] +    end + +    allow(formula).to receive(:installed_kegs) do +      formula.installed_prefixes.map { |prefix| Keg.new(prefix) } +    end +  end + +  it "is not pinnable by default" do +    expect(subject).not_to be_pinnable +  end + +  it "is pinnable if the Keg exists" do +    (formula.rack/"0.1").mkpath +    expect(subject).to be_pinnable +  end + +  specify "#pin and #unpin" do +    (formula.rack/"0.1").mkpath + +    subject.pin +    expect(subject).to be_pinned +    expect(HOMEBREW_PINNED_KEGS/name).to be_a_directory +    expect(HOMEBREW_PINNED_KEGS.children.count).to eq(1) + +    subject.unpin +    expect(subject).not_to be_pinned +    expect(HOMEBREW_PINNED_KEGS).not_to be_a_directory +  end +end diff --git a/Library/Homebrew/test/formula_pin_test.rb b/Library/Homebrew/test/formula_pin_test.rb deleted file mode 100644 index 7e3c7efa0..000000000 --- a/Library/Homebrew/test/formula_pin_test.rb +++ /dev/null @@ -1,51 +0,0 @@ -require "testing_env" -require "formula_pin" - -class FormulaPinTests < Homebrew::TestCase -  class FormulaDouble -    def name -      "double" -    end - -    def rack -      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 -    super -    @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, HOMEBREW_PINNED_KEGS.children.length - -    @pin.unpin - -    refute_predicate @pin, :pinned? -    refute_predicate HOMEBREW_PINNED_KEGS, :directory? -  end -end | 
