class TransitionWithAfterCallbacksTest
Public Instance Methods
setup()
click to toggle source
# File test/unit/transition_test.rb, line 553 def setup @klass = Class.new @machine = StateMachine::Machine.new(@klass) @machine.state :parked, :idling @machine.event :ignite @object = @klass.new @object.state = 'parked' @transition = StateMachine::Transition.new(@object, @machine, :ignite, :parked, :idling) end
test_should_be_able_to_run_again_after_resetting()
click to toggle source
# File test/unit/transition_test.rb, line 634 def test_should_be_able_to_run_again_after_resetting @count = 0 @machine.after_transition {@count += 1} @transition.run_callbacks @transition.reset @transition.run_callbacks assert_equal 2, @count end
test_should_catch_halts()
click to toggle source
# File test/unit/transition_test.rb, line 605 def test_should_catch_halts @machine.after_transition {throw :halt} result = nil assert_nothing_thrown { result = @transition.run_callbacks } assert_equal true, result end
test_should_not_be_able_to_run_twice()
click to toggle source
# File test/unit/transition_test.rb, line 618 def test_should_not_be_able_to_run_twice @count = 0 @machine.after_transition {@count += 1} @transition.run_callbacks @transition.run_callbacks assert_equal 1, @count end
test_should_not_be_able_to_run_twice_if_halted()
click to toggle source
# File test/unit/transition_test.rb, line 626 def test_should_not_be_able_to_run_twice_if_halted @count = 0 @machine.after_transition {@count += 1; throw :halt} @transition.run_callbacks @transition.run_callbacks assert_equal 1, @count end
test_should_not_catch_exceptions()
click to toggle source
# File test/unit/transition_test.rb, line 613 def test_should_not_catch_exceptions @machine.after_transition {raise ArgumentError} assert_raise(ArgumentError) { @transition.run_callbacks } end
test_should_not_run_if_not_successful()
click to toggle source
# File test/unit/transition_test.rb, line 586 def test_should_not_run_if_not_successful @machine.after_transition {|object| @run = true} @transition.run_callbacks {{:success => false}} assert !@run end
test_should_only_run_those_that_match_transition_context()
click to toggle source
# File test/unit/transition_test.rb, line 573 def test_should_only_run_those_that_match_transition_context @count = 0 callback = lambda {@count += 1} @machine.after_transition :from => :parked, :to => :idling, :on => :park, :do => callback @machine.after_transition :from => :parked, :to => :parked, :on => :park, :do => callback @machine.after_transition :from => :parked, :to => :idling, :on => :ignite, :do => callback @machine.after_transition :from => :idling, :to => :idling, :on => :park, :do => callback @transition.run_callbacks assert_equal 1, @count end
test_should_pass_transition_as_argument()
click to toggle source
# File test/unit/transition_test.rb, line 598 def test_should_pass_transition_as_argument @machine.after_transition {|*args| @args = args} @transition.run_callbacks assert_equal [@object, @transition], @args end
test_should_run_after_callbacks()
click to toggle source
# File test/unit/transition_test.rb, line 565 def test_should_run_after_callbacks @machine.after_transition {|object| @run = true} result = @transition.run_callbacks assert_equal true, result assert_equal true, @run end
test_should_run_if_successful()
click to toggle source
# File test/unit/transition_test.rb, line 592 def test_should_run_if_successful @machine.after_transition {|object| @run = true} @transition.run_callbacks {{:success => true}} assert @run end