class MachineWithCustomInvalidationTest
Public Instance Methods
invalidate(object, attribute, message, values = [])
click to toggle source
# File test/unit/machine_test.rb, line 887 def invalidate(object, attribute, message, values = []) object.error = generate_message(message, values) end
setup()
click to toggle source
# File test/unit/machine_test.rb, line 883 def setup @integration = Module.new do include StateMachine::Integrations::Base def invalidate(object, attribute, message, values = []) object.error = generate_message(message, values) end end StateMachine::Integrations.const_set('Custom', @integration) @klass = Class.new do attr_accessor :error end @machine = StateMachine::Machine.new(@klass, :integration => :custom, :messages => {:invalid_transition => 'cannot %s'}) @machine.state :parked @object = @klass.new @object.state = 'parked' end
teardown()
click to toggle source
# File test/unit/machine_test.rb, line 913 def teardown StateMachine::Integrations.send(:remove_const, 'Custom') end
test_generate_custom_message()
click to toggle source
# File test/unit/machine_test.rb, line 904 def test_generate_custom_message assert_equal 'cannot park', @machine.generate_message(:invalid_transition, [[:event, :park]]) end
test_use_custom_message()
click to toggle source
# File test/unit/machine_test.rb, line 908 def test_use_custom_message @machine.invalidate(@object, :state, :invalid_transition, [[:event, 'park']]) assert_equal 'cannot park', @object.error end