class MongoMapperTest::MachineWithStaticInitialStateTest

Public Instance Methods

setup() click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 110
def setup
  @model = new_model do
    attr_accessor :value
  end
  @machine = StateMachine::Machine.new(@model, :initial => :parked)
end
test_should_not_allow_initialize_blocks() click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 132
def test_should_not_allow_initialize_blocks
  block_args = nil
  record = @model.new do |*args|
    block_args = args
  end
  
  assert_nil block_args
end
test_should_not_set_initial_state_after_already_initialized() click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 154
def test_should_not_set_initial_state_after_already_initialized
  record = @model.new(:value => 1)
  assert_equal 'parked', record.state
  
  record.state = 'idling'
  record.attributes = {}
  assert_equal 'idling', record.state
end
test_should_set_initial_state_before_setting_attributes() click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 141
def test_should_set_initial_state_before_setting_attributes
  @model.class_eval do
    attr_accessor :state_during_setter
    
    define_method(:value=) do |value|
      self.state_during_setter = state
    end
  end
  
  record = @model.new(:value => 1)
  assert_equal 'parked', record.state_during_setter
end
test_should_set_initial_state_on_created_object() click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 117
def test_should_set_initial_state_on_created_object
  record = @model.new
  assert_equal 'parked', record.state
end
test_should_set_initial_state_with_nil_attributes() click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 122
def test_should_set_initial_state_with_nil_attributes
  record = @model.new(nil)
  assert_equal 'parked', record.state
end
test_should_still_set_attributes() click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 127
def test_should_still_set_attributes
  record = @model.new(:value => 1)
  assert_equal 1, record.value
end
test_should_use_stored_values_when_loading_from_database() click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 163
def test_should_use_stored_values_when_loading_from_database
  @machine.state :idling
  
  record = @model.find(@model.create(:state => 'idling').id)
  assert_equal 'idling', record.state
end
test_should_use_stored_values_when_loading_from_database_with_nil_state() click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 170
def test_should_use_stored_values_when_loading_from_database_with_nil_state
  @machine.state nil
  
  record = @model.find(@model.create(:state => nil).id)
  assert_nil record.state
end