class ActiveRecordTest::MachineWithObserversTest
Public Instance Methods
after_transition(*args)
click to toggle source
# File test/unit/integrations/active_record_test.rb, line 1573 def after_transition(*args) notifications << args end
before_ignite(*args)
click to toggle source
# File test/unit/integrations/active_record_test.rb, line 1585 def before_ignite(*args) notifications << self end
before_save(object)
click to toggle source
# File test/unit/integrations/active_record_test.rb, line 1597 def before_save(object) notifications << [:before_save, @object] end
before_transition(*args)
click to toggle source
# File test/unit/integrations/active_record_test.rb, line 1561 def before_transition(*args) notifications << args end
setup()
click to toggle source
# File test/unit/integrations/active_record_test.rb, line 1522 def setup @model = new_model @machine = StateMachine::Machine.new(@model) @machine.state :parked, :idling @machine.event :ignite @record = @model.new(:state => 'parked') @transition = StateMachine::Transition.new(@record, @machine, :ignite, :parked, :idling) end
test_should_call_all_transition_callback_permutations()
click to toggle source
# File test/unit/integrations/active_record_test.rb, line 1531 def test_should_call_all_transition_callback_permutations callbacks = [ :before_ignite_from_parked_to_idling, :before_ignite_from_parked, :before_ignite_to_idling, :before_ignite, :before_transition_state_from_parked_to_idling, :before_transition_state_from_parked, :before_transition_state_to_idling, :before_transition_state, :before_transition ] notified = false observer = new_observer(@model) do callbacks.each do |callback| define_method(callback) do |*args| notifications << callback end end end instance = observer.instance @transition.perform assert_equal callbacks, instance.notifications end
test_should_call_methods_outside_the_context_of_the_record()
click to toggle source
# File test/unit/integrations/active_record_test.rb, line 1583 def test_should_call_methods_outside_the_context_of_the_record observer = new_observer(@model) do def before_ignite(*args) notifications << self end end instance = observer.instance @transition.perform assert_equal [instance], instance.notifications end
test_should_continue_to_handle_non_state_machine_callbacks()
click to toggle source
# File test/unit/integrations/active_record_test.rb, line 1595 def test_should_continue_to_handle_non_state_machine_callbacks observer = new_observer(@model) do def before_save(object) notifications << [:before_save, @object] end def before_ignite(*args) notifications << :before_ignite end end instance = observer.instance @transition.perform assert_equal [:before_ignite, [:before_save, @object]], instance.notifications end
test_should_pass_record_and_transition_to_after_callbacks()
click to toggle source
# File test/unit/integrations/active_record_test.rb, line 1571 def test_should_pass_record_and_transition_to_after_callbacks observer = new_observer(@model) do def after_transition(*args) notifications << args end end instance = observer.instance @transition.perform assert_equal [[@record, @transition]], instance.notifications end
test_should_pass_record_and_transition_to_before_callbacks()
click to toggle source
# File test/unit/integrations/active_record_test.rb, line 1559 def test_should_pass_record_and_transition_to_before_callbacks observer = new_observer(@model) do def before_transition(*args) notifications << args end end instance = observer.instance @transition.perform assert_equal [[@record, @transition]], instance.notifications end
test_should_support_nil_from_states()
click to toggle source
# File test/unit/integrations/active_record_test.rb, line 1612 def test_should_support_nil_from_states callbacks = [ :before_ignite_from_nil_to_idling, :before_ignite_from_nil, :before_transition_state_from_nil_to_idling, :before_transition_state_from_nil ] notified = false observer = new_observer(@model) do callbacks.each do |callback| define_method(callback) do |*args| notifications << callback end end end instance = observer.instance transition = StateMachine::Transition.new(@record, @machine, :ignite, nil, :idling) transition.perform assert_equal callbacks, instance.notifications end
test_should_support_nil_to_states()
click to toggle source
# File test/unit/integrations/active_record_test.rb, line 1636 def test_should_support_nil_to_states callbacks = [ :before_ignite_from_parked_to_nil, :before_ignite_to_nil, :before_transition_state_from_parked_to_nil, :before_transition_state_to_nil ] notified = false observer = new_observer(@model) do callbacks.each do |callback| define_method(callback) do |*args| notifications << callback end end end instance = observer.instance transition = StateMachine::Transition.new(@record, @machine, :ignite, :parked, nil) transition.perform assert_equal callbacks, instance.notifications end