class MachineWithExistingMachinesWithSameAttributesOnOwnerClassTest
Public Instance Methods
setup()
click to toggle source
# File test/unit/machine_test.rb, line 2756 def setup @klass = Class.new @machine = StateMachine::Machine.new(@klass, :initial => :parked) @second_machine = StateMachine::Machine.new(@klass, :public_state, :initial => :idling, :attribute => :state) @object = @klass.new end
state=(value)
click to toggle source
# File test/unit/machine_test.rb, line 2772 def state=(value) @write_count ||= 0 @write_count += 1 end
test_should_allow_transitions_on_both_machines()
click to toggle source
# File test/unit/machine_test.rb, line 2792 def test_should_allow_transitions_on_both_machines @machine.event :ignite do transition :parked => :idling end @second_machine.event :park do transition :idling => :parked end @object.ignite assert_equal 'idling', @object.state @object.park assert_equal 'parked', @object.state end
test_should_copy_all_existing_states_to_new_machines()
click to toggle source
# File test/unit/machine_test.rb, line 2816 def test_should_copy_all_existing_states_to_new_machines third_machine = StateMachine::Machine.new(@klass, :protected_state, :attribute => :state) assert_equal @machine.state(:parked), third_machine.state(:parked) assert_equal @machine.state(:idling), third_machine.state(:idling) end
test_should_copy_new_states_to_sibling_machines()
click to toggle source
# File test/unit/machine_test.rb, line 2808 def test_should_copy_new_states_to_sibling_machines @first_gear = @machine.state :first_gear assert_equal @first_gear, @second_machine.state(:first_gear) @second_gear = @second_machine.state :second_gear assert_equal @second_gear, @machine.state(:second_gear) end
test_should_initialize_based_on_first_machine()
click to toggle source
# File test/unit/machine_test.rb, line 2782 def test_should_initialize_based_on_first_machine assert_equal 'parked', @object.state end
test_should_not_allow_second_machine_to_initialize_state()
click to toggle source
# File test/unit/machine_test.rb, line 2786 def test_should_not_allow_second_machine_to_initialize_state @object.state = nil @second_machine.initialize_state(@object) assert_nil @object.state end
test_should_track_each_state_machine()
click to toggle source
# File test/unit/machine_test.rb, line 2763 def test_should_track_each_state_machine expected = {:state => @machine, :public_state => @second_machine} assert_equal expected, @klass.state_machines end
test_should_write_to_state_only_once()
click to toggle source
# File test/unit/machine_test.rb, line 2768 def test_should_write_to_state_only_once @klass.class_eval do attr_reader :write_count def state=(value) @write_count ||= 0 @write_count += 1 end end object = @klass.new assert_equal 1, object.write_count end