class MachineWithStaticInitialStateTest

Public Class Methods

new(attributes = {}) click to toggle source
Calls superclass method
# File test/unit/machine_test.rb, line 296
def initialize(attributes = {})
  self.state = 'idling'
  super()
end

Public Instance Methods

setup() click to toggle source
# File test/unit/machine_test.rb, line 266
def setup
  @klass = Class.new
  @machine = StateMachine::Machine.new(@klass, :initial => :parked)
end
test_should_be_included_in_known_states() click to toggle source
# File test/unit/machine_test.rb, line 319
def test_should_be_included_in_known_states
  assert_equal [:parked], @machine.states.keys
end
test_should_have_an_initial_state() click to toggle source
# File test/unit/machine_test.rb, line 275
def test_should_have_an_initial_state
  object = @klass.new
  assert_equal 'parked', @machine.initial_state(object).value
end
test_should_not_have_dynamic_initial_state() click to toggle source
# File test/unit/machine_test.rb, line 271
def test_should_not_have_dynamic_initial_state
  assert !@machine.dynamic_initial_state?
end
test_should_set_initial_on_state_object() click to toggle source
# File test/unit/machine_test.rb, line 286
def test_should_set_initial_on_state_object
  assert @machine.state(:parked).initial
end
test_should_set_initial_state_on_created_object() click to toggle source
# File test/unit/machine_test.rb, line 290
def test_should_set_initial_state_on_created_object
  assert_equal 'parked', @klass.new.state
end
test_should_set_initial_state_prior_to_initialization() click to toggle source
# File test/unit/machine_test.rb, line 305
def test_should_set_initial_state_prior_to_initialization
  base = Class.new do
    attr_accessor :state_on_init
    
    def initialize
      self.state_on_init = state
    end
  end
  klass = Class.new(base)
  machine = StateMachine::Machine.new(klass, :initial => :parked)
  
  assert_equal 'parked', klass.new.state_on_init
end
test_should_still_set_initial_state_even_if_not_empty() click to toggle source
# File test/unit/machine_test.rb, line 294
def test_should_still_set_initial_state_even_if_not_empty
  @klass.class_eval do
    def initialize(attributes = {})
      self.state = 'idling'
      super()
    end
  end
  object = @klass.new
  assert_equal 'parked', object.state
end
test_should_write_to_attribute_when_initializing_state() click to toggle source
# File test/unit/machine_test.rb, line 280
def test_should_write_to_attribute_when_initializing_state
  object = @klass.allocate
  @machine.initialize_state(object)
  assert_equal 'parked', object.state
end