| 
									
										
										
										
											2017-02-27 14:02:59 +01:00
										 |  |  | require "requirements" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe Requirements do | 
					
						
							|  |  |  |   describe "#<<" do | 
					
						
							|  |  |  |     it "returns itself" do | 
					
						
							|  |  |  |       expect(subject << Object.new).to be(subject) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "merges duplicate requirements" do | 
					
						
							|  |  |  |       subject << X11Requirement.new << X11Requirement.new | 
					
						
							|  |  |  |       expect(subject.count).to eq(1) | 
					
						
							|  |  |  |       subject << Requirement.new | 
					
						
							|  |  |  |       expect(subject.count).to eq(2) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "prefers the larger requirement when merging duplicates" do | 
					
						
							| 
									
										
										
										
											2018-10-19 16:38:41 +01:00
										 |  |  |       subject << X11Requirement.new << X11Requirement.new(%w[2.6]) | 
					
						
							|  |  |  |       expect(subject.to_a).to eq([X11Requirement.new(%w[2.6])]) | 
					
						
							| 
									
										
										
										
											2017-02-27 14:02:59 +01:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "does not use the smaller requirement when merging duplicates" do | 
					
						
							| 
									
										
										
										
											2018-10-19 16:38:41 +01:00
										 |  |  |       subject << X11Requirement.new(%w[2.6]) << X11Requirement.new | 
					
						
							|  |  |  |       expect(subject.to_a).to eq([X11Requirement.new(%w[2.6])]) | 
					
						
							| 
									
										
										
										
											2017-02-27 14:02:59 +01:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |