diff options
Diffstat (limited to 'switchtower/test/command_test.rb')
-rw-r--r-- | switchtower/test/command_test.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/switchtower/test/command_test.rb b/switchtower/test/command_test.rb new file mode 100644 index 0000000000..7005ba0f2d --- /dev/null +++ b/switchtower/test/command_test.rb @@ -0,0 +1,43 @@ +$:.unshift File.dirname(__FILE__) + "/../lib" + +require 'stringio' +require 'test/unit' +require 'switchtower/command' + +class CommandTest < Test::Unit::TestCase + class MockSession + def open_channel + { :closed => true, :status => 0 } + end + end + + class MockActor + attr_reader :sessions + + def initialize + @sessions = Hash.new { |h,k| h[k] = MockSession.new } + end + end + + def setup + @actor = MockActor.new + end + + def test_command_executes_on_all_servers + command = SwitchTower::Command.new(%w(server1 server2 server3), + "hello", nil, {}, @actor) + assert_equal %w(server1 server2 server3), @actor.sessions.keys.sort + end + + def test_command_with_newlines + command = SwitchTower::Command.new(%w(server1), "hello\nworld", nil, {}, + @actor) + assert_equal "hello\\\nworld", command.command + end + + def test_command_with_windows_newlines + command = SwitchTower::Command.new(%w(server1), "hello\r\nworld", nil, {}, + @actor) + assert_equal "hello\\\nworld", command.command + end +end |