class MachineWithEventsWithTransitionsTest

Public Instance Methods

setup() click to toggle source
# File test/unit/machine_test.rb, line 2363
def setup
  @klass = Class.new
  @machine = StateMachine::Machine.new(@klass, :initial => :parked)
  @event = @machine.event(:ignite) do
    transition :parked => :idling
    transition :stalled => :idling
  end
end
test_should_have_events() click to toggle source
# File test/unit/machine_test.rb, line 2372
def test_should_have_events
  assert_equal [@event], @machine.events.to_a
end
test_should_not_duplicate_states_defined_in_multiple_event_transitions() click to toggle source
# File test/unit/machine_test.rb, line 2380
def test_should_not_duplicate_states_defined_in_multiple_event_transitions
  @machine.event :park do
    transition :idling => :parked
  end
  
  assert_equal [:parked, :idling, :stalled], @machine.states.map {|state| state.name}
end
test_should_track_state_from_new_events() click to toggle source
# File test/unit/machine_test.rb, line 2388
def test_should_track_state_from_new_events
  @machine.event :shift_up do
    transition :idling => :first_gear
  end
  
  assert_equal [:parked, :idling, :stalled, :first_gear], @machine.states.map {|state| state.name}
end
test_should_track_states_defined_in_event_transitions() click to toggle source
# File test/unit/machine_test.rb, line 2376
def test_should_track_states_defined_in_event_transitions
  assert_equal [:parked, :idling, :stalled], @machine.states.map {|state| state.name}
end