| 
									
										
										
										
											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 |