| 
									
										
										
										
											2012-10-02 13:21:00 -05:00
										 |  |  | require 'testing_env' | 
					
						
							|  |  |  | require 'extend/set' | 
					
						
							| 
									
										
										
										
											2013-01-27 14:37:13 -06:00
										 |  |  | require 'requirements' | 
					
						
							| 
									
										
										
										
											2012-10-02 13:21:00 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | class ComparableSetTests < Test::Unit::TestCase | 
					
						
							|  |  |  |   def setup | 
					
						
							|  |  |  |     @set = ComparableSet.new | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_merging_multiple_dependencies | 
					
						
							|  |  |  |     @set << X11Dependency.new | 
					
						
							|  |  |  |     @set << X11Dependency.new | 
					
						
							| 
									
										
										
										
											2013-04-08 18:34:55 -05:00
										 |  |  |     assert_equal 1, @set.count | 
					
						
							| 
									
										
										
										
											2012-10-02 13:21:00 -05:00
										 |  |  |     @set << Requirement.new | 
					
						
							| 
									
										
										
										
											2013-04-08 18:34:55 -05:00
										 |  |  |     assert_equal 2, @set.count | 
					
						
							| 
									
										
										
										
											2012-10-02 13:21:00 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_comparison_prefers_larger | 
					
						
							|  |  |  |     @set << X11Dependency.new | 
					
						
							| 
									
										
										
										
											2013-01-27 15:41:45 -06:00
										 |  |  |     @set << X11Dependency.new('x11', '2.6') | 
					
						
							| 
									
										
										
										
											2013-04-08 18:34:55 -05:00
										 |  |  |     assert_equal 1, @set.count | 
					
						
							|  |  |  |     assert_equal [X11Dependency.new('x11', '2.6')], @set.to_a | 
					
						
							| 
									
										
										
										
											2012-10-02 13:21:00 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_comparison_does_not_merge_smaller | 
					
						
							| 
									
										
										
										
											2013-01-27 15:41:45 -06:00
										 |  |  |     @set << X11Dependency.new('x11', '2.6') | 
					
						
							| 
									
										
										
										
											2012-10-02 13:21:00 -05:00
										 |  |  |     @set << X11Dependency.new | 
					
						
							| 
									
										
										
										
											2013-04-08 18:34:55 -05:00
										 |  |  |     assert_equal 1, @set.count | 
					
						
							|  |  |  |     assert_equal [X11Dependency.new('x11', '2.6')], @set.to_a | 
					
						
							| 
									
										
										
										
											2012-10-02 13:21:00 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def test_merging_sets | 
					
						
							|  |  |  |     @set << X11Dependency.new | 
					
						
							|  |  |  |     @set << Requirement.new | 
					
						
							| 
									
										
										
										
											2013-01-27 15:41:45 -06:00
										 |  |  |     reqs = Set.new [X11Dependency.new('x11', '2.6'), Requirement.new] | 
					
						
							| 
									
										
										
										
											2012-10-25 15:45:42 -05:00
										 |  |  |     assert_same @set, @set.merge(reqs) | 
					
						
							| 
									
										
										
										
											2012-10-02 13:21:00 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-08 18:34:55 -05:00
										 |  |  |     assert_equal 2, @set.count | 
					
						
							|  |  |  |     assert_equal X11Dependency.new('x11', '2.6'), @set.find {|r| r.is_a? X11Dependency} | 
					
						
							| 
									
										
										
										
											2012-10-02 13:21:00 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | end |