89 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require 'testing_env'
 | |
| require 'test/testball'
 | |
| require 'set'
 | |
| 
 | |
| # Expose some internals
 | |
| class Patches
 | |
|   attr_reader :patches
 | |
| end
 | |
| 
 | |
| class Patch
 | |
|   attr_reader :patch_p
 | |
|   attr_reader :patch_filename
 | |
| end
 | |
| 
 | |
| 
 | |
| class PatchingTests < Test::Unit::TestCase
 | |
|   def test_patchSingleString
 | |
|     patches = Patches.new("http://example.com/patch.diff")
 | |
|     assert_equal 1, patches.patches.length
 | |
|     p = patches.patches[0]
 | |
|     assert_equal :p1, p.patch_p
 | |
|   end
 | |
| 
 | |
|   def test_patchArray
 | |
|     patches = Patches.new(["http://example.com/patch1.diff", "http://example.com/patch2.diff"])
 | |
|     assert_equal 2, patches.patches.length
 | |
| 
 | |
|     p1 = patches.patches[0]
 | |
|     assert_equal :p1, p1.patch_p
 | |
| 
 | |
|     p2 = patches.patches[0]
 | |
|     assert_equal :p1, p2.patch_p
 | |
|   end
 | |
| 
 | |
|   def test_p0_hash_to_string
 | |
|     patches = Patches.new({
 | |
|       :p0 => "http://example.com/patch.diff"
 | |
|     })
 | |
|     assert_equal 1, patches.patches.length
 | |
| 
 | |
|     p = patches.patches[0]
 | |
|     assert_equal :p0, p.patch_p
 | |
|   end
 | |
| 
 | |
|   def test_p1_hash_to_string
 | |
|     patches = Patches.new({
 | |
|       :p1 => "http://example.com/patch.diff"
 | |
|     })
 | |
|     assert_equal 1, patches.patches.length
 | |
| 
 | |
|     p = patches.patches[0]
 | |
|     assert_equal :p1, p.patch_p
 | |
|   end
 | |
| 
 | |
|   def test_mixed_hash_to_strings
 | |
|     expected = {
 | |
|       :p1 => "http://example.com/patch1.diff",
 | |
|       :p0 => "http://example.com/patch0.diff"
 | |
|     }
 | |
|     patches = Patches.new(expected)
 | |
|     assert_equal 2, patches.patches.length
 | |
| 
 | |
|     # Make sure unique filenames were assigned
 | |
|     filenames = Set.new
 | |
|     patches.each do |p|
 | |
|       filenames << p.patch_filename
 | |
|     end
 | |
| 
 | |
|     assert_equal 2, filenames.size
 | |
|   end
 | |
| 
 | |
|   def test_mixed_hash_to_arrays
 | |
|     expected = {
 | |
|       :p1 => ["http://example.com/patch10.diff","http://example.com/patch11.diff"],
 | |
|       :p0 => ["http://example.com/patch00.diff","http://example.com/patch01.diff"]
 | |
|     }
 | |
|     patches = Patches.new(expected)
 | |
|     assert_equal 4, patches.patches.length
 | |
| 
 | |
|     # Make sure unique filenames were assigned
 | |
|     filenames = Set.new
 | |
|     patches.each do |p|
 | |
|       filenames << p.patch_filename
 | |
|     end
 | |
| 
 | |
|     assert_equal 4, filenames.size
 | |
|   end
 | |
| end
 | 
