class ActiveModelTest::MachineWithCallbacksTest
Public Instance Methods
setup()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 455 def setup @model = new_model @machine = StateMachine::Machine.new(@model, :initial => :parked, :integration => :active_model) @machine.other_states :idling @machine.event :ignite @record = @model.new(:state => 'parked') @transition = StateMachine::Transition.new(@record, @machine, :ignite, :parked, :idling) end
test_should_allow_string_callbacks()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 559 def test_should_allow_string_callbacks class << @record attr_reader :callback_result end @machine.before_transition('@callback_result = [1, 2, 3]') @transition.perform assert_equal [1, 2, 3], @record.callback_result end
test_should_allow_symbolic_callbacks()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 545 def test_should_allow_symbolic_callbacks callback_args = nil klass = class << @record; self; end klass.send(:define_method, :after_ignite) do |*args| callback_args = args end @machine.before_transition(:after_ignite) @transition.perform assert_equal [@transition], callback_args end
test_should_include_transition_states_in_known_states()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 539 def test_should_include_transition_states_in_known_states @machine.before_transition :to => :first_gear, :do => lambda {} assert_equal [:parked, :idling, :first_gear], @machine.states.map {|state| state.name} end
test_should_pass_record_and_transition_to_after_callbacks_with_multiple_arguments()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 513 def test_should_pass_record_and_transition_to_after_callbacks_with_multiple_arguments callback_args = nil @machine.after_transition {|*args| callback_args = args} @transition.perform assert_equal [@record, @transition], callback_args end
test_should_pass_record_and_transition_to_before_callbacks_with_multiple_arguments()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 481 def test_should_pass_record_and_transition_to_before_callbacks_with_multiple_arguments callback_args = nil @machine.before_transition {|*args| callback_args = args} @transition.perform assert_equal [@record, @transition], callback_args end
test_should_pass_record_to_after_callbacks_with_one_argument()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 505 def test_should_pass_record_to_after_callbacks_with_one_argument record = nil @machine.after_transition {|arg| record = arg} @transition.perform assert_equal @record, record end
test_should_pass_record_to_before_callbacks_with_one_argument()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 473 def test_should_pass_record_to_before_callbacks_with_one_argument record = nil @machine.before_transition {|arg| record = arg} @transition.perform assert_equal @record, record end
test_should_run_after_callbacks()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 497 def test_should_run_after_callbacks called = false @machine.after_transition {called = true} @transition.perform assert called end
test_should_run_after_callbacks_outside_the_context_of_the_record()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 521 def test_should_run_after_callbacks_outside_the_context_of_the_record context = nil @machine.after_transition {context = self} @transition.perform assert_equal self, context end
test_should_run_around_callbacks()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 529 def test_should_run_around_callbacks before_called = false after_called = false @machine.around_transition {|block| before_called = true; block.call; after_called = true} @transition.perform assert before_called assert after_called end
test_should_run_before_callbacks()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 465 def test_should_run_before_callbacks called = false @machine.before_transition {called = true} @transition.perform assert called end
test_should_run_before_callbacks_outside_the_context_of_the_record()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 489 def test_should_run_before_callbacks_outside_the_context_of_the_record context = nil @machine.before_transition {context = self} @transition.perform assert_equal self, context end