55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require 'testing_env'
 | |
| require 'download_strategy'
 | |
| require 'bottles' # XXX: hoist these regexps into constants in Pathname?
 | |
| 
 | |
| class SoftwareSpecDouble
 | |
|   attr_reader :url, :specs
 | |
| 
 | |
|   def initialize(url="http://foo.com/bar.tar.gz", specs={})
 | |
|     @url = url
 | |
|     @specs = specs
 | |
|   end
 | |
| end
 | |
| 
 | |
| class AbstractDownloadStrategyTests < Test::Unit::TestCase
 | |
|   def setup
 | |
|     @name = "foo"
 | |
|     @package = SoftwareSpecDouble.new
 | |
|     @strategy = AbstractDownloadStrategy.new(@name, @package)
 | |
|     @args = %w{foo bar baz}
 | |
|   end
 | |
| 
 | |
|   def test_expand_safe_system_args_with_explicit_quiet_flag
 | |
|     @args << { :quiet_flag => '--flag' }
 | |
|     expanded_args = @strategy.expand_safe_system_args(@args)
 | |
|     assert_equal %w{foo bar baz --flag}, expanded_args
 | |
|   end
 | |
| 
 | |
|   def test_expand_safe_system_args_with_implicit_quiet_flag
 | |
|     expanded_args = @strategy.expand_safe_system_args(@args)
 | |
|     assert_equal %w{foo bar -q baz}, expanded_args
 | |
|   end
 | |
| 
 | |
|   def test_expand_safe_system_args_does_not_mutate_argument
 | |
|     result = @strategy.expand_safe_system_args(@args)
 | |
|     assert_equal %w{foo bar baz}, @args
 | |
|     assert_not_same @args, result
 | |
|   end
 | |
| end
 | |
| 
 | |
| class DownloadStrategyDetectorTests < Test::Unit::TestCase
 | |
|   def setup
 | |
|     @d = DownloadStrategyDetector.new
 | |
|   end
 | |
| 
 | |
|   def test_detect_git_download_startegy
 | |
|     @d = DownloadStrategyDetector.detect("git://foo.com/bar.git")
 | |
|     assert_equal GitDownloadStrategy, @d
 | |
|   end
 | |
| 
 | |
|   def test_default_to_curl_strategy
 | |
|     @d = DownloadStrategyDetector.detect(Object.new)
 | |
|     assert_equal CurlDownloadStrategy, @d
 | |
|   end
 | |
| end
 | 
