2017-03-05 19:26:56 +01:00
|
|
|
describe Hbc::Verify, :cask do
|
2016-08-18 22:11:42 +03:00
|
|
|
let(:cask) { double("cask") }
|
|
|
|
|
|
|
|
let(:verification_classes) {
|
|
|
|
[
|
|
|
|
applicable_verification_class,
|
|
|
|
inapplicable_verification_class,
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
let(:applicable_verification_class) {
|
|
|
|
double("applicable_verification_class", me?: true)
|
|
|
|
}
|
|
|
|
|
|
|
|
let(:inapplicable_verification_class) {
|
|
|
|
double("inapplicable_verification_class", me?: false)
|
|
|
|
}
|
|
|
|
|
|
|
|
before do
|
|
|
|
allow(described_class).to receive(:verifications)
|
|
|
|
.and_return(verification_classes)
|
|
|
|
end
|
|
|
|
|
|
|
|
describe ".for_cask" do
|
|
|
|
subject { described_class.for_cask(cask) }
|
|
|
|
|
|
|
|
it "checks applicability of each verification" do
|
|
|
|
verification_classes.each do |verify_class|
|
|
|
|
expect(verify_class).to receive(:me?).with(cask)
|
|
|
|
end
|
|
|
|
subject
|
|
|
|
end
|
|
|
|
|
|
|
|
it "includes applicable verifications" do
|
|
|
|
expect(subject).to include(applicable_verification_class)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "excludes inapplicable verifications" do
|
2016-08-27 11:52:14 +02:00
|
|
|
expect(subject).not_to include(inapplicable_verification_class)
|
2016-08-18 22:11:42 +03:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe ".all" do
|
2018-03-25 13:30:37 +01:00
|
|
|
subject { described_class.all(cask, downloaded_path) }
|
|
|
|
|
2016-08-18 22:11:42 +03:00
|
|
|
let(:downloaded_path) { double("downloaded_path") }
|
|
|
|
let(:applicable_verification) { double("applicable_verification") }
|
|
|
|
let(:inapplicable_verification) { double("inapplicable_verification") }
|
|
|
|
|
|
|
|
before do
|
|
|
|
allow(applicable_verification_class).to receive(:new)
|
|
|
|
.and_return(applicable_verification)
|
|
|
|
allow(inapplicable_verification_class).to receive(:new)
|
|
|
|
.and_return(inapplicable_verification)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "runs only applicable verifications" do
|
|
|
|
expect(applicable_verification).to receive(:verify)
|
2016-08-27 11:52:14 +02:00
|
|
|
expect(inapplicable_verification).not_to receive(:verify)
|
2016-08-18 22:11:42 +03:00
|
|
|
subject
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|