forked from Homebrew/homebrew-cask
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fetch_test.rb
79 lines (64 loc) · 2.1 KB
/
fetch_test.rb
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
require 'test_helper'
describe Hbc::CLI::Fetch do
let(:local_transmission) do
Hbc.load('local-transmission')
end
let(:local_caffeine) do
Hbc.load('local-caffeine')
end
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