Sha256: e70ea870f199058b80a1cfa206252435d07d452388e4087a4e9d2d4caeb42f99
Contents?: true
Size: 1.13 KB
Versions: 2
Compression:
Stored size: 1.13 KB
Contents
require 'helper' class DrivingInstructor def self.applause! end end class DrivingSchoolCar include Transitions state_machine do state :parked state :running state :driving state :switched_off event :start_driving, success: lambda { |_car| DrivingInstructor.applause! } do transitions from: :parked, to: :driving, on_transition: [:start_engine, :loosen_handbrake, :push_gas_pedal] end event :switch_off_engine do transitions from: :parked, to: :switched_off end end %w(start_engine loosen_handbrake push_gas_pedal).each do |m| define_method(m) {} end end class TestStateTransitionSuccessCallback < Test::Unit::TestCase def setup @car = DrivingSchoolCar.new end test 'should execute the success callback after successfull event execution' do DrivingInstructor.expects(:applause!) @car.start_driving! end test 'should not execute the success callback after event execution failed' do DrivingInstructor.expects(:applause!).never @car.stubs(:event_failed) @car.expects(:loosen_handbrake).raises('Drive with handbrake fail!') @car.start_driving! end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
transitions-1.0.0 | test/state_transition/test_state_transition_success_callback.rb |
transitions-0.2.1 | test/state_transition/test_state_transition_success_callback.rb |