class MachineWithStatesTest

Public Instance Methods

setup() click to toggle source
# File test/unit/machine_test.rb, line 2010
def setup
  @klass = Class.new
  @machine = StateMachine::Machine.new(@klass)
  @parked, @idling = @machine.state :parked, :idling
  
  @object = @klass.new
end
test_should_allow_human_state_name_lookup() click to toggle source
# File test/unit/machine_test.rb, line 2030
def test_should_allow_human_state_name_lookup
  assert_equal 'parked', @klass.human_state_name(:parked)
end
test_should_allow_state_lookup_by_name() click to toggle source
# File test/unit/machine_test.rb, line 2022
def test_should_allow_state_lookup_by_name
  assert_equal @parked, @machine.states[:parked]
end
test_should_allow_state_lookup_by_value() click to toggle source
# File test/unit/machine_test.rb, line 2026
def test_should_allow_state_lookup_by_value
  assert_equal @parked, @machine.states['parked', :value]
end
test_should_have_states() click to toggle source
# File test/unit/machine_test.rb, line 2018
def test_should_have_states
  assert_equal [nil, :parked, :idling], @machine.states.map {|state| state.name}
end
test_should_not_use_custom_matcher() click to toggle source
# File test/unit/machine_test.rb, line 2043
def test_should_not_use_custom_matcher
  assert_nil @parked.matcher
end
test_should_raise_exception_if_invalid_option_specified() click to toggle source
# File test/unit/machine_test.rb, line 2047
def test_should_raise_exception_if_invalid_option_specified
  exception = assert_raise(ArgumentError) {@machine.state(:first_gear, :invalid => true)}
  assert_equal 'Invalid key(s): invalid', exception.message
end
test_should_raise_exception_on_invalid_human_state_name_lookup() click to toggle source
# File test/unit/machine_test.rb, line 2034
def test_should_raise_exception_on_invalid_human_state_name_lookup
  exception = assert_raise(IndexError) {@klass.human_state_name(:invalid)}
  assert_equal ':invalid is an invalid name', exception.message
end
test_should_use_stringified_name_for_value() click to toggle source
# File test/unit/machine_test.rb, line 2039
def test_should_use_stringified_name_for_value
  assert_equal 'parked', @parked.value
end