class MongoidTest::MachineWithDynamicInitialStateTest
Public Instance Methods
setup()
click to toggle source
# File test/unit/integrations/mongoid_test.rb, line 165 def setup @model = new_model do attr_accessor :value end @machine = StateMachine::Machine.new(@model, :initial => lambda {|object| :parked}) @machine.state :parked end
test_should_not_set_initial_state_after_already_initialized()
click to toggle source
# File test/unit/integrations/mongoid_test.rb, line 205 def test_should_not_set_initial_state_after_already_initialized record = @model.new(:value => 1) assert_equal 'parked', record.state record.state = 'idling' record.process({}) assert_equal 'idling', record.state end
test_should_set_initial_state_after_setting_attributes()
click to toggle source
# File test/unit/integrations/mongoid_test.rb, line 192 def test_should_set_initial_state_after_setting_attributes @model.class_eval do attr_accessor :state_during_setter define_method(:value=) do |value| self.state_during_setter = state || 'nil' end end record = @model.new(:value => 1) assert_equal 'nil', record.state_during_setter end
test_should_set_initial_state_on_created_object()
click to toggle source
# File test/unit/integrations/mongoid_test.rb, line 173 def test_should_set_initial_state_on_created_object record = @model.new assert_equal 'parked', record.state end
test_should_still_allow_initialize_blocks()
click to toggle source
# File test/unit/integrations/mongoid_test.rb, line 183 def test_should_still_allow_initialize_blocks block_args = nil record = @model.new do |*args| block_args = args end assert_equal [record], block_args end
test_should_still_set_attributes()
click to toggle source
# File test/unit/integrations/mongoid_test.rb, line 178 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/mongoid_test.rb, line 214 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/mongoid_test.rb, line 221 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