class EventCollectionWithEventsWithTransitionsTest
Public Instance Methods
setup()
click to toggle source
# File test/unit/event_collection_test.rb, line 53 def setup @klass = Class.new @machine = StateMachine::Machine.new(@klass, :initial => :parked) @events = StateMachine::EventCollection.new(@machine) @machine.state :idling, :first_gear @events << @ignite = StateMachine::Event.new(@machine, :ignite) @ignite.transition :parked => :idling @events << @park = StateMachine::Event.new(@machine, :park) @park.transition :idling => :parked @events << @shift_up = StateMachine::Event.new(@machine, :shift_up) @shift_up.transition :parked => :first_gear @shift_up.transition :idling => :first_gear, :if => lambda{false} @machine.events.concat(@events) @object = @klass.new end
test_should_allow_finding_valid_events_without_guards()
click to toggle source
# File test/unit/event_collection_test.rb, line 95 def test_should_allow_finding_valid_events_without_guards assert_equal [@shift_up], @events.valid_for(@object, :from => :idling, :to => :first_gear, :guard => false) end
test_should_allow_finding_valid_transitions_without_guards()
click to toggle source
# File test/unit/event_collection_test.rb, line 122 def test_should_allow_finding_valid_transitions_without_guards assert_equal [StateMachine::Transition.new(@object, @machine, :shift_up, :idling, :first_gear)], @events.transitions_for(@object, :from => :idling, :to => :first_gear, :guard => false) end
test_should_filter_valid_events_by_event()
click to toggle source
# File test/unit/event_collection_test.rb, line 87 def test_should_filter_valid_events_by_event assert_equal [@ignite], @events.valid_for(@object, :on => :ignite) end
test_should_filter_valid_events_by_from_state()
click to toggle source
# File test/unit/event_collection_test.rb, line 79 def test_should_filter_valid_events_by_from_state assert_equal [@park], @events.valid_for(@object, :from => :idling) end
test_should_filter_valid_events_by_multiple_requirements()
click to toggle source
# File test/unit/event_collection_test.rb, line 91 def test_should_filter_valid_events_by_multiple_requirements assert_equal [], @events.valid_for(@object, :from => :idling, :to => :first_gear) end
test_should_filter_valid_events_by_to_state()
click to toggle source
# File test/unit/event_collection_test.rb, line 83 def test_should_filter_valid_events_by_to_state assert_equal [@shift_up], @events.valid_for(@object, :to => :first_gear) end
test_should_filter_valid_transitions_by_event()
click to toggle source
# File test/unit/event_collection_test.rb, line 114 def test_should_filter_valid_transitions_by_event assert_equal [StateMachine::Transition.new(@object, @machine, :ignite, :parked, :idling)], @events.transitions_for(@object, :on => :ignite) end
test_should_filter_valid_transitions_by_from_state()
click to toggle source
# File test/unit/event_collection_test.rb, line 106 def test_should_filter_valid_transitions_by_from_state assert_equal [StateMachine::Transition.new(@object, @machine, :park, :idling, :parked)], @events.transitions_for(@object, :from => :idling) end
test_should_filter_valid_transitions_by_multiple_requirements()
click to toggle source
# File test/unit/event_collection_test.rb, line 118 def test_should_filter_valid_transitions_by_multiple_requirements assert_equal [], @events.transitions_for(@object, :from => :idling, :to => :first_gear) end
test_should_filter_valid_transitions_by_to_state()
click to toggle source
# File test/unit/event_collection_test.rb, line 110 def test_should_filter_valid_transitions_by_to_state assert_equal [StateMachine::Transition.new(@object, @machine, :shift_up, :parked, :first_gear)], @events.transitions_for(@object, :to => :first_gear) end
test_should_find_valid_events_based_on_current_state()
click to toggle source
# File test/unit/event_collection_test.rb, line 75 def test_should_find_valid_events_based_on_current_state assert_equal [@ignite, @shift_up], @events.valid_for(@object) end
test_should_find_valid_transitions_based_on_current_state()
click to toggle source
# File test/unit/event_collection_test.rb, line 99 def test_should_find_valid_transitions_based_on_current_state assert_equal [ StateMachine::Transition.new(@object, @machine, :ignite, :parked, :idling), StateMachine::Transition.new(@object, @machine, :shift_up, :parked, :first_gear) ], @events.transitions_for(@object) end