diff options
Diffstat (limited to 'Library/Homebrew/test')
| -rw-r--r-- | Library/Homebrew/test/formula_installer_spec.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Library/Homebrew/test/formula_installer_spec.rb b/Library/Homebrew/test/formula_installer_spec.rb index 600b4560f..f5218db73 100644 --- a/Library/Homebrew/test/formula_installer_spec.rb +++ b/Library/Homebrew/test/formula_installer_spec.rb @@ -134,4 +134,43 @@ describe FormulaInstaller do fi.check_install_sanity }.to raise_error(CannotInstallFormulaError) end + + describe "#install_requirement_formula?" do + before do + @requirement = Python3Requirement.new + allow(@requirement).to receive(:satisfied?).and_return(satisfied?) + allow(@requirement).to receive(:satisfied_by_formula?).and_return(satisfied_by_formula?) + allow_any_instance_of(Dependency).to receive(:installed?).and_return(installed?) + @dependent = formula do + url "foo" + version "0.1" + depends_on :python3 + end + @build = BuildOptions.new [], [] + @fi = FormulaInstaller.new(@dependent) + end + + subject { @fi.install_requirement_formula?(@requirement, @dependent, @build) } + + context "it returns false when requirement is satisfied" do + let(:satisfied?) { true } + let(:satisfied_by_formula?) { false } + let(:installed?) { false } + it { is_expected.to be false } + end + + context "it returns true when requirement isn't satisfied" do + let(:satisfied?) { false } + let(:satisfied_by_formula?) { false } + let(:installed?) { false } + it { is_expected.to be true } + end + + context "it returns true when requirement is satisfied by a formula" do + let(:satisfied?) { true } + let(:satisfied_by_formula?) { true } + let(:installed?) { false } + it { is_expected.to be true } + end + end end |
