class DataMapperTest::MachineWithEventAttributesOnValidationTest
Public Instance Methods
setup()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1112 def setup @resource = new_resource @machine = StateMachine::Machine.new(@resource) @machine.event :ignite do transition :parked => :idling end @record = @resource.new @record.state = 'parked' @record.state_event = 'ignite' end
test_should_be_successful_if_event_has_transition()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1136 def test_should_be_successful_if_event_has_transition assert @record.valid? end
test_should_fail_if_event_has_no_transition()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1130 def test_should_fail_if_event_has_no_transition @record.state = 'idling' assert !@record.valid? assert_equal ['cannot transition when idling'], @record.errors.full_messages end
test_should_fail_if_event_is_invalid()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1124 def test_should_fail_if_event_is_invalid @record.state_event = 'invalid' assert !@record.valid? assert_equal ['is invalid'], @record.errors.full_messages end
test_should_not_run_after_callbacks()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1161 def test_should_not_run_after_callbacks ran_callback = false @machine.after_transition { ran_callback = true } @record.valid? assert !ran_callback end
test_should_not_run_after_callbacks_with_failures_disabled_if_validation_fails()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1169 def test_should_not_run_after_callbacks_with_failures_disabled_if_validation_fails @resource.class_eval do attr_accessor :seatbelt if respond_to?(:validates_presence_of) validates_presence_of :seatbelt else validates_present :seatbelt end end ran_callback = false @machine.after_transition { ran_callback = true } @record.valid? assert !ran_callback end
test_should_not_run_around_callbacks_after_yield()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1203 def test_should_not_run_around_callbacks_after_yield ran_callback = [false] @machine.around_transition {|block| block.call; ran_callback[0] = true } @record.valid? assert !ran_callback[0] end
test_should_not_run_around_callbacks_after_yield_with_failures_disabled_if_validation_fails()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1211 def test_should_not_run_around_callbacks_after_yield_with_failures_disabled_if_validation_fails @resource.class_eval do attr_accessor :seatbelt if respond_to?(:validates_presence_of) validates_presence_of :seatbelt else validates_present :seatbelt end end ran_callback = [false] @machine.around_transition {|block| block.call; ran_callback[0] = true } @record.valid? assert !ran_callback[0] end
test_should_not_run_before_transitions_within_transaction()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1228 def test_should_not_run_before_transitions_within_transaction @machine.before_transition { self.class.create; throw :halt } assert !@record.valid? assert_equal 1, @resource.all.size end
test_should_persist_new_state()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1156 def test_should_persist_new_state @record.valid? assert_equal 'idling', @record.state end
test_should_run_around_callbacks_before_yield()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1148 def test_should_run_around_callbacks_before_yield ran_callback = false @machine.around_transition {|block| ran_callback = true; block.call } @record.valid? assert ran_callback end
test_should_run_before_callbacks()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1140 def test_should_run_before_callbacks ran_callback = false @machine.before_transition { ran_callback = true } @record.valid? assert ran_callback end
test_should_run_failure_callbacks_if_validation_fails()
click to toggle source
# File test/unit/integrations/data_mapper_test.rb, line 1186 def test_should_run_failure_callbacks_if_validation_fails @resource.class_eval do attr_accessor :seatbelt if respond_to?(:validates_presence_of) validates_presence_of :seatbelt else validates_present :seatbelt end end ran_callback = false @machine.after_failure { ran_callback = true } @record.valid? assert ran_callback end