diff options
Diffstat (limited to 'vendor/supply_drop/test')
-rw-r--r-- | vendor/supply_drop/test/async_test.rb | 67 | ||||
-rw-r--r-- | vendor/supply_drop/test/files/manifests/invalid.pp | 1 | ||||
-rw-r--r-- | vendor/supply_drop/test/files/manifests/valid.pp | 9 | ||||
-rw-r--r-- | vendor/supply_drop/test/files/templates/invalid.erb | 1 | ||||
-rw-r--r-- | vendor/supply_drop/test/files/templates/valid.erb | 1 | ||||
-rw-r--r-- | vendor/supply_drop/test/rsync_test.rb | 57 | ||||
-rw-r--r-- | vendor/supply_drop/test/syntax_checker_test.rb | 23 |
7 files changed, 159 insertions, 0 deletions
diff --git a/vendor/supply_drop/test/async_test.rb b/vendor/supply_drop/test/async_test.rb new file mode 100644 index 0000000..0b9bc3a --- /dev/null +++ b/vendor/supply_drop/test/async_test.rb @@ -0,0 +1,67 @@ +require 'test/unit' +require File.expand_path('../../lib/supply_drop/util', __FILE__) +require File.expand_path('../../lib/supply_drop/async_enumerable', __FILE__) +require File.expand_path('../../lib/supply_drop/thread_pool', __FILE__) + +class AsyncTest < Test::Unit::TestCase + def teardown + SupplyDrop::Util.thread_pool_size = SupplyDrop::Util::DEFAULT_THREAD_POOL_SIZE + end + + def test_can_enumerate_asynchronously + collection = (1..10).to_a + elapsed = timed do + SupplyDrop::Util.optionally_async(collection, true).each do |item| + sleep 0.1 + end + end + assert elapsed < 1 + end + + def test_can_enumerate_asynchronously_with_map + collection = (1..10).to_a + returned_values = nil + elapsed = timed do + returned_values = SupplyDrop::Util.optionally_async(collection, true).map do |item| + sleep 0.1 + :somevalue + end + end + assert returned_values == Array.new(10, :somevalue) + assert elapsed < 1 + end + + def test_can_enumerate_normally_and_does_not_leak_after_extending + collection = (1..10).to_a + elapsed = timed do + SupplyDrop::Util.optionally_async(collection, true).each do |item| + sleep 0.1 + end + end + assert elapsed < 1 + + elapsed = timed do + SupplyDrop::Util.optionally_async(collection, false).each do |item| + sleep 0.1 + end + end + assert elapsed >= 1 + end + + def test_can_configure_thread_pool_size + collection = (1..10).to_a + SupplyDrop::Util.thread_pool_size = 1 + elapsed = timed do + returned_values = SupplyDrop::Util.optionally_async(collection, true).map do |item| + sleep 0.1 + end + end + assert elapsed >= 1 + end + + def timed + start = Time.now + yield + Time.now - start + end +end diff --git a/vendor/supply_drop/test/files/manifests/invalid.pp b/vendor/supply_drop/test/files/manifests/invalid.pp new file mode 100644 index 0000000..5ca851c --- /dev/null +++ b/vendor/supply_drop/test/files/manifests/invalid.pp @@ -0,0 +1 @@ +class example { diff --git a/vendor/supply_drop/test/files/manifests/valid.pp b/vendor/supply_drop/test/files/manifests/valid.pp new file mode 100644 index 0000000..d8e6486 --- /dev/null +++ b/vendor/supply_drop/test/files/manifests/valid.pp @@ -0,0 +1,9 @@ +class valid { + file { "/etc/hosts": + ensure => present, + content => "127.0.0.1 localhost", + owner => root, + group => root, + mode => "0644" + } +} diff --git a/vendor/supply_drop/test/files/templates/invalid.erb b/vendor/supply_drop/test/files/templates/invalid.erb new file mode 100644 index 0000000..615887c --- /dev/null +++ b/vendor/supply_drop/test/files/templates/invalid.erb @@ -0,0 +1 @@ +this is a <%= if true %> template diff --git a/vendor/supply_drop/test/files/templates/valid.erb b/vendor/supply_drop/test/files/templates/valid.erb new file mode 100644 index 0000000..722efea --- /dev/null +++ b/vendor/supply_drop/test/files/templates/valid.erb @@ -0,0 +1 @@ +this is a <%= "good" %> template diff --git a/vendor/supply_drop/test/rsync_test.rb b/vendor/supply_drop/test/rsync_test.rb new file mode 100644 index 0000000..b51a6b3 --- /dev/null +++ b/vendor/supply_drop/test/rsync_test.rb @@ -0,0 +1,57 @@ +require 'test/unit' +require File.expand_path('../../lib/supply_drop/rsync', __FILE__) + +class RsyncTest < Test::Unit::TestCase + + def test_build_simple_command + command = SupplyDrop::Rsync.command('bar', 'foo') + assert_equal 'rsync -az bar foo', command + end + + def test_allows_passing_delete + command = SupplyDrop::Rsync.command('bar', 'foo', :delete => true) + assert_equal 'rsync -az --delete bar foo', command + end + + def test_allows_specifying_an_exclude + command = SupplyDrop::Rsync.command('bar', 'foo', :excludes => '.git') + assert_equal 'rsync -az --exclude=.git bar foo', command + end + + def test_ssh_options_keys_only_lists_existing_files + command = SupplyDrop::Rsync.command('.', 'foo', :ssh => { :keys => [__FILE__, "#{__FILE__}dadijofs"] }) + assert_match /-i #{__FILE__}/, command + end + + def test_ssh_options_ignores_keys_if_nil + command = SupplyDrop::Rsync.command('.', 'foo', :ssh => { :keys => nil }) + assert_equal 'rsync -az . foo', command + command = SupplyDrop::Rsync.command('bar', 'foo') + assert_equal 'rsync -az bar foo', command + end + + def test_ssh_options_config_adds_flag + command = SupplyDrop::Rsync.command('.', 'foo', :ssh => { :config => __FILE__ }) + assert_equal %Q[rsync -az -e "ssh -F #{__FILE__}" . foo], command + end + + def test_ssh_options_port_adds_port + command = SupplyDrop::Rsync.command('.', 'foo', :ssh => { :port => '30022' }) + assert_equal %Q[rsync -az -e "ssh -p 30022" . foo], command + end + + def test_ssh_options_ignores_config_if_nil_or_false + command = SupplyDrop::Rsync.command('.', 'foo', :ssh => { :config => nil }) + assert_equal 'rsync -az . foo', command + command = SupplyDrop::Rsync.command('.', 'foo', :ssh => { :config => false }) + assert_equal 'rsync -az . foo', command + end + + def test_remote_address_concatinates_things_correctly + assert_equal "user@box.local:/tmp", SupplyDrop::Rsync.remote_address('user', 'box.local', '/tmp') + end + + def test_remote_address_drops_at_when_user_is_nil + assert_equal 'box.local:/tmp', SupplyDrop::Rsync.remote_address(nil, 'box.local', '/tmp') + end +end diff --git a/vendor/supply_drop/test/syntax_checker_test.rb b/vendor/supply_drop/test/syntax_checker_test.rb new file mode 100644 index 0000000..15f6e73 --- /dev/null +++ b/vendor/supply_drop/test/syntax_checker_test.rb @@ -0,0 +1,23 @@ +require 'test/unit' +require File.expand_path('../../lib/supply_drop/syntax_checker', __FILE__) + +class SyntaxCheckerTest < Test::Unit::TestCase + + def test_syntax_checks_puppet_files + checker = SupplyDrop::SyntaxChecker.new(File.expand_path('../files', __FILE__)) + errors = checker.validate_puppet_files + assert_equal 1, errors.count + file, error = errors.first + assert_match %r[manifests/invalid.pp$], file + assert_match %r[expected '\}'], error + end + + def test_synatx_checks_erb_files + checker = SupplyDrop::SyntaxChecker.new(File.expand_path('../files', __FILE__)) + errors = checker.validate_templates + assert_equal 1, errors.count + file, error = errors.first + assert_match %r[templates/invalid.erb$], file + assert_match %r[syntax error], error + end +end |