From e637eb414e880559695a71b3fc1efbc7104ee64e Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Wed, 8 Feb 2017 12:12:52 +0100 Subject: Convert Fetch test to spec. --- Library/Homebrew/cask/spec/cask/cli/fetch_spec.rb | 77 ++++++++++++++++++++++ Library/Homebrew/cask/test/cask/cli/fetch_test.rb | 78 ----------------------- 2 files changed, 77 insertions(+), 78 deletions(-) create mode 100644 Library/Homebrew/cask/spec/cask/cli/fetch_spec.rb delete mode 100644 Library/Homebrew/cask/test/cask/cli/fetch_test.rb (limited to 'Library') diff --git a/Library/Homebrew/cask/spec/cask/cli/fetch_spec.rb b/Library/Homebrew/cask/spec/cask/cli/fetch_spec.rb new file mode 100644 index 000000000..bb8133453 --- /dev/null +++ b/Library/Homebrew/cask/spec/cask/cli/fetch_spec.rb @@ -0,0 +1,77 @@ +require "spec_helper" + +describe Hbc::CLI::Fetch do + let(:local_transmission) { + Hbc::CaskLoader.load_from_file(TEST_FIXTURE_DIR/"cask/Casks/local-transmission.rb") + } + + let(:local_caffeine) { + Hbc::CaskLoader.load_from_file(TEST_FIXTURE_DIR/"cask/Casks/local-caffeine.rb") + } + + it "allows download the installer of a Cask" do + shutup do + Hbc::CLI::Fetch.run("local-transmission", "local-caffeine") + end + expect(Hbc::CurlDownloadStrategy.new(local_transmission).cached_location).to exist + expect(Hbc::CurlDownloadStrategy.new(local_caffeine).cached_location).to exist + end + + it "prevents double fetch (without nuking existing installation)" do + download_stategy = Hbc::CurlDownloadStrategy.new(local_transmission) + + shutup do + Hbc::Download.new(local_transmission).perform + end + old_ctime = File.stat(download_stategy.cached_location).ctime + + shutup do + Hbc::CLI::Fetch.run("local-transmission") + end + new_ctime = File.stat(download_stategy.cached_location).ctime + + expect(old_ctime.to_i).to eq(new_ctime.to_i) + end + + it "allows double fetch with --force" do + shutup do + Hbc::Download.new(local_transmission).perform + end + + download_stategy = Hbc::CurlDownloadStrategy.new(local_transmission) + old_ctime = File.stat(download_stategy.cached_location).ctime + sleep(1) + + shutup do + Hbc::CLI::Fetch.run("local-transmission", "--force") + end + download_stategy = Hbc::CurlDownloadStrategy.new(local_transmission) + new_ctime = File.stat(download_stategy.cached_location).ctime + + expect(new_ctime.to_i).to be > old_ctime.to_i + end + + it "properly handles Casks that are not present" do + expect { + shutup do + Hbc::CLI::Fetch.run("notacask") + end + }.to raise_error(Hbc::CaskUnavailableError) + end + + describe "when no Cask is specified" do + it "raises an exception" do + expect { + Hbc::CLI::Fetch.run + }.to raise_error(Hbc::CaskUnspecifiedError) + end + end + + describe "when no Cask is specified, but an invalid option" do + it "raises an exception" do + expect { + Hbc::CLI::Fetch.run("--notavalidoption") + }.to raise_error(Hbc::CaskUnspecifiedError) + end + end +end diff --git a/Library/Homebrew/cask/test/cask/cli/fetch_test.rb b/Library/Homebrew/cask/test/cask/cli/fetch_test.rb deleted file mode 100644 index 8dd7e0ebf..000000000 --- a/Library/Homebrew/cask/test/cask/cli/fetch_test.rb +++ /dev/null @@ -1,78 +0,0 @@ -require "test_helper" - -describe Hbc::CLI::Fetch do - let(:local_transmission) { - Hbc::CaskLoader.load_from_file(TEST_FIXTURE_DIR/"cask/Casks/local-transmission.rb") - } - - let(:local_caffeine) { - Hbc::CaskLoader.load_from_file(TEST_FIXTURE_DIR/"cask/Casks/local-caffeine.rb") - } - - it "allows download the installer of a Cask" do - shutup do - Hbc::CLI::Fetch.run("local-transmission", "local-caffeine") - end - Hbc::CurlDownloadStrategy.new(local_transmission).cached_location.must_be :exist? - Hbc::CurlDownloadStrategy.new(local_caffeine).cached_location.must_be :exist? - end - - it "prevents double fetch (without nuking existing installation)" do - download_stategy = Hbc::CurlDownloadStrategy.new(local_transmission) - - shutup do - Hbc::Download.new(local_transmission).perform - end - old_ctime = File.stat(download_stategy.cached_location).ctime - - shutup do - Hbc::CLI::Fetch.run("local-transmission") - end - new_ctime = File.stat(download_stategy.cached_location).ctime - - old_ctime.to_i.must_equal new_ctime.to_i - end - - it "allows double fetch with --force" do - shutup do - Hbc::Download.new(local_transmission).perform - end - - download_stategy = Hbc::CurlDownloadStrategy.new(local_transmission) - old_ctime = File.stat(download_stategy.cached_location).ctime - sleep(1) - - shutup do - Hbc::CLI::Fetch.run("local-transmission", "--force") - end - download_stategy = Hbc::CurlDownloadStrategy.new(local_transmission) - new_ctime = File.stat(download_stategy.cached_location).ctime - - # new_ctime.to_i.must_be :>, old_ctime.to_i - new_ctime.to_i.must_be :>, old_ctime.to_i - end - - it "properly handles Casks that are not present" do - lambda { - shutup do - Hbc::CLI::Fetch.run("notacask") - end - }.must_raise Hbc::CaskUnavailableError - end - - describe "when no Cask is specified" do - it "raises an exception" do - lambda { - Hbc::CLI::Fetch.run - }.must_raise Hbc::CaskUnspecifiedError - end - end - - describe "when no Cask is specified, but an invalid option" do - it "raises an exception" do - lambda { - Hbc::CLI::Fetch.run("--notavalidoption") - }.must_raise Hbc::CaskUnspecifiedError - end - end -end -- cgit v1.2.3