From 83c422794a4cbd0544ca8b967c23235c8edef034 Mon Sep 17 00:00:00 2001
From: Markus Reiter <me@reitermark.us>
Date: Mon, 27 Feb 2017 23:27:49 +0100
Subject: [PATCH] Convert `formula_installer_bottle` test to spec.

---
 .../test/formula_installer_bottle_spec.rb     | 81 +++++++++++++++++++
 .../test/formula_installer_bottle_test.rb     | 78 ------------------
 2 files changed, 81 insertions(+), 78 deletions(-)
 create mode 100644 Library/Homebrew/test/formula_installer_bottle_spec.rb
 delete mode 100644 Library/Homebrew/test/formula_installer_bottle_test.rb

diff --git a/Library/Homebrew/test/formula_installer_bottle_spec.rb b/Library/Homebrew/test/formula_installer_bottle_spec.rb
new file mode 100644
index 0000000000..8409e1ac78
--- /dev/null
+++ b/Library/Homebrew/test/formula_installer_bottle_spec.rb
@@ -0,0 +1,81 @@
+require "formula"
+require "formula_installer"
+require "keg"
+require "tab"
+require "test/support/fixtures/testball"
+require "test/support/fixtures/testball_bottle"
+
+RSpec::Matchers.alias_matcher :pour_bottle, :be_pour_bottle
+
+describe FormulaInstaller do
+  matcher :be_poured_from_bottle do
+    match(&:poured_from_bottle)
+  end
+
+  def temporarily_install_bottle(formula)
+    expect(formula).not_to be_installed
+    expect(formula).to be_bottled
+    expect(formula).to pour_bottle
+
+    shutup do
+      described_class.new(formula).install
+    end
+
+    keg = Keg.new(formula.prefix)
+
+    expect(formula).to be_installed
+
+    begin
+      expect(Tab.for_keg(keg)).to be_poured_from_bottle
+
+      yield formula
+    ensure
+      keg.unlink
+      keg.uninstall
+      formula.clear_cache
+      formula.bottle.clear_cache
+    end
+
+    expect(keg).not_to exist
+    expect(formula).not_to be_installed
+  end
+
+  specify "basic bottle install" do
+    allow(DevelopmentTools).to receive(:installed?).and_return(false)
+
+    temporarily_install_bottle(TestballBottle.new) do |f|
+      # Copied directly from formula_installer_spec.rb
+      # as we expect the same behavior.
+
+      # Test that things made it into the Keg
+      expect(f.bin).to be_a_directory
+
+      expect(f.libexec).to be_a_directory
+
+      expect(f.prefix/"main.c").not_to exist
+
+      # Test that things made it into the Cellar
+      keg = Keg.new f.prefix
+      keg.link
+
+      bin = HOMEBREW_PREFIX/"bin"
+      expect(bin).to be_a_directory
+    end
+  end
+
+  specify "build tools error" do
+    allow(DevelopmentTools).to receive(:installed?).and_return(false)
+
+    # Testball doesn't have a bottle block, so use it to test this behavior
+    formula = Testball.new
+
+    expect(formula).not_to be_installed
+    expect(formula).not_to be_bottled
+
+    expect {
+      FormulaInstaller.new(formula).install
+    }.to raise_error(BuildToolsError)
+
+    expect(formula).not_to be_installed
+  end
+end
diff --git a/Library/Homebrew/test/formula_installer_bottle_test.rb b/Library/Homebrew/test/formula_installer_bottle_test.rb
deleted file mode 100644
index 6a891f1591..0000000000
--- a/Library/Homebrew/test/formula_installer_bottle_test.rb
+++ /dev/null
@@ -1,78 +0,0 @@
-require "testing_env"
-require "formula"
-require "formula_installer"
-require "keg"
-require "tab"
-require "test/support/fixtures/testball"
-require "test/support/fixtures/testball_bottle"
-
-class InstallBottleTests < Homebrew::TestCase
-  def temporary_bottle_install(formula)
-    refute_predicate formula, :installed?
-    assert_predicate formula, :bottled?
-    assert_predicate formula, :pour_bottle?
-
-    installer = FormulaInstaller.new(formula)
-
-    shutup { installer.install }
-
-    keg = Keg.new(formula.prefix)
-
-    assert_predicate formula, :installed?
-
-    begin
-      assert_predicate Tab.for_keg(keg), :poured_from_bottle
-
-      yield formula
-    ensure
-      keg.unlink
-      keg.uninstall
-      formula.clear_cache
-      formula.bottle.clear_cache
-    end
-
-    refute_predicate keg, :exist?
-    refute_predicate formula, :installed?
-  end
-
-  def test_a_basic_bottle_install
-    DevelopmentTools.stubs(:installed?).returns(false)
-
-    temporary_bottle_install(TestballBottle.new) do |f|
-      # Copied directly from test_formula_installer.rb as we expect
-      # the same behavior
-
-      # Test that things made it into the Keg
-      assert_predicate f.bin, :directory?
-
-      assert_predicate f.libexec, :directory?
-
-      refute_predicate f.prefix+"main.c", :exist?
-
-      # Test that things make it into the Cellar
-      keg = Keg.new f.prefix
-      keg.link
-
-      bin = HOMEBREW_PREFIX+"bin"
-      assert_predicate bin, :directory?
-    end
-  end
-
-  def test_build_tools_error
-    DevelopmentTools.stubs(:installed?).returns(false)
-
-    # Testball doesn't have a bottle block, so use it to test this behavior
-    formula = Testball.new
-
-    refute_predicate formula, :installed?
-    refute_predicate formula, :bottled?
-
-    installer = FormulaInstaller.new(formula)
-
-    assert_raises(BuildToolsError) do
-      installer.install
-    end
-
-    refute_predicate formula, :installed?
-  end
-end
-- 
GitLab