class MachineWithFailureCallbacksTest
Public Instance Methods
setup()
click to toggle source
# File test/unit/machine_test.rb, line 2651 def setup @klass = Class.new do attr_accessor :callbacks end @machine = StateMachine::Machine.new(@klass, :initial => :parked) @event = @machine.event :ignite @object = @klass.new @object.callbacks = [] end
test_should_allow_multiple_callbacks()
click to toggle source
# File test/unit/machine_test.rb, line 2680 def test_should_allow_multiple_callbacks @machine.after_failure lambda {|object| object.callbacks << 'failure1'}, lambda {|object| object.callbacks << 'failure2'} @event.fire(@object) assert_equal %w(failure1 failure2), @object.callbacks end
test_should_allow_multiple_callbacks_with_requirements()
click to toggle source
# File test/unit/machine_test.rb, line 2687 def test_should_allow_multiple_callbacks_with_requirements @machine.after_failure lambda {|object| object.callbacks << 'failure_ignite1'}, lambda {|object| object.callbacks << 'failure_ignite2'}, :on => :ignite @machine.after_failure lambda {|object| object.callbacks << 'failure_park1'}, lambda {|object| object.callbacks << 'failure_park2'}, :on => :park @event.fire(@object) assert_equal %w(failure_ignite1 failure_ignite2), @object.callbacks end
test_should_invoke_callbacks_during_failed_transition()
click to toggle source
# File test/unit/machine_test.rb, line 2673 def test_should_invoke_callbacks_during_failed_transition @machine.after_failure lambda {|object| object.callbacks << 'failure'} @event.fire(@object) assert_equal %w(failure), @object.callbacks end
test_should_raise_exception_if_implicit_option_specified()
click to toggle source
# File test/unit/machine_test.rb, line 2663 def test_should_raise_exception_if_implicit_option_specified exception = assert_raise(ArgumentError) {@machine.after_failure :invalid => :valid, :do => lambda {}} assert_equal 'Invalid key(s): invalid', exception.message end
test_should_raise_exception_if_method_not_specified()
click to toggle source
# File test/unit/machine_test.rb, line 2668 def test_should_raise_exception_if_method_not_specified exception = assert_raise(ArgumentError) {@machine.after_failure :on => :ignite} assert_equal 'Method(s) for callback must be specified', exception.message end