54 lines
1.1 KiB
Ruby
Executable file
54 lines
1.1 KiB
Ruby
Executable file
|
|
unless $LOAD_PATH.include?("lib")
|
|
$LOAD_PATH.unshift("lib")
|
|
end
|
|
unless $LOAD_PATH.include?("test")
|
|
$LOAD_PATH.unshift("test")
|
|
end
|
|
|
|
require 'test/unit'
|
|
require 'madeleine'
|
|
|
|
class ExecuterTest < Test::Unit::TestCase
|
|
|
|
def test_executer
|
|
system = Object.new
|
|
command = self
|
|
executer = Madeleine::Executer.new(system)
|
|
@executed_with = nil
|
|
executer.execute(command)
|
|
assert_same(system, @executed_with)
|
|
end
|
|
|
|
# Self-shunt
|
|
def execute(system)
|
|
@executed_with = system
|
|
end
|
|
|
|
def test_execute_with_exception
|
|
system = Object.new
|
|
command = Object.new
|
|
def command.execute(system)
|
|
raise "this is an exception from a command"
|
|
end
|
|
executer = Madeleine::Executer.new(system)
|
|
assert_raises(RuntimeError) {
|
|
executer.execute(command)
|
|
}
|
|
end
|
|
|
|
def test_exception_in_recovery
|
|
system = Object.new
|
|
command = Object.new
|
|
def command.execute(system)
|
|
raise "this is an exception from a command"
|
|
end
|
|
executer = Madeleine::Executer.new(system)
|
|
executer.recovery {
|
|
executer.execute(command)
|
|
}
|
|
assert_raises(RuntimeError) {
|
|
executer.execute(command)
|
|
}
|
|
end
|
|
end
|