class ActiveModelTest::MachineWithMixedCallbacksTest
Public Instance Methods
after_ignite(*args)
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 954 def after_ignite(*args) notifications << :observer_after_ignite end
after_transition(*args)
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 958 def after_transition(*args) notifications << :observer_after_transition end
before_ignite(*args)
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 946 def before_ignite(*args) notifications << :observer_before_ignite end
before_transition(*args)
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 950 def before_transition(*args) notifications << :observer_before_transition end
setup()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 929 def setup @model = new_model { include ActiveModel::Observing } @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) @notifications = [] # Create callbacks @machine.before_transition {@notifications << :callback_before_transition} @machine.after_transition {@notifications << :callback_after_transition} @machine.around_transition {|block| @notifications << :callback_around_before_transition; block.call; @notifications << :callback_around_after_transition} # Create observer callbacks observer = new_observer(@model) do def before_ignite(*args) notifications << :observer_before_ignite end def before_transition(*args) notifications << :observer_before_transition end def after_ignite(*args) notifications << :observer_after_ignite end def after_transition(*args) notifications << :observer_after_transition end end instance = observer.instance instance.notifications = @notifications @transition.perform end
test_should_invoke_callbacks_in_specific_order()
click to toggle source
# File test/unit/integrations/active_model_test.rb, line 968 def test_should_invoke_callbacks_in_specific_order expected = [ :callback_before_transition, :callback_around_before_transition, :observer_before_ignite, :observer_before_transition, :callback_around_after_transition, :callback_after_transition, :observer_after_ignite, :observer_after_transition ] assert_equal expected, @notifications end